Merge remote-tracking branch 'origin/master' into neon

Conflicts:
	plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.classpath
	plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
	plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml_gen
	plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java
	plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
	plugins/fla/org.polarsys.chess.xtext.fladsl/.classpath
	plugins/fla/org.polarsys.chess.xtext.fladsl/META-INF/MANIFEST.MF
	plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml_gen
	plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java
	plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java
	plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/validation/FlaDslValidator.xtend

Change-Id: I53087b42678e799d1486c9ffc95f7d067c904987
diff --git a/.gitignore b/.gitignore
index ae3c172..78db911 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,11 @@
-/bin/
+**/bin/
+plugins/fla/org.polarsys.chess.xtext.fladsl/xtend-gen/org/polarsys/chess/xtext/generator/.FlaDslGenerator.xtendbin
+plugins/fla/org.polarsys.chess.xtext.fladsl/xtend-gen/org/polarsys/chess/xtext/scoping/.FlaDslScopeProvider.xtendbin
+plugins/fla/org.polarsys.chess.xtext.fladsl/xtend-gen/org/polarsys/chess/xtext/validation/.FlaDslValidator.xtendbin
+plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen/org/polarsys/chess/xtext/ui/contentassist/.FlaDslProposalProvider.xtendbin
+plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen/org/polarsys/chess/xtext/ui/labeling/.FlaDslDescriptionLabelProvider.xtendbin
+plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen/org/polarsys/chess/xtext/ui/labeling/.FlaDslLabelProvider.xtendbin
+plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen/org/polarsys/chess/xtext/ui/outline/.FlaDslOutlineTreeProvider.xtendbin
+plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen/org/polarsys/chess/xtext/ui/quickfix/.FlaDslQuickfixProvider.xtendbin
+/plugins/fla/org.polarsys.chess.xtext.fladsl/xtend-gen
+/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/xtend-gen
diff --git a/plugins/contracts/org.polarsys.chess.contracts.chessextension/plugin.xml b/plugins/contracts/org.polarsys.chess.contracts.chessextension/plugin.xml
index 15bc40f..e181250 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.chessextension/plugin.xml
+++ b/plugins/contracts/org.polarsys.chess.contracts.chessextension/plugin.xml
@@ -25,71 +25,22 @@
     </listener>
     </extension>
     
-    <extension point="org.eclipse.ui.menus">
-      <menuContribution locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu?after=filtersMenu">
-         <menu icon="icons/CHESSicon.gif" id="org.polarsys.chess.contracts.chessextension.menu1" label="Contract">
-            <separator name="group1">
-            </separator>
-         </menu>
-         <action class="org.polarsys.chess.contracts.chessextension.popup.actions.SetContractRefinement" enablesFor="1" id="org.polarsys.chess.contracts.chessextension.newAction" label="Set Contract Refinement" menubarPath="org.polarsys.chess.contracts.chessextension.menu1/group1">
-         </action>
-     
-      </menuContribution>
-      <menuContribution
-            allPopups="false"
-            locationURI="popup:org.polarsys.chess.modelexplorerpopupmenu.id?after=additions">
-         <menu
-               icon="icons/CHESSicon.gif"
-               id="org.polarsys.chess.contracts.chessextension.menu2"
-               label="Contract">
-            <separator
-                  name="group1">
-            </separator>
-         </menu>
-         <action class="org.polarsys.chess.contracts.chessextension.popup.actions.SetContractRefinement" enablesFor="1" id="org.polarsys.chess.contracts.chessextension.newAction" label="Set Contract Refinement" menubarPath="org.polarsys.chess.contracts.chessextension.menu2/group1">
-         </action>
-      </menuContribution>
-
-   </extension>   
-      
-   <extension point="org.eclipse.ui.popupMenus">
-      <objectContribution id="org.polarsys.chess.contracts.chessextension.contribution1" objectClass="org.eclipse.papyrus.sysml.diagram.common.edit.part.ConstraintPropertyChildLabelEditPart">
-         <menu icon="icons/CHESSicon.gif" id="org.polarsys.chess.contracts.chessextension.menu1" label="Contract" path="additions">
-            <separator name="group1">
-            </separator>
-         </menu>
-         <action class="org.polarsys.chess.contracts.chessextension.popup.actions.SetContractRefinement" enablesFor="1" id="org.polarsys.chess.contracts.chessextension.newAction" label="Set Contract Refinement" menubarPath="org.polarsys.chess.contracts.chessextension.menu1/group1">
-         </action>
-      </objectContribution>
-      <objectContribution id="org.polarsys.chess.contracts.chessextension.contribution2" objectClass="org.eclipse.papyrus.uml.diagram.clazz.edit.parts.PropertyForClassEditPart">
-         <menu id="org.polarsys.chess.contracts.chessextension.menu1" label="Contract" path="additions">
-            <separator name="group1">
-            </separator>
-         </menu>
-         <action class="org.polarsys.chess.contracts.chessextension.popup.actions.SetContractRefinement" enablesFor="1" id="org.polarsys.chess.contracts.chessextension.newAction" label="Set Contract Refinement" menubarPath="org.polarsys.chess.contracts.chessextension.menu1/group1">
-         </action>
-      </objectContribution>
-      <objectContribution id="org.polarsys.chess.contracts.chessextension.contribution3" objectClass="org.eclipse.papyrus.uml.diagram.clazz.edit.parts.PropertyForComponentEditPart">
-         <menu id="org.polarsys.chess.contracts.chessextension.menu1" label="Contract" path="additions">
-            <separator name="group1">
-            </separator>
-         </menu>
-         <action class="org.polarsys.chess.contracts.chessextension.popup.actions.SetContractRefinement" enablesFor="1" id="org.polarsys.chess.contracts.chessextension.newAction" label="Set Contract Refinement" menubarPath="org.polarsys.chess.contracts.chessextension.menu1/group1">
-         </action>
-      </objectContribution> 
-      <objectContribution id="org.polarsys.chess.contracts.chessextension.contribution4" objectClass="org.eclipse.papyrus.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement">
-         <menu
-               icon="icons/CHESSicon.gif"
-               id="org.polarsys.chess.contracts.chessextension.menu2"
-               label="Contract"
-               path="additions2">
-            <separator name="group1">
-            </separator>
-         </menu>
-         <action class="org.polarsys.chess.contracts.chessextension.popup.actions.SetContractRefinement" enablesFor="1" id="org.polarsys.chess.contracts.chessextension.newAction" label="Set Contract Refinement" menubarPath="org.polarsys.chess.contracts.chessextension.menu2/group1">
-         </action>
-      </objectContribution> 
-   </extension>
+    <extension
+        point="org.eclipse.ui.commands">
+      <command
+            id="org.polarsys.chess.contracts.chessextension.setContractRefinement"
+            name="Set Contract Refinement">
+      </command>
+    </extension> 
+    
+    <extension
+         point="org.eclipse.ui.handlers">
+      <handler
+            class="org.polarsys.chess.contracts.chessextension.popup.commands.SetContractRefinement"
+            commandId="org.polarsys.chess.contracts.chessextension.setContractRefinement">
+      </handler>
+    </extension> 
+   
    <extension point="org.eclipse.papyrus.infra.core.modelListener">
       <listener name="org.polarsys.chess.contracts.chessextension.listener1" realization="org.polarsys.chess.contracts.chessextension.listeners.PapyrusModelListener">
       </listener>
@@ -104,7 +55,7 @@
    
    <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
       <propertyTabs contributorId="TreeOutlinePage">
-         	<propertyTab afterTab="advanced" category="ContractProperty" id="Contracts" label="Contracts"/>
+         	<propertyTab afterTab="advanced" category="ContractProperty" id="Contracts" label="CHESSs"/>
       </propertyTabs>
    </extension>
    
@@ -172,5 +123,22 @@
 		
 	</propertySections>
    </extension>
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            allPopups="false"
+            locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">
+         <menu
+               icon="icons/CHESSicon.gif"
+               id="org.polarsys.chess.modelexplorerpopupmenu.id"
+               label="CHESS">
+            <command
+                  commandId="org.polarsys.chess.contracts.chessextension.setContractRefinement"
+                  label="Set Contract Refinement"
+                  style="push">
+            </command>
+         </menu>
+      </menuContribution>
+   </extension>
   
 </plugin>
diff --git a/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/dialogs/SetContractRefinementDialog.java b/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/dialogs/SetContractRefinementDialog.java
index a27641b..f7a231f 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/dialogs/SetContractRefinementDialog.java
+++ b/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/dialogs/SetContractRefinementDialog.java
@@ -44,7 +44,7 @@
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Property;
-import org.polarsys.chess.contracts.chessextension.popup.actions.SetContractRefinement;
+import org.polarsys.chess.contracts.chessextension.popup.commands.SetContractRefinement;
 import org.polarsys.chess.contracts.profile.chesscontract.ComponentInstance;
 import org.polarsys.chess.contracts.profile.chesscontract.ContractProperty;
 import org.polarsys.chess.contracts.profile.chesscontract.ContractRefinement;
diff --git a/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/popup/actions/SetContractRefinement.java b/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/popup/commands/SetContractRefinement.java
similarity index 90%
rename from plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/popup/actions/SetContractRefinement.java
rename to plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/popup/commands/SetContractRefinement.java
index 62932b2..bde3624 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/popup/actions/SetContractRefinement.java
+++ b/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/popup/commands/SetContractRefinement.java
@@ -13,14 +13,16 @@
  * Initial API and implementation and/or initial documentation
  *******************************************************************************/
 
-package org.polarsys.chess.contracts.chessextension.popup.actions;
+package org.polarsys.chess.contracts.chessextension.popup.commands;
 
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.transaction.RecordingCommand;
 import org.eclipse.emf.transaction.TransactionalEditingDomain;
 import org.eclipse.emf.transaction.util.TransactionUtil;
 import org.eclipse.gmf.runtime.notation.Node;
-import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.window.Window;
@@ -29,9 +31,9 @@
 import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.PropertyForClassEditPart;
 import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.PropertyForComponentEditPart;
 import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.DataType;
@@ -45,7 +47,7 @@
 
 import eu.fbk.eclipse.standardtools.utils.ui.utils.DialogUtil;
 
-public class SetContractRefinement implements IObjectActionDelegate {
+public class SetContractRefinement extends AbstractHandler {
 
 	public static final String CONTRACT_PROPERTY = "CHESSContract::ContractProperty";
 	protected static final String CONTRACT_REFINEMENt = "CHESSContract::ContractRefinement";
@@ -58,11 +60,16 @@
 		super();
 	}
 
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		shell = targetPart.getSite().getShell();
-	}
+//	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+//		shell = targetPart.getSite().getShell();
+//	}
 
-	public void run(IAction action) {
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+	
+		final IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
+		shell = window.getShell();
+		
 		try {
 			setSelection();
 
@@ -134,6 +141,7 @@
 			e.printStackTrace();
 			DialogUtil.getInstance().showMessage_ExceptionError(e);
 		}
+		return null;
 	}
 
 	private void setSelection() throws Exception {
@@ -173,7 +181,7 @@
 
 	}
 
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
+//	public void selectionChanged(IAction action, ISelection selection) {
+//	}
 
 }
diff --git a/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/propertytab/BlockEditPartSection.java b/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/propertytab/BlockEditPartSection.java
index 584eaae..a0aa68d 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/propertytab/BlockEditPartSection.java
+++ b/plugins/contracts/org.polarsys.chess.contracts.chessextension/src/org/polarsys/chess/contracts/chessextension/propertytab/BlockEditPartSection.java
@@ -49,7 +49,7 @@
 import org.eclipse.uml2.uml.LiteralString;

 import org.eclipse.uml2.uml.Property;

 import org.eclipse.uml2.uml.Stereotype;

-import org.polarsys.chess.contracts.chessextension.popup.actions.SetContractRefinement;

+import org.polarsys.chess.contracts.chessextension.popup.commands.SetContractRefinement;

 import org.polarsys.chess.contracts.profile.chesscontract.Contract;

 import org.polarsys.chess.contracts.profile.chesscontract.FormalProperty;

 import org.polarsys.chess.service.gui.utils.CHESSEditorUtils;

diff --git a/plugins/contracts/org.polarsys.chess.contracts.profile/src/org/polarsys/chess/contracts/profile/chesscontract/util/EntityUtil.java b/plugins/contracts/org.polarsys.chess.contracts.profile/src/org/polarsys/chess/contracts/profile/chesscontract/util/EntityUtil.java
index 15b236d..1b43ebc 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.profile/src/org/polarsys/chess/contracts/profile/chesscontract/util/EntityUtil.java
+++ b/plugins/contracts/org.polarsys.chess.contracts.profile/src/org/polarsys/chess/contracts/profile/chesscontract/util/EntityUtil.java
@@ -213,7 +213,7 @@
 		return null;
 	}
 
-	public void openCurrentModelIntoEditor(IFile file) throws Exception {
+	public IEditorPart openCurrentModelIntoEditor(IFile file) throws Exception {
 
 		IProject project = file.getProject();
 
@@ -246,10 +246,11 @@
 		// Open the model file
 		IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
 		try {
-			IDE.openEditor(page, modelFile, true);
+			return IDE.openEditor(page, modelFile, true);
 		} catch (PartInitException e) {
 		}
 
+		return null;	  
 	}
 
 	public Model loadModel(String projectName, String fileName) {
@@ -1148,8 +1149,8 @@
 		return instantiatedArchitecureList;
 	}
 
-	public Set<Property> getSubComponentsInstances(Class umlComponent) {
-		Set<Property> subComponents = new HashSet<Property>();
+	public List<Property> getSubComponentsInstances(Class umlComponent) {
+		List<Property> subComponents = new ArrayList<Property>();
 		EList<Property> umlProperties = ((Class) umlComponent).getAttributes();
 		if (umlProperties != null) {
 			for (Property umlProperty : umlProperties) {
@@ -1758,6 +1759,26 @@
 
 	}
 
+																   
+
+																
+
+						 
+																			 
+							 
+															  
+																																											
+							 
+									
+															   
+	  
+	 
+	
+   
+
+					   
+  
+ 
 	public Set<StateMachine> getNominalStateMachines(UmlModel umlModel) {
 
 		Set<StateMachine> stateMachines = new HashSet<StateMachine>();
@@ -2175,13 +2196,13 @@
 		return false;
 	}
 
-	public Collection<? extends Port> getUmlPortsExceptEvents(Element umlElement, int portDirection) {
+	public EList<? extends Port> getUmlPortsExceptEvents(Element umlElement, int portDirection) {
 
 		if (isComponentInstance(umlElement)) {
 			umlElement = getUmlType((Property) umlElement);
 		}
 
-		Set<Port> portsArr = new HashSet<Port>();
+		EList<Port> portsArr = new BasicEList<Port>();
 		if (isBlock(umlElement)) {
 			portsArr.addAll(getUmlPortsExceptEventsFromClass((Class) umlElement, portDirection));
 		}
@@ -3654,6 +3675,24 @@
 		}
 	}
 
+															  
+
+					  
+																		  
+							 
+															  
+																																											
+
+							 
+					   
+			   
+	  
+	 
+	
+   
+			  
+  
+ 
 	/**
 	 * Returns the System component of the given package, if any.
 	 * 
diff --git a/plugins/contracts/org.polarsys.chess.contracts.safetyAnalysis/plugin.xml b/plugins/contracts/org.polarsys.chess.contracts.safetyAnalysis/plugin.xml
index 15d4db6..8aabd40 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.safetyAnalysis/plugin.xml
+++ b/plugins/contracts/org.polarsys.chess.contracts.safetyAnalysis/plugin.xml
@@ -3,14 +3,6 @@
 <plugin>

  <extension

          point="org.eclipse.ui.menus">

-         <menuContribution

-            allPopups="false"            

-            locationURI="menu:org.eclipse.ui.main.menu.AMASS?after=org.eclipse.ui.main.menu.CHESS.funcVer">             

-              <menu

-                    id="org.eclipse.ui.main.menu.CHESS.safetyAnalysis"

-                    label="Safety Analysis">

-               </menu>

-      </menuContribution>

       <menuContribution

             allPopups="false"            

             locationURI="popup:org.eclipse.ui.main.diagramEditorMenu.AMASS?after=org.eclipse.ui.main.diagramEditorMenu.CHESS.funcVer">              

@@ -21,18 +13,10 @@
               </menuContribution>

       <menuContribution

             allPopups="false"

-            locationURI="menu:org.polarsys.chess.mainMenu?after=org.eclipse.ui.main.menu.CHESS.funcVer">

+            locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.functverification.id">

          <menu

-               id="org.eclipse.ui.main.menu.CHESS.safetyAnalysis"

-               label="Safety Analysis">

-            <menu

-                  label="//Debug Operations">

-               <command

-                     commandId="org.polarsys.chess.safetyAnalysis.commands.debug.ComputeContractFaultTreeOnFileCommand"

-                     icon="icons/tree_normal.gif"

-                     style="push">

-               </command>

-            </menu>

+               id="chess.menu.dependability.id"

+               label="Dependability">

             <menu

                   label="Fault Tree Viewer">

                <command

@@ -80,6 +64,23 @@
                </parameter>

             </command>

          </menu>

+      </menuContribution>

+      <menuContribution

+            allPopups="false"

+            locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.tests.id">

+         <menu

+               id="chess.menu.debug.id"

+               label="//Debug Operations">

+            <menu

+                  id="chess.menu.debug.dependability.id"

+                  label="Dependability">

+               <command

+                     commandId="org.polarsys.chess.safetyAnalysis.commands.debug.ComputeContractFaultTreeOnFileCommand"

+                     icon="icons/tree_normal.gif"

+                     style="push">

+               </command>

+            </menu>

+         </menu>

       </menuContribution>          

           </extension>

  <extension

diff --git a/plugins/contracts/org.polarsys.chess.contracts.transformations/plugin.xml b/plugins/contracts/org.polarsys.chess.contracts.transformations/plugin.xml
index 4068fb0..5a123a7 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.transformations/plugin.xml
+++ b/plugins/contracts/org.polarsys.chess.contracts.transformations/plugin.xml
@@ -79,42 +79,16 @@
    <extension

          point="org.eclipse.ui.menus">

       <menuContribution

-     		locationURI="menu:org.polarsys.chess.mainMenu">

-          <menu

+     		locationURI="menu:org.polarsys.chess.mainMenu?after=org.polarsys.chess.mainmenu.functverification.separator1">

+          <!--menu

                 id="chess.menu.analysis.id"

-                label="Analysis">

+                label="Analysis"-->

              <menu

-                   id="chess.menu.analysis.contract.id"

-                   label="Formal Verification">

+                   id="chess.menu.functverification.id"

+                   label="Functional Verification">

                 <command

                       commandId="org.polarsys.chess.contracts.transformations.ref.id"

-                      label="Contracts Refinement Analysis (OCRA)"

-                      style="push">

-                      <visibleWhen

-                           checkEnabled="false">

-                        <or>

-                           <with

-                                 variable="activeEditorId">

-                              <equals

-                                    value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">

-                              </equals>

-                           </with>

-                           <with

-                                 variable="activeEditorInput">

-                              <adapt

-                                    type="org.eclipse.core.resources.IResource">

-                                 <!--test

-                                       property="org.eclipse.core.resources.projectNature"

-                                       value="org.polarsys.chess.CHESSNature">

-                                 </test-->

-                              </adapt>

-                           </with>

-                        </or>

-                     </visibleWhen>

-                </command>

-                <command

-                      commandId="org.polarsys.chess.contracts.transformations.validProp.id"

-                      label="Validate Properties (OCRA)"

+                      label="Check refinement with all weak contracts"

                       style="push">

                    <visibleWhen

                          checkEnabled="false">

@@ -134,34 +108,48 @@
                       </or>

                    </visibleWhen>

                 </command>

-                <!--command

-                      commandId="org.polarsys.chess.contracts.transformations.impl.id"

-                      label="Check Implementation Analysis"

+                <command

+                      commandId="org.polarsys.chess.contracts.transformations.validProp.id"

+                      label="Automatic selection of weak contracts"

                       style="push">

-                </command-->

+                   <visibleWhen

+                         checkEnabled="false">

+                      <or>

+                         <with

+                               variable="activeEditorId">

+                            <equals

+                                  value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">

+                            </equals>

+                         </with>

+                         <with

+                               variable="activeEditorInput">

+                            <adapt

+                                  type="org.eclipse.core.resources.IResource">

+                            </adapt>

+                         </with>

+                      </or>

+                   </visibleWhen>

+                </command>

              </menu>

-             <menu

-                   id="chess.menu.analysis.dependability.id"

-                   label="Dependability">

-          	 </menu>

-          </menu>

+             

+          <!--/menu-->

 	</menuContribution>

   <menuContribution

         allPopups="false"

-        locationURI="menu:org.polarsys.chess.mainMenu?after=org.eclipse.ui.main.menu.CHESS.funcVer">

+        locationURI="menu:org.polarsys.chess.mainMenu?after=org.polarsys.chess.mainmenu.dependability.separator2">

      <menu

-           id="org.eclipse.ui.main.menu.CHESS.safetyAnalysis"

-           label="Safety Analysis">

+           id="chess.menu.dependability.id"

+           label="Dependability">

         <command

               commandId="org.polarsys.chess.contracts.transformations.ftaxsap.id"

               icon="icons/tree_normal.gif"

-              label="Fault Tree Analysis (FTA)"

+              label="Fault Tree Analysis (FTA with xSAP)"

               style="push">

         </command>

         <command

               commandId="org.polarsys.chess.contracts.transformations.fmeaxsap.id"

               icon="icons/table.gif"

-              label=" Failure Mode and Effect Analysis (FMEA)"

+              label=" Failure Mode and Effect Analysis (FMEA with xSAP)"

               style="push">

         </command>

      </menu>

diff --git a/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generate.xml b/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generate.xml
index 84669ae..f6c5314 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generate.xml
+++ b/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generate.xml
@@ -1,14 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project default="generate" name="org.polarsys.chess.contracts.transformations">
+<<<<<<< HEAD
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/workspace"/>
+=======
     <property name="ECLIPSE_HOME" value="../../../../../../Eclipse/eclipse"/>
     <property name="ECLIPSE_WORKSPACE" value="../../../../../../Workspaces/FirstConfig/ws"/>
+>>>>>>> refs/remotes/origin/master
 
     <!-- The classpath with only the dependencies used by the project -->
     <path id="org.polarsys.chess.contracts.transformations.libraryclasspath">
         <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.contracts.transformations/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+<<<<<<< HEAD
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+=======
+>>>>>>> refs/remotes/origin/master
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
@@ -43,7 +70,11 @@
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+<<<<<<< HEAD
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+=======
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201903050251.jar"/>
+>>>>>>> refs/remotes/origin/master
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml.profile.standard_1.0.100.v20170227-0935.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.sysml_1.2.0.201703081153.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
@@ -118,6 +149,32 @@
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/eu.fbk.tools.adapter.core_1.0.0.20190515-0806.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/commons-lang3-3.5.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/slf4j-api-1.7.25.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/slf4j-log4j12-1.7.25.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-core-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-jena-provider-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-json4j-provider-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/jena-core-2.13.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/jena-iri-1.1.2.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc-java-client-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-auto-common-3.0.0-SNAPSHOT.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-wink-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/jsr311-api-1.1.1.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/wink-client-1.4.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/wink-client-apache-httpclient-1.4.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/wink-common-1.4.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/javax.servlet-api-3.1.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/xercesImpl-2.8.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/guava-23.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/httpclient-4.5.2.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oauth-httpclient4-20090913.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/httpcore-4.4.5.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/commons-logging-1.2.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oauth-20100527.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/eu.fbk.eclipse.standardtools.utils_1.0.0.201906071615.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/eu.fbk.eclipse.standardTools.XSapExecService_1.0.0.201906071615.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.gmfdiag.commands_2.0.0.201703080851.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.views.modelexplorer_2.1.0.201703080851.jar"/>
diff --git a/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generateErrorModel.xml b/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generateErrorModel.xml
index e1c5b02..ccd1f83 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generateErrorModel.xml
+++ b/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generateErrorModel.xml
@@ -1,14 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project default="generateErrorModel" name="org.polarsys.chess.contracts.transformations">
+<<<<<<< HEAD
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/workspace"/>
+=======
     <property name="ECLIPSE_HOME" value="../../../../../../Eclipse/eclipse"/>
     <property name="ECLIPSE_WORKSPACE" value="../../../../../../Workspaces/FirstConfig/ws"/>
+>>>>>>> refs/remotes/origin/master
 
     <!-- The classpath with only the dependencies used by the project -->
     <path id="org.polarsys.chess.contracts.transformations.libraryclasspath">
         <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.contracts.transformations/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+<<<<<<< HEAD
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+=======
+>>>>>>> refs/remotes/origin/master
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
@@ -43,7 +70,11 @@
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+<<<<<<< HEAD
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+=======
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201903050251.jar"/>
+>>>>>>> refs/remotes/origin/master
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml.profile.standard_1.0.100.v20170227-0935.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.sysml_1.2.0.201703081153.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
@@ -118,6 +149,32 @@
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/eu.fbk.tools.adapter.core_1.0.0.20190515-0806.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/commons-lang3-3.5.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/slf4j-api-1.7.25.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/slf4j-log4j12-1.7.25.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-core-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-jena-provider-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-json4j-provider-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/jena-core-2.13.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/jena-iri-1.1.2.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc-java-client-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-auto-common-3.0.0-SNAPSHOT.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-wink-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/jsr311-api-1.1.1.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/wink-client-1.4.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/wink-client-apache-httpclient-1.4.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/wink-common-1.4.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/javax.servlet-api-3.1.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/xercesImpl-2.8.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/guava-23.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/httpclient-4.5.2.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oauth-httpclient4-20090913.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/httpcore-4.4.5.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/commons-logging-1.2.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oauth-20100527.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/eu.fbk.eclipse.standardtools.utils_1.0.0.201906071615.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/eu.fbk.eclipse.standardTools.XSapExecService_1.0.0.201906071615.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.gmfdiag.commands_2.0.0.201703080851.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.views.modelexplorer_2.1.0.201703080851.jar"/>
diff --git a/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generateFaultExtensions.xml b/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generateFaultExtensions.xml
index 7123ce1..f5f3940 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generateFaultExtensions.xml
+++ b/plugins/contracts/org.polarsys.chess.contracts.transformations/tasks/generateFaultExtensions.xml
@@ -1,14 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project default="generateFaultExtensions" name="org.polarsys.chess.contracts.transformations">
+<<<<<<< HEAD
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/workspace"/>
+=======
     <property name="ECLIPSE_HOME" value="../../../../../../Eclipse/eclipse"/>
     <property name="ECLIPSE_WORKSPACE" value="../../../../../../Workspaces/FirstConfig/ws"/>
+>>>>>>> refs/remotes/origin/master
 
     <!-- The classpath with only the dependencies used by the project -->
     <path id="org.polarsys.chess.contracts.transformations.libraryclasspath">
         <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.contracts.transformations/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+<<<<<<< HEAD
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+=======
+>>>>>>> refs/remotes/origin/master
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
@@ -43,7 +70,11 @@
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+<<<<<<< HEAD
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+=======
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201903050251.jar"/>
+>>>>>>> refs/remotes/origin/master
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml.profile.standard_1.0.100.v20170227-0935.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.sysml_1.2.0.201703081153.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
@@ -118,6 +149,32 @@
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/eu.fbk.tools.adapter.core_1.0.0.20190515-0806.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/commons-lang3-3.5.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/slf4j-api-1.7.25.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/slf4j-log4j12-1.7.25.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-core-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-jena-provider-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-json4j-provider-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/jena-core-2.13.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/jena-iri-1.1.2.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc-java-client-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-auto-common-3.0.0-SNAPSHOT.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oslc4j-wink-2.2.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/jsr311-api-1.1.1.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/wink-client-1.4.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/wink-client-apache-httpclient-1.4.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/wink-common-1.4.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/javax.servlet-api-3.1.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/xercesImpl-2.8.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/guava-23.0.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/httpclient-4.5.2.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oauth-httpclient4-20090913.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/httpcore-4.4.5.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/commons-logging-1.2.jar"/>
+        <pathelement location="${ECLIPSE_WORKSPACE}//.metadata/.plugins/org.eclipse.pde.core/.external_libraries/eu.fbk.tools.adapter.core_1.0.0.20190515-0806/target/alternateLocation/oauth-20100527.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/eu.fbk.eclipse.standardtools.utils_1.0.0.201906071615.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/eu.fbk.eclipse.standardTools.XSapExecService_1.0.0.201906071615.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.gmfdiag.commands_2.0.0.201703080851.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.views.modelexplorer_2.1.0.201703080851.jar"/>
diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService/plugin.xml b/plugins/contracts/org.polarsys.chess.contracts.verificationService/plugin.xml
index 737c87e..3bb458a 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService/plugin.xml
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService/plugin.xml
@@ -86,35 +86,27 @@
             </menuContribution>

             <menuContribution

                   allPopups="false"

-                  locationURI="menu:org.polarsys.chess.mainMenu">

+                  locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.argumentation.id">

                <menu

-                     id="org.eclipse.ui.main.menu.CHESS.basicOperation"

-                     label="Basic Operations">

+                     id="chess.menu.importexport.id"

+                     label="Import/Export">

                   <menu

-                        id="org.eclipse.ui.main.menu.CHESS.basicOperation.debug"

-                        label="//Debug Operations">

+                        id="chess.menu.basicoperations.id"

+                        label="OSS/SMV">

                      <command

-                           commandId="org.polarsys.chess.verificationService.commands.debug.RuntimeErrorsOnFileCommand"

-                           style="push">

-                     </command>

-                     <command

-                           commandId="org.polarsys.chess.verificationService.ui.commands.debug.RuntimeErrorsOnSMVFileCommand"

+                           commandId="org.polarsys.chess.verificationService.commands.ExportModelToFileCommand"

+                           icon="icons/export.gif"

                            style="push">

                      </command>

                   </menu>

-                  <command

-                        commandId="org.polarsys.chess.verificationService.commands.ExportModelToFileCommand"

-                        icon="icons/export.gif"

-                        style="push">

-                  </command>

                </menu>

                <menu

-                     id="org.eclipse.ui.main.menu.CHESS.validation"

+                     id="chess.menu.validation.id"

                      label="Validation">

                   <command

                         commandId="org.polarsys.chess.verificationService.commands.CheckValidationPropertyCommand2"

                         icon="icons/contract_verification.png"

-                        label="Check Validation on Assumption/Guarantee Properties on selected component"

+                        label="Validation Check on Assumption/Guarantee Properties on selected component"

                         style="push">

                      <parameter

                            name="waitJobExec"

@@ -124,43 +116,21 @@
                   <command

                         commandId="org.polarsys.chess.verificationService.ui.commands.CheckValidationAssertionPropertyCommand"

                         icon="icons/contract_verification.png"

-                        label="Check Validation on Properties on selected component"

+                        label="Validation Check on Properties on selected component"

                         style="push">

                      <parameter

                            name="waitJobExec"

                            value="true">

                      </parameter>

                   </command>

-                  <menu

-                        label="//Debug Validation">

-                     <command

-                           commandId="org.polarsys.chess.verificationService.commands.debug.CheckValidationPropertyOnFileCommand"

-                           icon="icons/contract_verification.png"

-                           style="push">

-                     </command>

-                  </menu>

                </menu>

+            </menuContribution>

+            <menuContribution

+                  allPopups="false"

+                  locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.validation.id">

                <menu

-                     id="org.eclipse.ui.main.menu.CHESS.funcVer"

-                     label="Functional Verifications">

-                  <menu

-                        label="//Debug Operations">

-                     <command

-                           commandId="org.polarsys.chess.verificationService.commands.debug.ContractRefinementOnFileCommand"

-                           icon="icons/contract_verification.png"

-                           style="push">

-                     </command>

-                     <command

-                           commandId="org.polarsys.chess.verificationService.commands.debug.ContractImplementationOnFileCommand"

-                           icon="icons/contract_verification.png"

-                           style="push">

-                     </command>

-                     <command

-                           commandId="org.polarsys.chess.verificationService.commands.debug.ModelCheckingOnFileCommand"

-                           icon="icons/contract_verification.png"

-                           style="push">

-                     </command>

-                  </menu>

+                     id="chess.menu.functverification.id"

+                     label="Functional Verification">

                   <command

                         commandId="org.polarsys.chess.verificationService.commands.ContractRefinementCommand"

                         icon="icons/contract_verification.png"

@@ -202,9 +172,52 @@
                      </parameter>

                   </command>

                </menu>

+            </menuContribution>

+            <menuContribution

+                  allPopups="false"

+                  locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.debug.id">

                <menu

-                     id="org.eclipse.ui.main.menu.CHESS.safetyAnalysis"

-                     label="Safety Analysis">

+                     id="chess.menu.debug.id"

+                     label="//Debug Operations">

+                  <menu

+                        label="Basic Operations">

+                     <command

+                           commandId="org.polarsys.chess.verificationService.commands.debug.RuntimeErrorsOnFileCommand"

+                           style="push">

+                     </command>

+                     <command

+                           commandId="org.polarsys.chess.verificationService.ui.commands.debug.RuntimeErrorsOnSMVFileCommand"

+                           style="push">

+                     </command>

+                  </menu>

+                  <menu

+                        id="chess.menu.debug.validation.id"

+                        label="Validation">

+                     <command

+                           commandId="org.polarsys.chess.verificationService.commands.debug.CheckValidationPropertyOnFileCommand"

+                           icon="icons/contract_verification.png"

+                           style="push">

+                     </command>

+                  </menu>

+                  <menu

+                        id="chess.menu.debug.functverification.id"

+                        label="Functional Verification">

+                     <command

+                           commandId="org.polarsys.chess.verificationService.commands.debug.ContractRefinementOnFileCommand"

+                           icon="icons/contract_verification.png"

+                           style="push">

+                     </command>

+                     <command

+                           commandId="org.polarsys.chess.verificationService.commands.debug.ContractImplementationOnFileCommand"

+                           icon="icons/contract_verification.png"

+                           style="push">

+                     </command>

+                     <command

+                           commandId="org.polarsys.chess.verificationService.commands.debug.ModelCheckingOnFileCommand"

+                           icon="icons/contract_verification.png"

+                           style="push">

+                     </command>

+                  </menu>

                </menu>

             </menuContribution>

    </extension>

diff --git a/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/plugin.xml b/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/plugin.xml
index 4b908b2..bda6379 100644
--- a/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/plugin.xml
+++ b/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/plugin.xml
@@ -46,26 +46,15 @@
       </menuContribution>

       <menuContribution

             allPopups="false"

-            locationURI="menu:org.eclipse.ui.main.menu">

+            locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.functverification.id">

          <menu

-               id="org.polarsys.chess.mainMenu"

-               label="CHESS">

-            <menu

-                  id="chess.menu.analysis.id"

-                  label="Analysis">

-               <menu

-                     id="chess.menu.analysis.dependability.id"

-                     label="Dependability">

-                  <command

-                        commandId="ftaGenerator.commands.generateFTA"

-                        label="Generate FT via Concerto-FLA"

-                        style="push">

-                  </command>

-               </menu>

-            </menu>

-         </menu>

-         <menu

-               label="MyfavouriteMenu">

+               id="chess.menu.dependability.id"

+               label="Dependability">

+            <command

+                  commandId="ftaGenerator.commands.generateFTA"

+                  label="Generate FT via Concerto-FLA"

+                  style="push">

+            </command>

          </menu>

       </menuContribution>

    </extension>

diff --git a/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/src/org/polarsys/chess/fla/faultTreeGenerator/handlers/FTAHandler.java b/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/src/org/polarsys/chess/fla/faultTreeGenerator/handlers/FTAHandler.java
index c36b845..265ca15 100644
--- a/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/src/org/polarsys/chess/fla/faultTreeGenerator/handlers/FTAHandler.java
+++ b/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/src/org/polarsys/chess/fla/faultTreeGenerator/handlers/FTAHandler.java
@@ -35,7 +35,7 @@
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.polarsys.chess.fla.faultTreeGenerator.visualization.FaultTreeVisualizer;
+import eu.fbk.eclipse.standardtools.faultTreeViewer.utils.FaultTreeViewerUtil;
 
 
 public class FTAHandler extends AbstractHandler {
@@ -89,13 +89,19 @@
 			IPath path2 = target.getFullPath();
 			IFile file = (IFile) ResourcesPlugin.getWorkspace().getRoot().getFile(path2);
 			try {
-				FaultTreeVisualizer.getInstance().openFTAViewerFromEmftaFile(file, new NullProgressMonitor());
+
+				FaultTreeViewerUtil.getInstance().openFTAViewerFromEmftaFile(file, new NullProgressMonitor());
 				pMonitor.done();
 				nombrequequiera.close();
+
 			} catch (Exception e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
+			finally{
+				pMonitor.done();
+				nombrequequiera.close();
+			}
 			//MessageDialog.openInformation(null, "Process completed", "FTA diagram has been generated successfully.");
 		}else{
 			//If the extension is not the correct one, we show a message to the user and no further action is taken.
diff --git a/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/src/org/polarsys/chess/fla/faultTreeGenerator/handlers/Transformation.java b/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/src/org/polarsys/chess/fla/faultTreeGenerator/handlers/Transformation.java
index a13fcfd..d954843 100644
--- a/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/src/org/polarsys/chess/fla/faultTreeGenerator/handlers/Transformation.java
+++ b/plugins/fla/org.polarsys.chess.fla.faultTreeGenerator/src/org/polarsys/chess/fla/faultTreeGenerator/handlers/Transformation.java
@@ -18,6 +18,8 @@
 package org.polarsys.chess.fla.faultTreeGenerator.handlers;

 

 import java.io.File;

+import java.io.IOException;

+import java.net.URL;

 

 import javax.swing.JFileChooser;

 

@@ -27,11 +29,14 @@
 import org.eclipse.core.resources.IResource;

 import org.eclipse.core.resources.ResourcesPlugin;

 import org.eclipse.core.runtime.CoreException;

+import org.eclipse.core.runtime.FileLocator;

 import org.eclipse.core.runtime.IPath;

 import org.eclipse.core.runtime.NullProgressMonitor;

 import org.eclipse.core.runtime.Path;

+import org.eclipse.core.runtime.Platform;

 import org.eclipse.ui.IWorkbenchWindow;

 import org.eclipse.ui.handlers.HandlerUtil;

+import org.osgi.framework.Bundle;

 import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;

 import org.eclipse.epsilon.eol.exceptions.models.EolModelLoadingException;

 

@@ -48,7 +53,7 @@
 	private Object result;

 

 	/**

-	 * Contructor of the class.

+	 * Constructor of the class.

 	 * @param event - event generated when the button is clicked.

 	 */

 	public Transformation(ExecutionEvent event){

@@ -60,6 +65,18 @@
 	 * @return - a path that contains the location of the output model.

 	 */

 	public IPath execute(JFileChooser chooser){

+		Bundle bundle= Platform.getBundle("org.polarsys.chess.fla.faultTreeGenerator");

+		

+		String pathETLFile="";

+		Path pathETL= new Path("epsilon/FLA2FTA.etl");

+		URL ETLURL = FileLocator.find(bundle,pathETL,null);

+		try {

+			pathETLFile= FileLocator.toFileURL(ETLURL).getPath();

+		} catch (IOException e1) {

+			// TODO Auto-generated catch block

+			e1.printStackTrace();

+		}

+		

 		

 		try {

 			IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);

@@ -74,7 +91,7 @@
 	

 		/*First, we need to parse the file that contains the transformation rules and add this to our EtlModule*/

 		try {

-			module.parse(new File("org.polarsys.chess.fla.faultTreeGenerator/epsilon/FLA2FTA.etl"));

+			module.parse(new File(pathETLFile));

 		} catch (Exception e) {

 			// TODO Auto-generated catch block

 			e.printStackTrace();

@@ -82,22 +99,47 @@
 		

 		IPath pat = ResourcesPlugin.getWorkspace().getRoot().getLocation();

 	    

-	    /*If the file selected by the user doen't have the proper extension, the plug-in will notify this and won't perform any action.*/

+	    /*If the file selected by the user doesn't have the proper extension, the plug-in will notify this and won't perform any action.*/

 	    String name = chooser.getSelectedFile().getName();

 	    if(name.contains(".flamm")){

 	    	

+	    	//Path settings for the model which needs to be transformed and selected through file chooser

 	    	String pathFlamm = chooser.getSelectedFile().getAbsolutePath();

 	    	String flaName = chooser.getSelectedFile().getName();

 	    	String flaName2 = flaName.replaceAll(".flamm", "");

 	    	String pathFta = chooser.getCurrentDirectory().getAbsolutePath();

 	    	

 	    	

-	    	/*We create are source and target model by calling a private method that receives all need parameter to do this.*/

-	    	EmfModel flammModel = setEmfModel("flamm", true, false, "org.polarsys.chess.fla.faultTreeGenerator/models/flamm.ecore", pathFlamm);

+	    	// path settings for the meta-models which are embedded in the plugin and used as source and target

+	    	String pathFLAMMFile="";

+	    	String pathEMFTAMMFile= "";

+	    	Path pathFLAMM= new Path("models/flamm.ecore");

+	    	Path pathEMFTAMM= new Path("models/emfta.ecore");

+	    	URL fLAMMURL = FileLocator.find(bundle,pathFLAMM,null);

+	    	URL eMFTAURL = FileLocator.find(bundle, pathEMFTAMM,null);

 	    	

-	    	EmfModel emftaModel = setEmfModel("emfta",false, true, "org.polarsys.chess.fla.faultTreeGenerator/models/emfta.ecore", pathFta + "/" + flaName2 + ".emfta");

+	    	//generating absolute path from the ecore URL 

+	    	try {

+				pathFLAMMFile= FileLocator.toFileURL(fLAMMURL).getPath();

+			} catch (IOException e1) {

+				// TODO Auto-generated catch block

+				e1.printStackTrace();

+			}

+	    	

+	    	try {

+				pathEMFTAMMFile= FileLocator.toFileURL(eMFTAURL).getPath();

+			} catch (IOException e1) {

+				// TODO Auto-generated catch block

+				e1.printStackTrace();

+			}

+	    	

+	    	

+	    	/*We create are source and target model by calling a private method that receives all need parameter to do this.*/

+	    	EmfModel flammModel = setEmfModel("flamm", true, false, pathFLAMMFile, pathFlamm);

+	    	

+	    	EmfModel emftaModel = setEmfModel("emfta",false, true, pathEMFTAMMFile, pathFta + "/" + flaName2 + ".emfta");

 	

-	    	/*Finally, we add to the EtlModule all the rules and created models so it can be excuted.*/

+	    	/*Finally, we add to the EtlModule all the rules and created models so it can be executed.*/

 	    	module.getDeclaredPre();

 	    	module.getTransformationRules();

 	    	module.getDeclaredPost();

diff --git a/plugins/fla/org.polarsys.chess.fla/plugin.xml b/plugins/fla/org.polarsys.chess.fla/plugin.xml
index 33b3065..ce63ddc 100644
--- a/plugins/fla/org.polarsys.chess.fla/plugin.xml
+++ b/plugins/fla/org.polarsys.chess.fla/plugin.xml
@@ -17,67 +17,41 @@
          point="org.eclipse.ui.menus">

       <menuContribution

             allPopups="false"

-            locationURI="menu:org.eclipse.ui.main.menu">

+            locationURI="menu:org.polarsys.chess.mainMenu?after=org.polarsys.chess.mainmenu.dependability.separator1">

          <menu

-               id="org.polarsys.chess.mainMenu"

-               label="CHESS"

-               mnemonic="E">

-            <menu

-                  id="chess.menu.analysis.id"

-                  label="Analysis">

-               <menu

-                     id="chess.menu.analysis.dependability.id"

-                     label="Dependability">

-                  <command

-                        commandId="org.polarsys.chess.fla.analysis.command"

-                        label="Failure Logic Analysis (Concerto-FLA)"

-                        style="push">

-                     <visibleWhen

-                           checkEnabled="false">

-                        <or>

-                           <with

-                                 variable="activeEditorId">

-                              <equals

-                                    value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">

-                              </equals>

-                           </with>

-                           <with

-                                 variable="activeEditorInput">

-                              <adapt

-                                    type="org.eclipse.core.resources.IResource">

-                                 <test

-                                       property="org.eclipse.core.resources.projectNature"

-                                       value="org.polarsys.chess.CHESSNature">

-                                 </test>

-                              </adapt>

-                           </with>

-                        </or>

-                     </visibleWhen>

-                  </command>

-               </menu>

-            </menu>

-         </menu>

-      </menuContribution>

-      <menuContribution

-            allPopups="false"

-            locationURI="menu:org.eclipse.ui.main.menu">

-         <menu

-               id="org.polarsys.chess.mainMenu"

-               label="CHESS"

-               mnemonic="E">

-            <menu

-                  id="chess.menu.analysis.id"

-                  label="Analysis">

-               <menu

-                     id="chess.menu.analysis.dependability.id"

-                     label="Dependability">

-                  <command

-                        commandId="org.polarsys.chess.fla.analysis.command.xml"

-                        label="Failure Logic Analysis (Concerto-FLA) from XML"

-                        style="push">

-                  </command>

-               </menu>

-            </menu>

+               id="chess.menu.dependability.id"

+               label="Dependability">

+            <command

+                  commandId="org.polarsys.chess.fla.analysis.command"

+                  label="Failure Logic Analysis (Concerto-FLA)"

+                  style="push">

+               <visibleWhen

+                     checkEnabled="false">

+                  <or>

+                     <with

+                           variable="activeEditorId">

+                        <equals

+                              value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">

+                        </equals>

+                     </with>

+                     <with

+                           variable="activeEditorInput">

+                        <adapt

+                              type="org.eclipse.core.resources.IResource">

+                           <test

+                                 property="org.eclipse.core.resources.projectNature"

+                                 value="org.polarsys.chess.CHESSNature">

+                           </test>

+                        </adapt>

+                     </with>

+                  </or>

+               </visibleWhen>

+            </command>

+            <command

+                  commandId="org.polarsys.chess.fla.analysis.command.xml"

+                  label="Failure Logic Analysis (Concerto-FLA) from XML"

+                  style="push">

+            </command>

          </menu>

       </menuContribution>

 	</extension>   

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
index 15eff4a..e05dc0e 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
@@ -23,4 +23,7 @@
  org.polarsys.chess.xtext.ui,
  org.polarsys.chess.xtext.ui.contentassist,
  org.polarsys.chess.xtext.ui.quickfix
+ org.polarsys.chess.xtext.ui.internal,
+ org.polarsys.chess.xtext.ui.contentassist.antlr,
+ org.polarsys.chess.xtext.ui.contentassist.antlr.internal
 Bundle-Activator: org.polarsys.chess.xtext.fladsl.ui.internal.FladslActivator
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml_gen b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml_gen
new file mode 100644
index 0000000..125b903
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml_gen
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.0"?>

+

+<plugin>

+

+    <extension

+            point="org.eclipse.ui.editors">

+        <editor

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"

+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"

+            default="true"

+            extensions="fladsl"

+            id="org.polarsys.chess.xtext.FlaDsl"

+            name="FlaDsl Editor">

+        </editor>

+    </extension>

+    <extension

+        point="org.eclipse.ui.handlers">

+        <handler

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"

+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">

+            <activeWhen>

+                <reference

+                    definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

+                </reference>

+            </activeWhen>

+        </handler>

+        <handler

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"

+            commandId="org.polarsys.chess.xtext.FlaDsl.validate">

+         <activeWhen>

+            <reference

+                    definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

+            </reference>

+         </activeWhen>

+      	</handler>

+      	<!-- copy qualified name -->

+        <handler

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"

+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">

+            <activeWhen>

+				<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

+            </activeWhen>

+        </handler>

+        <handler

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"

+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">

+            <activeWhen>

+            	<and>

+            		<reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />

+	                <iterate>

+						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />

+					</iterate>

+				</and>

+            </activeWhen>

+        </handler>

+    </extension>

+    <extension point="org.eclipse.core.expressions.definitions">

+        <definition id="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

+            <and>

+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>

+                <with variable="activeEditor">

+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 

+                        value="org.polarsys.chess.xtext.FlaDsl" 

+                        forcePluginActivation="true"/>

+                </with>        

+            </and>

+        </definition>

+        <definition id="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened">

+            <and>

+                <reference definitionId="isXtextEditorActive"/>

+                <with variable="activeEditor">

+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 

+                        value="org.polarsys.chess.xtext.FlaDsl" 

+                        forcePluginActivation="true"/>

+                </with>        

+            </and>

+        </definition>

+    </extension>

+    <extension

+            point="org.eclipse.ui.preferencePages">

+        <page

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"

+            id="org.polarsys.chess.xtext.FlaDsl"

+            name="FlaDsl">

+            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

+        </page>

+        <page

+            category="org.polarsys.chess.xtext.FlaDsl"

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"

+            id="org.polarsys.chess.xtext.FlaDsl.coloring"

+            name="Syntax Coloring">

+            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

+        </page>

+        <page

+            category="org.polarsys.chess.xtext.FlaDsl"

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"

+            id="org.polarsys.chess.xtext.FlaDsl.templates"

+            name="Templates">

+            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

+        </page>

+    </extension>

+    <extension

+            point="org.eclipse.ui.propertyPages">

+        <page

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"

+            id="org.polarsys.chess.xtext.FlaDsl"

+            name="FlaDsl">

+            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

+            <enabledWhen>

+	            <adapt type="org.eclipse.core.resources.IProject"/>

+			</enabledWhen>

+	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>

+        </page>

+    </extension>

+    <extension

+        point="org.eclipse.ui.keywords">

+        <keyword

+            id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"

+            label="FlaDsl"/>

+    </extension>

+    <extension

+         point="org.eclipse.ui.commands">

+      <command

+            description="Trigger expensive validation"

+            id="org.polarsys.chess.xtext.FlaDsl.validate"

+            name="Validate">

+      </command>

+      <!-- copy qualified name -->

+      <command

+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"

+            categoryId="org.eclipse.ui.category.edit"

+            description="Copy the qualified name for the selected element"

+            name="Copy Qualified Name">

+      </command>

+      <command

+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"

+            categoryId="org.eclipse.ui.category.edit"

+            description="Copy the qualified name for the selected element"

+            name="Copy Qualified Name">

+      </command>

+    </extension>

+    <extension point="org.eclipse.ui.menus">

+        <menuContribution

+            locationURI="popup:#TextEditorContext?after=group.edit">

+             <command

+                 commandId="org.polarsys.chess.xtext.FlaDsl.validate"

+                 style="push"

+                 tooltip="Trigger expensive validation">

+            <visibleWhen checkEnabled="false">

+                <reference

+                    definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

+                </reference>

+            </visibleWhen>

+         </command>  

+         </menuContribution>

+         <!-- copy qualified name -->

+         <menuContribution locationURI="popup:#TextEditorContext?after=copy">

+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" 

+         		style="push" tooltip="Copy Qualified Name">

+            	<visibleWhen checkEnabled="false">

+                	<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

+            	</visibleWhen>

+         	</command>  

+         </menuContribution>

+         <menuContribution locationURI="menu:edit?after=copy">

+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"

+            	style="push" tooltip="Copy Qualified Name">

+            	<visibleWhen checkEnabled="false">

+                	<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

+            	</visibleWhen>

+         	</command>  

+         </menuContribution>

+         <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">

+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" 

+				style="push" tooltip="Copy Qualified Name">

+         		<visibleWhen checkEnabled="false">

+	            	<and>

+	            		<reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />

+						<iterate>

+							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />

+						</iterate>

+					</and>

+				</visibleWhen>

+			</command>

+         </menuContribution>

+    </extension>

+    <extension point="org.eclipse.ui.menus">

+		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find">

+			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">

+				<visibleWhen checkEnabled="false">

+                	<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

+                	</reference>

+            	</visibleWhen>

+			</command>

+		</menuContribution>

+	</extension>

+	<extension point="org.eclipse.ui.handlers">

+	    <handler

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"

+            commandId="org.eclipse.xtext.ui.editor.FindReferences">

+            <activeWhen>

+                <reference

+                    definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

+                </reference>

+            </activeWhen>

+        </handler>

+    </extension>   

+

+<!-- adding resource factories -->

+

+	<extension

+		point="org.eclipse.emf.ecore.extension_parser">

+		<parser

+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"

+			type="fladsl">

+		</parser>

+	</extension>

+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">

+        <resourceServiceProvider

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"

+            uriExtension="fladsl">

+        </resourceServiceProvider>

+    </extension>

+

+

+	<!-- marker definitions for org.polarsys.chess.xtext.FlaDsl -->

+	<extension

+	        id="fladsl.check.fast"

+	        name="FlaDsl Problem"

+	        point="org.eclipse.core.resources.markers">

+	    <super type="org.eclipse.xtext.ui.check.fast"/>

+	    <persistent value="true"/>

+	</extension>

+	<extension

+	        id="fladsl.check.normal"

+	        name="FlaDsl Problem"

+	        point="org.eclipse.core.resources.markers">

+	    <super type="org.eclipse.xtext.ui.check.normal"/>

+	    <persistent value="true"/>

+	</extension>

+	<extension

+	        id="fladsl.check.expensive"

+	        name="FlaDsl Problem"

+	        point="org.eclipse.core.resources.markers">

+	    <super type="org.eclipse.xtext.ui.check.expensive"/>

+	    <persistent value="true"/>

+	</extension>

+

+   <extension

+         point="org.eclipse.xtext.builder.participant">

+      <participant

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"

+            fileExtensions="fladsl"

+            >

+      </participant>

+   </extension>

+   <extension

+            point="org.eclipse.ui.preferencePages">

+        <page

+            category="org.polarsys.chess.xtext.FlaDsl"

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"

+            id="org.polarsys.chess.xtext.FlaDsl.compiler.preferencePage"

+            name="Compiler">

+            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

+        </page>

+    </extension>

+    <extension

+            point="org.eclipse.ui.propertyPages">

+        <page

+            category="org.polarsys.chess.xtext.FlaDsl"

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"

+            id="org.polarsys.chess.xtext.FlaDsl.compiler.propertyPage"

+            name="Compiler">

+            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

+            <enabledWhen>

+	            <adapt type="org.eclipse.core.resources.IProject"/>

+			</enabledWhen>

+	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>

+        </page>

+    </extension>

+    <extension point="org.eclipse.ui.menus">

+		<menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">

+			<command

+				commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"

+				id="org.polarsys.chess.xtext.FlaDsl.OpenGeneratedCode"

+				style="push">

+					<visibleWhen checkEnabled="false">

+						<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

+					</visibleWhen>

+			</command>

+		</menuContribution>

+	</extension>

+	<extension point="org.eclipse.ui.handlers">

+		<handler

+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"

+			commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">

+				<activeWhen>

+					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

+				</activeWhen>

+		</handler>

+	</extension>

+

+	<!-- Quick Outline -->

+	<extension

+		point="org.eclipse.ui.handlers">

+		<handler 

+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"

+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">

+			<activeWhen>

+				<reference

+					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

+				</reference>

+			</activeWhen>

+		</handler>

+	</extension>

+	<extension

+		point="org.eclipse.ui.commands">

+		<command

+			description="Open the quick outline."

+			id="org.eclipse.xtext.ui.editor.outline.QuickOutline"

+			name="Quick Outline">

+		</command>

+	</extension>

+	<extension point="org.eclipse.ui.menus">

+		<menuContribution

+			locationURI="popup:#TextEditorContext?after=group.open">

+			<command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"

+				style="push"

+				tooltip="Open Quick Outline">

+				<visibleWhen checkEnabled="false">

+					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened"/>

+				</visibleWhen>

+			</command>

+		</menuContribution>

+	</extension>

+    <!-- quickfix marker resolution generator for org.polarsys.chess.xtext.FlaDsl -->

+    <extension

+            point="org.eclipse.ui.ide.markerResolution">

+        <markerResolutionGenerator

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"

+            markerType="org.polarsys.chess.xtext.ui.fladsl.check.fast">

+            <attribute

+                name="FIXABLE_KEY"

+                value="true">

+            </attribute>

+        </markerResolutionGenerator>

+        <markerResolutionGenerator

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"

+            markerType="org.polarsys.chess.xtext.ui.fladsl.check.normal">

+            <attribute

+                name="FIXABLE_KEY"

+                value="true">

+            </attribute>

+        </markerResolutionGenerator>

+        <markerResolutionGenerator

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"

+            markerType="org.polarsys.chess.xtext.ui.fladsl.check.expensive">

+            <attribute

+                name="FIXABLE_KEY"

+                value="true">

+            </attribute>

+        </markerResolutionGenerator>

+    </extension>

+   	<!-- Rename Refactoring -->

+	<extension point="org.eclipse.ui.handlers">

+		<handler 

+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"

+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">

+			<activeWhen>

+				<reference

+					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

+				</reference>

+			</activeWhen>

+		</handler>

+	</extension>

+    <extension point="org.eclipse.ui.menus">

+         <menuContribution

+            locationURI="popup:#TextEditorContext?after=group.edit">

+         <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"

+               style="push">

+            <visibleWhen checkEnabled="false">

+               <reference

+                     definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

+               </reference>

+            </visibleWhen>

+         </command>

+      </menuContribution>

+   </extension>

+   <extension point="org.eclipse.ui.preferencePages">

+	    <page

+	        category="org.polarsys.chess.xtext.FlaDsl"

+	        class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"

+	        id="org.polarsys.chess.xtext.FlaDsl.refactoring"

+	        name="Refactoring">

+	        <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

+	    </page>

+	</extension>

+

+  <extension point="org.eclipse.compare.contentViewers">

+    <viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentViewers"

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"

+            extensions="fladsl">

+    </viewer>

+  </extension>

+  <extension point="org.eclipse.compare.contentMergeViewers">

+    <viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentMergeViewers"

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"

+            extensions="fladsl" label="FlaDsl Compare">

+     </viewer>

+  </extension>

+  <extension point="org.eclipse.ui.editors.documentProviders">

+    <provider id="org.polarsys.chess.xtext.FlaDsl.editors.documentProviders"

+            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"

+            extensions="fladsl">

+    </provider>

+  </extension>

+  <extension point="org.eclipse.team.core.fileTypes">

+    <fileTypes

+            extension="fladsl"

+            type="text">

+    </fileTypes>

+  </extension>

+

+</plugin>

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/AbstractFlaDslUiModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/AbstractFlaDslUiModule.java
new file mode 100644
index 0000000..f7927e9
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/AbstractFlaDslUiModule.java
@@ -0,0 +1,201 @@
+
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.polarsys.chess.xtext.ui.FlaDslUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractFlaDslUiModule extends org.eclipse.xtext.common.types.ui.DefaultCommonTypesUiModule {
+	
+	public AbstractFlaDslUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+	}
+	
+	
+	// contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+	public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
+		return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState();
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() {
+		return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public void configureHighlightingLexer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+		return org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
+		return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.generator.IContextualOutputConfigurationProvider> bindIContextualOutputConfigurationProvider() {
+		return org.eclipse.xtext.builder.EclipseOutputConfigurationProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+		return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+		return org.eclipse.xtext.builder.BuilderParticipant.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
+		return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+	public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+		return org.polarsys.chess.xtext.ui.labeling.FlaDslLabelProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+	public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(org.polarsys.chess.xtext.ui.labeling.FlaDslDescriptionLabelProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+		return org.polarsys.chess.xtext.ui.outline.FlaDslOutlineTreeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+		return org.polarsys.chess.xtext.ui.outline.FlaDslOutlineTreeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+		return org.polarsys.chess.xtext.ui.quickfix.FlaDslQuickfixProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.contentAssist.ContentAssistFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+		return org.polarsys.chess.xtext.ui.contentassist.FlaDslProposalProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+		return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
+		return org.polarsys.chess.xtext.ui.contentassist.antlr.FlaDslParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+		binder.bind(org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslLexer.class));
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public void configureContentAssistLexer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() {
+		return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() {
+		return org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+		return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() {
+		return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport.Factory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() {
+		return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+		return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() {
+		return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry();
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() {
+		return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+		return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
+		return org.polarsys.chess.xtext.ui.contentassist.antlr.PartialFlaDslContentAssistParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+	public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() {
+		return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+	public void configureCompareViewerTitle(com.google.inject.Binder binder) {
+		binder.bind(String.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.UIBindings.COMPARE_VIEWER_TITLE)).toInstance("FlaDsl Compare");
+	}
+
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/FlaDslExecutableExtensionFactory.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/FlaDslExecutableExtensionFactory.java
new file mode 100644
index 0000000..bdea9a0
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/FlaDslExecutableExtensionFactory.java
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import org.polarsys.chess.xtext.ui.internal.FlaDslActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class FlaDslExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+	@Override
+	protected Bundle getBundle() {
+		return FlaDslActivator.getInstance().getBundle();
+	}
+	
+	@Override
+	protected Injector getInjector() {
+		return FlaDslActivator.getInstance().getInjector(FlaDslActivator.ORG_POLARSYS_CHESS_XTEXT_FLADSL);
+	}
+	
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/AbstractFlaDslProposalProvider.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/AbstractFlaDslProposalProvider.java
new file mode 100644
index 0000000..345976e
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/AbstractFlaDslProposalProvider.java
@@ -0,0 +1,176 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
+ * with a more concrete subtype. 
+ */
+@SuppressWarnings("all")
+public class AbstractFlaDslProposalProvider extends org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider {
+		
+	public void completeBehaviour_Rules(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeExpression_Lhs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeExpression_Rhs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLhs_Failures(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRhs_Failures(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeInputExpression_Ref(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeInputExpression_FailureExpr(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeOutputExpression_Ref(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeOutputExpression_FailureExpr(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeInFailureExpr_Failures(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeOutFailureExpr_Failures(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFailureDefinition_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFailureDefinition_AcidAvoidable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeComplexNofailureDefinition_AcidMitigation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVariableDefinition_VariableName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeACIDavoidable_A(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeACIDavoidable_C(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeACIDavoidable_I(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeACIDavoidable_D(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeACIDMitigation_A(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeACIDMitigation_C(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeACIDMitigation_I(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeACIDMitigation_D(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+    
+	public void complete_Behaviour(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Expression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Lhs(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Rhs(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_InputExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_OutputExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_InFailureExpr(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_OutFailureExpr(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Definitions(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_FailureDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NoFailureDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ComplexNofailureDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_WildcardDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_VariableDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_FailureType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActualFailureType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NoFailureType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Wildcard(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ACIDavoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Aavoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Cavoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Iavoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Davoidable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ACIDMitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Amitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Cmitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Imitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Dmitigation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_FQN(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/FlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/FlaDslParser.java
new file mode 100644
index 0000000..9117351
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/FlaDslParser.java
@@ -0,0 +1,140 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.RecognitionException;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+
+import com.google.inject.Inject;
+
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+public class FlaDslParser extends AbstractContentAssistParser {
+	
+	@Inject
+	private FlaDslGrammarAccess grammarAccess;
+	
+	private Map<AbstractElement, String> nameMappings;
+	
+	@Override
+	protected org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser createParser() {
+		org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser result = new org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser(null);
+		result.setGrammarAccess(grammarAccess);
+		return result;
+	}
+	
+	@Override
+	protected String getRuleName(AbstractElement element) {
+		if (nameMappings == null) {
+			nameMappings = new HashMap<AbstractElement, String>() {
+				private static final long serialVersionUID = 1L;
+				{
+					put(grammarAccess.getInputExpressionAccess().getAlternatives_0(), "rule__InputExpression__Alternatives_0");
+					put(grammarAccess.getOutputExpressionAccess().getAlternatives_0(), "rule__OutputExpression__Alternatives_0");
+					put(grammarAccess.getInFailureExprAccess().getAlternatives(), "rule__InFailureExpr__Alternatives");
+					put(grammarAccess.getOutFailureExprAccess().getAlternatives(), "rule__OutFailureExpr__Alternatives");
+					put(grammarAccess.getDefinitionsAccess().getAlternatives(), "rule__Definitions__Alternatives");
+					put(grammarAccess.getFailureTypeAccess().getAlternatives(), "rule__FailureType__Alternatives");
+					put(grammarAccess.getActualFailureTypeAccess().getAlternatives(), "rule__ActualFailureType__Alternatives");
+					put(grammarAccess.getAavoidableAccess().getAlternatives(), "rule__Aavoidable__Alternatives");
+					put(grammarAccess.getCavoidableAccess().getAlternatives(), "rule__Cavoidable__Alternatives");
+					put(grammarAccess.getIavoidableAccess().getAlternatives(), "rule__Iavoidable__Alternatives");
+					put(grammarAccess.getDavoidableAccess().getAlternatives(), "rule__Davoidable__Alternatives");
+					put(grammarAccess.getAmitigationAccess().getAlternatives(), "rule__Amitigation__Alternatives");
+					put(grammarAccess.getCmitigationAccess().getAlternatives(), "rule__Cmitigation__Alternatives");
+					put(grammarAccess.getImitigationAccess().getAlternatives(), "rule__Imitigation__Alternatives");
+					put(grammarAccess.getDmitigationAccess().getAlternatives(), "rule__Dmitigation__Alternatives");
+					put(grammarAccess.getExpressionAccess().getGroup(), "rule__Expression__Group__0");
+					put(grammarAccess.getLhsAccess().getGroup(), "rule__Lhs__Group__0");
+					put(grammarAccess.getLhsAccess().getGroup_1(), "rule__Lhs__Group_1__0");
+					put(grammarAccess.getRhsAccess().getGroup(), "rule__Rhs__Group__0");
+					put(grammarAccess.getRhsAccess().getGroup_1(), "rule__Rhs__Group_1__0");
+					put(grammarAccess.getInputExpressionAccess().getGroup(), "rule__InputExpression__Group__0");
+					put(grammarAccess.getOutputExpressionAccess().getGroup(), "rule__OutputExpression__Group__0");
+					put(grammarAccess.getInFailureExprAccess().getGroup_3(), "rule__InFailureExpr__Group_3__0");
+					put(grammarAccess.getInFailureExprAccess().getGroup_3_2(), "rule__InFailureExpr__Group_3_2__0");
+					put(grammarAccess.getOutFailureExprAccess().getGroup_3(), "rule__OutFailureExpr__Group_3__0");
+					put(grammarAccess.getOutFailureExprAccess().getGroup_3_2(), "rule__OutFailureExpr__Group_3_2__0");
+					put(grammarAccess.getFailureDefinitionAccess().getGroup(), "rule__FailureDefinition__Group__0");
+					put(grammarAccess.getFailureDefinitionAccess().getGroup_2(), "rule__FailureDefinition__Group_2__0");
+					put(grammarAccess.getNoFailureDefinitionAccess().getGroup(), "rule__NoFailureDefinition__Group__0");
+					put(grammarAccess.getComplexNofailureDefinitionAccess().getGroup(), "rule__ComplexNofailureDefinition__Group__0");
+					put(grammarAccess.getWildcardDefinitionAccess().getGroup(), "rule__WildcardDefinition__Group__0");
+					put(grammarAccess.getVariableDefinitionAccess().getGroup(), "rule__VariableDefinition__Group__0");
+					put(grammarAccess.getACIDavoidableAccess().getGroup(), "rule__ACIDavoidable__Group__0");
+					put(grammarAccess.getACIDMitigationAccess().getGroup(), "rule__ACIDMitigation__Group__0");
+					put(grammarAccess.getFQNAccess().getGroup(), "rule__FQN__Group__0");
+					put(grammarAccess.getFQNAccess().getGroup_1(), "rule__FQN__Group_1__0");
+					put(grammarAccess.getBehaviourAccess().getRulesAssignment(), "rule__Behaviour__RulesAssignment");
+					put(grammarAccess.getExpressionAccess().getLhsAssignment_1(), "rule__Expression__LhsAssignment_1");
+					put(grammarAccess.getExpressionAccess().getRhsAssignment_3(), "rule__Expression__RhsAssignment_3");
+					put(grammarAccess.getLhsAccess().getFailuresAssignment_0(), "rule__Lhs__FailuresAssignment_0");
+					put(grammarAccess.getLhsAccess().getFailuresAssignment_1_1(), "rule__Lhs__FailuresAssignment_1_1");
+					put(grammarAccess.getRhsAccess().getFailuresAssignment_0(), "rule__Rhs__FailuresAssignment_0");
+					put(grammarAccess.getRhsAccess().getFailuresAssignment_1_1(), "rule__Rhs__FailuresAssignment_1_1");
+					put(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0(), "rule__InputExpression__RefAssignment_0_0");
+					put(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2(), "rule__InputExpression__FailureExprAssignment_2");
+					put(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0(), "rule__OutputExpression__RefAssignment_0_0");
+					put(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2(), "rule__OutputExpression__FailureExprAssignment_2");
+					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0(), "rule__InFailureExpr__FailuresAssignment_0");
+					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1(), "rule__InFailureExpr__FailuresAssignment_1");
+					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2(), "rule__InFailureExpr__FailuresAssignment_2");
+					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1(), "rule__InFailureExpr__FailuresAssignment_3_1");
+					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1(), "rule__InFailureExpr__FailuresAssignment_3_2_1");
+					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4(), "rule__InFailureExpr__FailuresAssignment_4");
+					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0(), "rule__OutFailureExpr__FailuresAssignment_0");
+					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1(), "rule__OutFailureExpr__FailuresAssignment_1");
+					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2(), "rule__OutFailureExpr__FailuresAssignment_2");
+					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1(), "rule__OutFailureExpr__FailuresAssignment_3_1");
+					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1(), "rule__OutFailureExpr__FailuresAssignment_3_2_1");
+					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4(), "rule__OutFailureExpr__FailuresAssignment_4");
+					put(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1(), "rule__FailureDefinition__TypeAssignment_1");
+					put(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1(), "rule__FailureDefinition__AcidAvoidableAssignment_2_1");
+					put(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3(), "rule__ComplexNofailureDefinition__AcidMitigationAssignment_3");
+					put(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1(), "rule__VariableDefinition__VariableNameAssignment_1");
+					put(grammarAccess.getACIDavoidableAccess().getAAssignment_0(), "rule__ACIDavoidable__AAssignment_0");
+					put(grammarAccess.getACIDavoidableAccess().getCAssignment_2(), "rule__ACIDavoidable__CAssignment_2");
+					put(grammarAccess.getACIDavoidableAccess().getIAssignment_4(), "rule__ACIDavoidable__IAssignment_4");
+					put(grammarAccess.getACIDavoidableAccess().getDAssignment_6(), "rule__ACIDavoidable__DAssignment_6");
+					put(grammarAccess.getACIDMitigationAccess().getAAssignment_0(), "rule__ACIDMitigation__AAssignment_0");
+					put(grammarAccess.getACIDMitigationAccess().getCAssignment_2(), "rule__ACIDMitigation__CAssignment_2");
+					put(grammarAccess.getACIDMitigationAccess().getIAssignment_4(), "rule__ACIDMitigation__IAssignment_4");
+					put(grammarAccess.getACIDMitigationAccess().getDAssignment_6(), "rule__ACIDMitigation__DAssignment_6");
+				}
+			};
+		}
+		return nameMappings.get(element);
+	}
+	
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		try {
+			org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser typedParser = (org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser) parser;
+			typedParser.entryRuleBehaviour();
+			return typedParser.getFollowElements();
+		} catch(RecognitionException ex) {
+			throw new RuntimeException(ex);
+		}		
+	}
+	
+	@Override
+	protected String[] getInitialHiddenTokens() {
+		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+	}
+	
+	public FlaDslGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/PartialFlaDslContentAssistParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/PartialFlaDslContentAssistParser.java
new file mode 100644
index 0000000..8d2b405
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/PartialFlaDslContentAssistParser.java
@@ -0,0 +1,38 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+/*
+ * Template CodetemplatesGeneratorFragment.xpt
+ */
+public class PartialFlaDslContentAssistParser extends FlaDslParser implements IPartialContentAssistParser {
+
+	private AbstractRule rule;
+
+	@Override
+	public void initializeFor(AbstractRule rule) {
+		this.rule = rule;
+	}
+	
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		if (rule == null || rule.eIsProxy())
+			return Collections.emptyList();
+		String methodName = "entryRule" + rule.getName();
+		PolymorphicDispatcher<Collection<FollowElement>> dispatcher = 
+			new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+		dispatcher.invoke();
+		return parser.getFollowElements();
+	}
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.g b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.g
new file mode 100644
index 0000000..d42f42f
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.g
@@ -0,0 +1,3592 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalFlaDsl;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	
+}
+
+@lexer::header {
+package org.polarsys.chess.xtext.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.polarsys.chess.xtext.ui.contentassist.antlr.internal; 
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+}
+
+@parser::members {
+ 
+ 	private FlaDslGrammarAccess grammarAccess;
+ 	
+    public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
+    	this.grammarAccess = grammarAccess;
+    }
+    
+    @Override
+    protected Grammar getGrammar() {
+    	return grammarAccess.getGrammar();
+    }
+    
+    @Override
+    protected String getValueForTokenName(String tokenName) {
+    	return tokenName;
+    }
+
+}
+
+
+
+
+// Entry rule entryRuleBehaviour
+entryRuleBehaviour 
+:
+{ before(grammarAccess.getBehaviourRule()); }
+	 ruleBehaviour
+{ after(grammarAccess.getBehaviourRule()); } 
+	 EOF 
+;
+
+// Rule Behaviour
+ruleBehaviour
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+(
+{ before(grammarAccess.getBehaviourAccess().getRulesAssignment()); }
+(rule__Behaviour__RulesAssignment)
+{ after(grammarAccess.getBehaviourAccess().getRulesAssignment()); }
+)
+(
+{ before(grammarAccess.getBehaviourAccess().getRulesAssignment()); }
+(rule__Behaviour__RulesAssignment)*
+{ after(grammarAccess.getBehaviourAccess().getRulesAssignment()); }
+)
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleExpression
+entryRuleExpression 
+:
+{ before(grammarAccess.getExpressionRule()); }
+	 ruleExpression
+{ after(grammarAccess.getExpressionRule()); } 
+	 EOF 
+;
+
+// Rule Expression
+ruleExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getExpressionAccess().getGroup()); }
+(rule__Expression__Group__0)
+{ after(grammarAccess.getExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLhs
+entryRuleLhs 
+:
+{ before(grammarAccess.getLhsRule()); }
+	 ruleLhs
+{ after(grammarAccess.getLhsRule()); } 
+	 EOF 
+;
+
+// Rule Lhs
+ruleLhs
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLhsAccess().getGroup()); }
+(rule__Lhs__Group__0)
+{ after(grammarAccess.getLhsAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleRhs
+entryRuleRhs 
+:
+{ before(grammarAccess.getRhsRule()); }
+	 ruleRhs
+{ after(grammarAccess.getRhsRule()); } 
+	 EOF 
+;
+
+// Rule Rhs
+ruleRhs
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getRhsAccess().getGroup()); }
+(rule__Rhs__Group__0)
+{ after(grammarAccess.getRhsAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleInputExpression
+entryRuleInputExpression 
+:
+{ before(grammarAccess.getInputExpressionRule()); }
+	 ruleInputExpression
+{ after(grammarAccess.getInputExpressionRule()); } 
+	 EOF 
+;
+
+// Rule InputExpression
+ruleInputExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getInputExpressionAccess().getGroup()); }
+(rule__InputExpression__Group__0)
+{ after(grammarAccess.getInputExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOutputExpression
+entryRuleOutputExpression 
+:
+{ before(grammarAccess.getOutputExpressionRule()); }
+	 ruleOutputExpression
+{ after(grammarAccess.getOutputExpressionRule()); } 
+	 EOF 
+;
+
+// Rule OutputExpression
+ruleOutputExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getGroup()); }
+(rule__OutputExpression__Group__0)
+{ after(grammarAccess.getOutputExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleInFailureExpr
+entryRuleInFailureExpr 
+:
+{ before(grammarAccess.getInFailureExprRule()); }
+	 ruleInFailureExpr
+{ after(grammarAccess.getInFailureExprRule()); } 
+	 EOF 
+;
+
+// Rule InFailureExpr
+ruleInFailureExpr
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getInFailureExprAccess().getAlternatives()); }
+(rule__InFailureExpr__Alternatives)
+{ after(grammarAccess.getInFailureExprAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOutFailureExpr
+entryRuleOutFailureExpr 
+:
+{ before(grammarAccess.getOutFailureExprRule()); }
+	 ruleOutFailureExpr
+{ after(grammarAccess.getOutFailureExprRule()); } 
+	 EOF 
+;
+
+// Rule OutFailureExpr
+ruleOutFailureExpr
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getAlternatives()); }
+(rule__OutFailureExpr__Alternatives)
+{ after(grammarAccess.getOutFailureExprAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleFailureDefinition
+entryRuleFailureDefinition 
+:
+{ before(grammarAccess.getFailureDefinitionRule()); }
+	 ruleFailureDefinition
+{ after(grammarAccess.getFailureDefinitionRule()); } 
+	 EOF 
+;
+
+// Rule FailureDefinition
+ruleFailureDefinition
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getGroup()); }
+(rule__FailureDefinition__Group__0)
+{ after(grammarAccess.getFailureDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNoFailureDefinition
+entryRuleNoFailureDefinition 
+:
+{ before(grammarAccess.getNoFailureDefinitionRule()); }
+	 ruleNoFailureDefinition
+{ after(grammarAccess.getNoFailureDefinitionRule()); } 
+	 EOF 
+;
+
+// Rule NoFailureDefinition
+ruleNoFailureDefinition
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNoFailureDefinitionAccess().getGroup()); }
+(rule__NoFailureDefinition__Group__0)
+{ after(grammarAccess.getNoFailureDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleComplexNofailureDefinition
+entryRuleComplexNofailureDefinition 
+:
+{ before(grammarAccess.getComplexNofailureDefinitionRule()); }
+	 ruleComplexNofailureDefinition
+{ after(grammarAccess.getComplexNofailureDefinitionRule()); } 
+	 EOF 
+;
+
+// Rule ComplexNofailureDefinition
+ruleComplexNofailureDefinition
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getGroup()); }
+(rule__ComplexNofailureDefinition__Group__0)
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWildcardDefinition
+entryRuleWildcardDefinition 
+:
+{ before(grammarAccess.getWildcardDefinitionRule()); }
+	 ruleWildcardDefinition
+{ after(grammarAccess.getWildcardDefinitionRule()); } 
+	 EOF 
+;
+
+// Rule WildcardDefinition
+ruleWildcardDefinition
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWildcardDefinitionAccess().getGroup()); }
+(rule__WildcardDefinition__Group__0)
+{ after(grammarAccess.getWildcardDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVariableDefinition
+entryRuleVariableDefinition 
+:
+{ before(grammarAccess.getVariableDefinitionRule()); }
+	 ruleVariableDefinition
+{ after(grammarAccess.getVariableDefinitionRule()); } 
+	 EOF 
+;
+
+// Rule VariableDefinition
+ruleVariableDefinition
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVariableDefinitionAccess().getGroup()); }
+(rule__VariableDefinition__Group__0)
+{ after(grammarAccess.getVariableDefinitionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleACIDavoidable
+entryRuleACIDavoidable 
+:
+{ before(grammarAccess.getACIDavoidableRule()); }
+	 ruleACIDavoidable
+{ after(grammarAccess.getACIDavoidableRule()); } 
+	 EOF 
+;
+
+// Rule ACIDavoidable
+ruleACIDavoidable
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getGroup()); }
+(rule__ACIDavoidable__Group__0)
+{ after(grammarAccess.getACIDavoidableAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleACIDMitigation
+entryRuleACIDMitigation 
+:
+{ before(grammarAccess.getACIDMitigationRule()); }
+	 ruleACIDMitigation
+{ after(grammarAccess.getACIDMitigationRule()); } 
+	 EOF 
+;
+
+// Rule ACIDMitigation
+ruleACIDMitigation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getGroup()); }
+(rule__ACIDMitigation__Group__0)
+{ after(grammarAccess.getACIDMitigationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+// Rule ActualFailureType
+ruleActualFailureType
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActualFailureTypeAccess().getAlternatives()); }
+(rule__ActualFailureType__Alternatives)
+{ after(grammarAccess.getActualFailureTypeAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+// Rule Aavoidable
+ruleAavoidable
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAavoidableAccess().getAlternatives()); }
+(rule__Aavoidable__Alternatives)
+{ after(grammarAccess.getAavoidableAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule Cavoidable
+ruleCavoidable
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getCavoidableAccess().getAlternatives()); }
+(rule__Cavoidable__Alternatives)
+{ after(grammarAccess.getCavoidableAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule Iavoidable
+ruleIavoidable
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIavoidableAccess().getAlternatives()); }
+(rule__Iavoidable__Alternatives)
+{ after(grammarAccess.getIavoidableAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule Davoidable
+ruleDavoidable
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDavoidableAccess().getAlternatives()); }
+(rule__Davoidable__Alternatives)
+{ after(grammarAccess.getDavoidableAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule Amitigation
+ruleAmitigation
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAmitigationAccess().getAlternatives()); }
+(rule__Amitigation__Alternatives)
+{ after(grammarAccess.getAmitigationAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule Cmitigation
+ruleCmitigation
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getCmitigationAccess().getAlternatives()); }
+(rule__Cmitigation__Alternatives)
+{ after(grammarAccess.getCmitigationAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule Imitigation
+ruleImitigation
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImitigationAccess().getAlternatives()); }
+(rule__Imitigation__Alternatives)
+{ after(grammarAccess.getImitigationAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule Dmitigation
+ruleDmitigation
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDmitigationAccess().getAlternatives()); }
+(rule__Dmitigation__Alternatives)
+{ after(grammarAccess.getDmitigationAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__InputExpression__Alternatives_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0()); }
+(rule__InputExpression__RefAssignment_0_0)
+{ after(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1()); }
+
+	'undefined' 
+
+{ after(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__Alternatives_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0()); }
+(rule__OutputExpression__RefAssignment_0_0)
+{ after(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1()); }
+
+	'undefined' 
+
+{ after(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0()); }
+(rule__InFailureExpr__FailuresAssignment_0)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0()); }
+)
+
+    |(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1()); }
+(rule__InFailureExpr__FailuresAssignment_1)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1()); }
+)
+
+    |(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2()); }
+(rule__InFailureExpr__FailuresAssignment_2)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2()); }
+)
+
+    |(
+{ before(grammarAccess.getInFailureExprAccess().getGroup_3()); }
+(rule__InFailureExpr__Group_3__0)
+{ after(grammarAccess.getInFailureExprAccess().getGroup_3()); }
+)
+
+    |(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4()); }
+(rule__InFailureExpr__FailuresAssignment_4)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0()); }
+(rule__OutFailureExpr__FailuresAssignment_0)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1()); }
+(rule__OutFailureExpr__FailuresAssignment_1)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1()); }
+)
+
+    |(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2()); }
+(rule__OutFailureExpr__FailuresAssignment_2)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2()); }
+)
+
+    |(
+{ before(grammarAccess.getOutFailureExprAccess().getGroup_3()); }
+(rule__OutFailureExpr__Group_3__0)
+{ after(grammarAccess.getOutFailureExprAccess().getGroup_3()); }
+)
+
+    |(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4()); }
+(rule__OutFailureExpr__FailuresAssignment_4)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__ActualFailureType__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); }
+(	'early' 
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); }
+(	'late' 
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); }
+(	'commission' 
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); }
+(	'omission' 
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); }
+(	'valueSubtle' 
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); }
+(	'valueCoarse' 
+)
+{ after(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Aavoidable__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); }
+(	'incompletion' 
+)
+{ after(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+(	'none' 
+)
+{ after(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+(	'unspecified' 
+)
+{ after(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Cavoidable__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); }
+(	'inconsistency' 
+)
+{ after(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+(	'none' 
+)
+{ after(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+(	'unspecified' 
+)
+{ after(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Iavoidable__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); }
+(	'interference' 
+)
+{ after(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+(	'none' 
+)
+{ after(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+(	'unspecified' 
+)
+{ after(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Davoidable__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); }
+(	'impermanence' 
+)
+{ after(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+(	'none' 
+)
+{ after(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+(	'unspecified' 
+)
+{ after(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Amitigation__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); }
+(	'all_or_nothing' 
+)
+{ after(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); }
+(	'all_or_compensation' 
+)
+{ after(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+(	'none' 
+)
+{ after(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+(	'unspecified' 
+)
+{ after(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Cmitigation__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); }
+(	'full_consistency' 
+)
+{ after(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); }
+(	'range_violation_allowed' 
+)
+{ after(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+(	'none' 
+)
+{ after(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+(	'unspecified' 
+)
+{ after(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Imitigation__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); }
+(	'serializable' 
+)
+{ after(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); }
+(	'portable_level' 
+)
+{ after(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+(	'none' 
+)
+{ after(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+(	'unspecified' 
+)
+{ after(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Dmitigation__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); }
+(	'no_loss' 
+)
+{ after(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); }
+(	'partial_loss_allowed' 
+)
+{ after(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+(	'none' 
+)
+{ after(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+(	'unspecified' 
+)
+{ after(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__Expression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Expression__Group__0__Impl
+	rule__Expression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getFLAKeyword_0()); }
+
+	'FLA:' 
+
+{ after(grammarAccess.getExpressionAccess().getFLAKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Expression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Expression__Group__1__Impl
+	rule__Expression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getLhsAssignment_1()); }
+(rule__Expression__LhsAssignment_1)
+{ after(grammarAccess.getExpressionAccess().getLhsAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Expression__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Expression__Group__2__Impl
+	rule__Expression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2()); }
+
+	'->' 
+
+{ after(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Expression__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Expression__Group__3__Impl
+	rule__Expression__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getRhsAssignment_3()); }
+(rule__Expression__RhsAssignment_3)
+{ after(grammarAccess.getExpressionAccess().getRhsAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Expression__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Expression__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Expression__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getSemicolonKeyword_4()); }
+
+	';' 
+
+{ after(grammarAccess.getExpressionAccess().getSemicolonKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Lhs__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Lhs__Group__0__Impl
+	rule__Lhs__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Lhs__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLhsAccess().getFailuresAssignment_0()); }
+(rule__Lhs__FailuresAssignment_0)
+{ after(grammarAccess.getLhsAccess().getFailuresAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Lhs__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Lhs__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Lhs__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLhsAccess().getGroup_1()); }
+(rule__Lhs__Group_1__0)*
+{ after(grammarAccess.getLhsAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Lhs__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Lhs__Group_1__0__Impl
+	rule__Lhs__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Lhs__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLhsAccess().getCommaKeyword_1_0()); }
+
+	',' 
+
+{ after(grammarAccess.getLhsAccess().getCommaKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Lhs__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Lhs__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Lhs__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLhsAccess().getFailuresAssignment_1_1()); }
+(rule__Lhs__FailuresAssignment_1_1)
+{ after(grammarAccess.getLhsAccess().getFailuresAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Rhs__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Rhs__Group__0__Impl
+	rule__Rhs__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Rhs__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRhsAccess().getFailuresAssignment_0()); }
+(rule__Rhs__FailuresAssignment_0)
+{ after(grammarAccess.getRhsAccess().getFailuresAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Rhs__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Rhs__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Rhs__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRhsAccess().getGroup_1()); }
+(rule__Rhs__Group_1__0)*
+{ after(grammarAccess.getRhsAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Rhs__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Rhs__Group_1__0__Impl
+	rule__Rhs__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Rhs__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRhsAccess().getCommaKeyword_1_0()); }
+
+	',' 
+
+{ after(grammarAccess.getRhsAccess().getCommaKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Rhs__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Rhs__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Rhs__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRhsAccess().getFailuresAssignment_1_1()); }
+(rule__Rhs__FailuresAssignment_1_1)
+{ after(grammarAccess.getRhsAccess().getFailuresAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__InputExpression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__InputExpression__Group__0__Impl
+	rule__InputExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InputExpression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getAlternatives_0()); }
+(rule__InputExpression__Alternatives_0)
+{ after(grammarAccess.getInputExpressionAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__InputExpression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__InputExpression__Group__1__Impl
+	rule__InputExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InputExpression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1()); }
+
+	'.' 
+
+{ after(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__InputExpression__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__InputExpression__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InputExpression__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2()); }
+(rule__InputExpression__FailureExprAssignment_2)
+{ after(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__OutputExpression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OutputExpression__Group__0__Impl
+	rule__OutputExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getAlternatives_0()); }
+(rule__OutputExpression__Alternatives_0)
+{ after(grammarAccess.getOutputExpressionAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OutputExpression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OutputExpression__Group__1__Impl
+	rule__OutputExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1()); }
+
+	'.' 
+
+{ after(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OutputExpression__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OutputExpression__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2()); }
+(rule__OutputExpression__FailureExprAssignment_2)
+{ after(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__InFailureExpr__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__InFailureExpr__Group_3__0__Impl
+	rule__InFailureExpr__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); }
+
+	'{' 
+
+{ after(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__InFailureExpr__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__InFailureExpr__Group_3__1__Impl
+	rule__InFailureExpr__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1()); }
+(rule__InFailureExpr__FailuresAssignment_3_1)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__InFailureExpr__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__InFailureExpr__Group_3__2__Impl
+	rule__InFailureExpr__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+(
+{ before(grammarAccess.getInFailureExprAccess().getGroup_3_2()); }
+(rule__InFailureExpr__Group_3_2__0)
+{ after(grammarAccess.getInFailureExprAccess().getGroup_3_2()); }
+)
+(
+{ before(grammarAccess.getInFailureExprAccess().getGroup_3_2()); }
+(rule__InFailureExpr__Group_3_2__0)*
+{ after(grammarAccess.getInFailureExprAccess().getGroup_3_2()); }
+)
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__InFailureExpr__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__InFailureExpr__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3()); }
+
+	'}' 
+
+{ after(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__InFailureExpr__Group_3_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__InFailureExpr__Group_3_2__0__Impl
+	rule__InFailureExpr__Group_3_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0()); }
+
+	',' 
+
+{ after(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__InFailureExpr__Group_3_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__InFailureExpr__Group_3_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__Group_3_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1()); }
+(rule__InFailureExpr__FailuresAssignment_3_2_1)
+{ after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OutFailureExpr__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OutFailureExpr__Group_3__0__Impl
+	rule__OutFailureExpr__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); }
+
+	'{' 
+
+{ after(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OutFailureExpr__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OutFailureExpr__Group_3__1__Impl
+	rule__OutFailureExpr__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1()); }
+(rule__OutFailureExpr__FailuresAssignment_3_1)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OutFailureExpr__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OutFailureExpr__Group_3__2__Impl
+	rule__OutFailureExpr__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+(
+{ before(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); }
+(rule__OutFailureExpr__Group_3_2__0)
+{ after(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); }
+)
+(
+{ before(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); }
+(rule__OutFailureExpr__Group_3_2__0)*
+{ after(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); }
+)
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OutFailureExpr__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OutFailureExpr__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3()); }
+
+	'}' 
+
+{ after(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__OutFailureExpr__Group_3_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OutFailureExpr__Group_3_2__0__Impl
+	rule__OutFailureExpr__Group_3_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0()); }
+
+	',' 
+
+{ after(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OutFailureExpr__Group_3_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OutFailureExpr__Group_3_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__Group_3_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1()); }
+(rule__OutFailureExpr__FailuresAssignment_3_2_1)
+{ after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FailureDefinition__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FailureDefinition__Group__0__Impl
+	rule__FailureDefinition__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FailureDefinition__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FailureDefinition__Group__1__Impl
+	rule__FailureDefinition__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1()); }
+(rule__FailureDefinition__TypeAssignment_1)
+{ after(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FailureDefinition__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FailureDefinition__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getGroup_2()); }
+(rule__FailureDefinition__Group_2__0)?
+{ after(grammarAccess.getFailureDefinitionAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__FailureDefinition__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FailureDefinition__Group_2__0__Impl
+	rule__FailureDefinition__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0()); }
+
+	'.' 
+
+{ after(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FailureDefinition__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FailureDefinition__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1()); }
+(rule__FailureDefinition__AcidAvoidableAssignment_2_1)
+{ after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NoFailureDefinition__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NoFailureDefinition__Group__0__Impl
+	rule__NoFailureDefinition__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NoFailureDefinition__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NoFailureDefinition__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NoFailureDefinition__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NoFailureDefinition__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1()); }
+
+	'noFailure' 
+
+{ after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ComplexNofailureDefinition__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ComplexNofailureDefinition__Group__0__Impl
+	rule__ComplexNofailureDefinition__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ComplexNofailureDefinition__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ComplexNofailureDefinition__Group__1__Impl
+	rule__ComplexNofailureDefinition__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1()); }
+
+	'noFailure' 
+
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ComplexNofailureDefinition__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ComplexNofailureDefinition__Group__2__Impl
+	rule__ComplexNofailureDefinition__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2()); }
+
+	'.' 
+
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ComplexNofailureDefinition__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ComplexNofailureDefinition__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3()); }
+(rule__ComplexNofailureDefinition__AcidMitigationAssignment_3)
+{ after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__WildcardDefinition__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WildcardDefinition__Group__0__Impl
+	rule__WildcardDefinition__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WildcardDefinition__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WildcardDefinition__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WildcardDefinition__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WildcardDefinition__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1()); }
+
+	'wildcard' 
+
+{ after(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VariableDefinition__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VariableDefinition__Group__0__Impl
+	rule__VariableDefinition__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDefinition__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VariableDefinition__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VariableDefinition__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDefinition__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1()); }
+(rule__VariableDefinition__VariableNameAssignment_1)
+{ after(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ACIDavoidable__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDavoidable__Group__0__Impl
+	rule__ACIDavoidable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getAAssignment_0()); }
+(rule__ACIDavoidable__AAssignment_0)
+{ after(grammarAccess.getACIDavoidableAccess().getAAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDavoidable__Group__1__Impl
+	rule__ACIDavoidable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1()); }
+
+	'.' 
+
+{ after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDavoidable__Group__2__Impl
+	rule__ACIDavoidable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getCAssignment_2()); }
+(rule__ACIDavoidable__CAssignment_2)
+{ after(grammarAccess.getACIDavoidableAccess().getCAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDavoidable__Group__3__Impl
+	rule__ACIDavoidable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3()); }
+
+	'.' 
+
+{ after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDavoidable__Group__4__Impl
+	rule__ACIDavoidable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getIAssignment_4()); }
+(rule__ACIDavoidable__IAssignment_4)
+{ after(grammarAccess.getACIDavoidableAccess().getIAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDavoidable__Group__5__Impl
+	rule__ACIDavoidable__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5()); }
+
+	'.' 
+
+{ after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDavoidable__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDavoidable__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getDAssignment_6()); }
+(rule__ACIDavoidable__DAssignment_6)
+{ after(grammarAccess.getACIDavoidableAccess().getDAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ACIDMitigation__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDMitigation__Group__0__Impl
+	rule__ACIDMitigation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getAAssignment_0()); }
+(rule__ACIDMitigation__AAssignment_0)
+{ after(grammarAccess.getACIDMitigationAccess().getAAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDMitigation__Group__1__Impl
+	rule__ACIDMitigation__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1()); }
+
+	'.' 
+
+{ after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDMitigation__Group__2__Impl
+	rule__ACIDMitigation__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getCAssignment_2()); }
+(rule__ACIDMitigation__CAssignment_2)
+{ after(grammarAccess.getACIDMitigationAccess().getCAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDMitigation__Group__3__Impl
+	rule__ACIDMitigation__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3()); }
+
+	'.' 
+
+{ after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDMitigation__Group__4__Impl
+	rule__ACIDMitigation__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getIAssignment_4()); }
+(rule__ACIDMitigation__IAssignment_4)
+{ after(grammarAccess.getACIDMitigationAccess().getIAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDMitigation__Group__5__Impl
+	rule__ACIDMitigation__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5()); }
+
+	'.' 
+
+{ after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ACIDMitigation__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ACIDMitigation__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getDAssignment_6()); }
+(rule__ACIDMitigation__DAssignment_6)
+{ after(grammarAccess.getACIDMitigationAccess().getDAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Behaviour__RulesAssignment
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); }
+	ruleExpression{ after(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Expression__LhsAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); }
+	ruleLhs{ after(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Expression__RhsAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); }
+	ruleRhs{ after(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Lhs__FailuresAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); }
+	ruleInputExpression{ after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Lhs__FailuresAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); }
+	ruleInputExpression{ after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Rhs__FailuresAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); }
+	ruleOutputExpression{ after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Rhs__FailuresAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); }
+	ruleOutputExpression{ after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InputExpression__RefAssignment_0_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); }
+(
+{ before(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); }
+	RULE_ID{ after(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); }
+)
+{ after(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InputExpression__FailureExprAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); }
+	ruleInFailureExpr{ after(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__RefAssignment_0_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); }
+(
+{ before(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); }
+	RULE_ID{ after(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); }
+)
+{ after(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutputExpression__FailureExprAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); }
+	ruleOutFailureExpr{ after(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); }
+	ruleWildcardDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); }
+	ruleNoFailureDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); }
+	ruleFailureDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); }
+	ruleFailureDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_3_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); }
+	ruleFailureDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InFailureExpr__FailuresAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); }
+	ruleVariableDefinition{ after(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); }
+	ruleNoFailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); }
+	ruleComplexNofailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); }
+	ruleFailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); }
+	ruleFailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_3_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); }
+	ruleFailureDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OutFailureExpr__FailuresAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); }
+	ruleVariableDefinition{ after(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__TypeAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); }
+	ruleActualFailureType{ after(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FailureDefinition__AcidAvoidableAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); }
+	ruleACIDavoidable{ after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ComplexNofailureDefinition__AcidMitigationAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); }
+	ruleACIDMitigation{ after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDefinition__VariableNameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__AAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); }
+	ruleAavoidable{ after(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__CAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); }
+	ruleCavoidable{ after(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__IAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); }
+	ruleIavoidable{ after(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDavoidable__DAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); }
+	ruleDavoidable{ after(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__AAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); }
+	ruleAmitigation{ after(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__CAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); }
+	ruleCmitigation{ after(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__IAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); }
+	ruleImitigation{ after(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ACIDMitigation__DAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); }
+	ruleDmitigation{ after(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.tokens b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.tokens
new file mode 100644
index 0000000..fca6fb1
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDsl.tokens
@@ -0,0 +1,67 @@
+','=35
+'->'=33
+'.'=36
+';'=34
+'FLA:'=32
+'all_or_compensation'=25
+'all_or_nothing'=24
+'commission'=14
+'early'=12
+'full_consistency'=26
+'impermanence'=23
+'incompletion'=18
+'inconsistency'=21
+'interference'=22
+'late'=13
+'noFailure'=39
+'no_loss'=30
+'none'=19
+'omission'=15
+'partial_loss_allowed'=31
+'portable_level'=29
+'range_violation_allowed'=27
+'serializable'=28
+'undefined'=11
+'unspecified'=20
+'valueCoarse'=17
+'valueSubtle'=16
+'wildcard'=40
+'{'=37
+'}'=38
+RULE_ANY_OTHER=10
+RULE_ID=4
+RULE_INT=5
+RULE_ML_COMMENT=7
+RULE_SL_COMMENT=8
+RULE_STRING=6
+RULE_WS=9
+T__11=11
+T__12=12
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslLexer.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslLexer.java
new file mode 100644
index 0000000..75a8ef9
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslLexer.java
@@ -0,0 +1,1897 @@
+package org.polarsys.chess.xtext.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFlaDslLexer extends Lexer {
+    public static final int RULE_STRING=6;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__37=37;
+    public static final int T__16=16;
+    public static final int T__38=38;
+    public static final int T__17=17;
+    public static final int T__39=39;
+    public static final int T__18=18;
+    public static final int T__11=11;
+    public static final int T__33=33;
+    public static final int T__12=12;
+    public static final int T__34=34;
+    public static final int T__13=13;
+    public static final int T__35=35;
+    public static final int T__14=14;
+    public static final int T__36=36;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_ID=4;
+    public static final int RULE_WS=9;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int RULE_INT=5;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__40=40;
+    public static final int T__20=20;
+    public static final int T__21=21;
+
+    // delegates
+    // delegators
+
+    public InternalFlaDslLexer() {;} 
+    public InternalFlaDslLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalFlaDslLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "InternalFlaDsl.g"; }
+
+    // $ANTLR start "T__11"
+    public final void mT__11() throws RecognitionException {
+        try {
+            int _type = T__11;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:11:7: ( 'undefined' )
+            // InternalFlaDsl.g:11:9: 'undefined'
+            {
+            match("undefined"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__11"
+
+    // $ANTLR start "T__12"
+    public final void mT__12() throws RecognitionException {
+        try {
+            int _type = T__12;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:12:7: ( 'early' )
+            // InternalFlaDsl.g:12:9: 'early'
+            {
+            match("early"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__12"
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:13:7: ( 'late' )
+            // InternalFlaDsl.g:13:9: 'late'
+            {
+            match("late"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__13"
+
+    // $ANTLR start "T__14"
+    public final void mT__14() throws RecognitionException {
+        try {
+            int _type = T__14;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:14:7: ( 'commission' )
+            // InternalFlaDsl.g:14:9: 'commission'
+            {
+            match("commission"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:15:7: ( 'omission' )
+            // InternalFlaDsl.g:15:9: 'omission'
+            {
+            match("omission"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:16:7: ( 'valueSubtle' )
+            // InternalFlaDsl.g:16:9: 'valueSubtle'
+            {
+            match("valueSubtle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__16"
+
+    // $ANTLR start "T__17"
+    public final void mT__17() throws RecognitionException {
+        try {
+            int _type = T__17;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:17:7: ( 'valueCoarse' )
+            // InternalFlaDsl.g:17:9: 'valueCoarse'
+            {
+            match("valueCoarse"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__17"
+
+    // $ANTLR start "T__18"
+    public final void mT__18() throws RecognitionException {
+        try {
+            int _type = T__18;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:18:7: ( 'incompletion' )
+            // InternalFlaDsl.g:18:9: 'incompletion'
+            {
+            match("incompletion"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__18"
+
+    // $ANTLR start "T__19"
+    public final void mT__19() throws RecognitionException {
+        try {
+            int _type = T__19;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:19:7: ( 'none' )
+            // InternalFlaDsl.g:19:9: 'none'
+            {
+            match("none"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:20:7: ( 'unspecified' )
+            // InternalFlaDsl.g:20:9: 'unspecified'
+            {
+            match("unspecified"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:21:7: ( 'inconsistency' )
+            // InternalFlaDsl.g:21:9: 'inconsistency'
+            {
+            match("inconsistency"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:22:7: ( 'interference' )
+            // InternalFlaDsl.g:22:9: 'interference'
+            {
+            match("interference"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__22"
+
+    // $ANTLR start "T__23"
+    public final void mT__23() throws RecognitionException {
+        try {
+            int _type = T__23;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:23:7: ( 'impermanence' )
+            // InternalFlaDsl.g:23:9: 'impermanence'
+            {
+            match("impermanence"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:24:7: ( 'all_or_nothing' )
+            // InternalFlaDsl.g:24:9: 'all_or_nothing'
+            {
+            match("all_or_nothing"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__24"
+
+    // $ANTLR start "T__25"
+    public final void mT__25() throws RecognitionException {
+        try {
+            int _type = T__25;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:25:7: ( 'all_or_compensation' )
+            // InternalFlaDsl.g:25:9: 'all_or_compensation'
+            {
+            match("all_or_compensation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__25"
+
+    // $ANTLR start "T__26"
+    public final void mT__26() throws RecognitionException {
+        try {
+            int _type = T__26;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:26:7: ( 'full_consistency' )
+            // InternalFlaDsl.g:26:9: 'full_consistency'
+            {
+            match("full_consistency"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__26"
+
+    // $ANTLR start "T__27"
+    public final void mT__27() throws RecognitionException {
+        try {
+            int _type = T__27;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:27:7: ( 'range_violation_allowed' )
+            // InternalFlaDsl.g:27:9: 'range_violation_allowed'
+            {
+            match("range_violation_allowed"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__27"
+
+    // $ANTLR start "T__28"
+    public final void mT__28() throws RecognitionException {
+        try {
+            int _type = T__28;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:28:7: ( 'serializable' )
+            // InternalFlaDsl.g:28:9: 'serializable'
+            {
+            match("serializable"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__28"
+
+    // $ANTLR start "T__29"
+    public final void mT__29() throws RecognitionException {
+        try {
+            int _type = T__29;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:29:7: ( 'portable_level' )
+            // InternalFlaDsl.g:29:9: 'portable_level'
+            {
+            match("portable_level"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__29"
+
+    // $ANTLR start "T__30"
+    public final void mT__30() throws RecognitionException {
+        try {
+            int _type = T__30;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:30:7: ( 'no_loss' )
+            // InternalFlaDsl.g:30:9: 'no_loss'
+            {
+            match("no_loss"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__30"
+
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:31:7: ( 'partial_loss_allowed' )
+            // InternalFlaDsl.g:31:9: 'partial_loss_allowed'
+            {
+            match("partial_loss_allowed"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
+    // $ANTLR start "T__32"
+    public final void mT__32() throws RecognitionException {
+        try {
+            int _type = T__32;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:32:7: ( 'FLA:' )
+            // InternalFlaDsl.g:32:9: 'FLA:'
+            {
+            match("FLA:"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__32"
+
+    // $ANTLR start "T__33"
+    public final void mT__33() throws RecognitionException {
+        try {
+            int _type = T__33;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:33:7: ( '->' )
+            // InternalFlaDsl.g:33:9: '->'
+            {
+            match("->"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:34:7: ( ';' )
+            // InternalFlaDsl.g:34:9: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__34"
+
+    // $ANTLR start "T__35"
+    public final void mT__35() throws RecognitionException {
+        try {
+            int _type = T__35;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:35:7: ( ',' )
+            // InternalFlaDsl.g:35:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__35"
+
+    // $ANTLR start "T__36"
+    public final void mT__36() throws RecognitionException {
+        try {
+            int _type = T__36;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:36:7: ( '.' )
+            // InternalFlaDsl.g:36:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__36"
+
+    // $ANTLR start "T__37"
+    public final void mT__37() throws RecognitionException {
+        try {
+            int _type = T__37;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:37:7: ( '{' )
+            // InternalFlaDsl.g:37:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__37"
+
+    // $ANTLR start "T__38"
+    public final void mT__38() throws RecognitionException {
+        try {
+            int _type = T__38;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:38:7: ( '}' )
+            // InternalFlaDsl.g:38:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__38"
+
+    // $ANTLR start "T__39"
+    public final void mT__39() throws RecognitionException {
+        try {
+            int _type = T__39;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:39:7: ( 'noFailure' )
+            // InternalFlaDsl.g:39:9: 'noFailure'
+            {
+            match("noFailure"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__39"
+
+    // $ANTLR start "T__40"
+    public final void mT__40() throws RecognitionException {
+        try {
+            int _type = T__40;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:40:7: ( 'wildcard' )
+            // InternalFlaDsl.g:40:9: 'wildcard'
+            {
+            match("wildcard"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__40"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:3578:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalFlaDsl.g:3578:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            {
+            // InternalFlaDsl.g:3578:11: ( '^' )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='^') ) {
+                alt1=1;
+            }
+            switch (alt1) {
+                case 1 :
+                    // InternalFlaDsl.g:3578:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // InternalFlaDsl.g:3578:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // InternalFlaDsl.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ID"
+
+    // $ANTLR start "RULE_INT"
+    public final void mRULE_INT() throws RecognitionException {
+        try {
+            int _type = RULE_INT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:3580:10: ( ( '0' .. '9' )+ )
+            // InternalFlaDsl.g:3580:12: ( '0' .. '9' )+
+            {
+            // InternalFlaDsl.g:3580:12: ( '0' .. '9' )+
+            int cnt3=0;
+            loop3:
+            do {
+                int alt3=2;
+                int LA3_0 = input.LA(1);
+
+                if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+                    alt3=1;
+                }
+
+
+                switch (alt3) {
+            	case 1 :
+            	    // InternalFlaDsl.g:3580:13: '0' .. '9'
+            	    {
+            	    matchRange('0','9'); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt3 >= 1 ) break loop3;
+                        EarlyExitException eee =
+                            new EarlyExitException(3, input);
+                        throw eee;
+                }
+                cnt3++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_INT"
+
+    // $ANTLR start "RULE_STRING"
+    public final void mRULE_STRING() throws RecognitionException {
+        try {
+            int _type = RULE_STRING;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:3582:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // InternalFlaDsl.g:3582:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            {
+            // InternalFlaDsl.g:3582:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+
+            if ( (LA6_0=='\"') ) {
+                alt6=1;
+            }
+            else if ( (LA6_0=='\'') ) {
+                alt6=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 6, 0, input);
+
+                throw nvae;
+            }
+            switch (alt6) {
+                case 1 :
+                    // InternalFlaDsl.g:3582:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // InternalFlaDsl.g:3582:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    loop4:
+                    do {
+                        int alt4=3;
+                        int LA4_0 = input.LA(1);
+
+                        if ( (LA4_0=='\\') ) {
+                            alt4=1;
+                        }
+                        else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+                            alt4=2;
+                        }
+
+
+                        switch (alt4) {
+                    	case 1 :
+                    	    // InternalFlaDsl.g:3582:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalFlaDsl.g:3582:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop4;
+                        }
+                    } while (true);
+
+                    match('\"'); 
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:3582:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // InternalFlaDsl.g:3582:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    loop5:
+                    do {
+                        int alt5=3;
+                        int LA5_0 = input.LA(1);
+
+                        if ( (LA5_0=='\\') ) {
+                            alt5=1;
+                        }
+                        else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+                            alt5=2;
+                        }
+
+
+                        switch (alt5) {
+                    	case 1 :
+                    	    // InternalFlaDsl.g:3582:54: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalFlaDsl.g:3582:61: ~ ( ( '\\\\' | '\\'' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop5;
+                        }
+                    } while (true);
+
+                    match('\''); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_STRING"
+
+    // $ANTLR start "RULE_ML_COMMENT"
+    public final void mRULE_ML_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_ML_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:3584:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalFlaDsl.g:3584:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // InternalFlaDsl.g:3584:24: ( options {greedy=false; } : . )*
+            loop7:
+            do {
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+
+                if ( (LA7_0=='*') ) {
+                    int LA7_1 = input.LA(2);
+
+                    if ( (LA7_1=='/') ) {
+                        alt7=2;
+                    }
+                    else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+                        alt7=1;
+                    }
+
+
+                }
+                else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+                    alt7=1;
+                }
+
+
+                switch (alt7) {
+            	case 1 :
+            	    // InternalFlaDsl.g:3584:52: .
+            	    {
+            	    matchAny(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop7;
+                }
+            } while (true);
+
+            match("*/"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ML_COMMENT"
+
+    // $ANTLR start "RULE_SL_COMMENT"
+    public final void mRULE_SL_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_SL_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:3586:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalFlaDsl.g:3586:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // InternalFlaDsl.g:3586:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            loop8:
+            do {
+                int alt8=2;
+                int LA8_0 = input.LA(1);
+
+                if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+                    alt8=1;
+                }
+
+
+                switch (alt8) {
+            	case 1 :
+            	    // InternalFlaDsl.g:3586:24: ~ ( ( '\\n' | '\\r' ) )
+            	    {
+            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop8;
+                }
+            } while (true);
+
+            // InternalFlaDsl.g:3586:40: ( ( '\\r' )? '\\n' )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+                alt10=1;
+            }
+            switch (alt10) {
+                case 1 :
+                    // InternalFlaDsl.g:3586:41: ( '\\r' )? '\\n'
+                    {
+                    // InternalFlaDsl.g:3586:41: ( '\\r' )?
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
+
+                    if ( (LA9_0=='\r') ) {
+                        alt9=1;
+                    }
+                    switch (alt9) {
+                        case 1 :
+                            // InternalFlaDsl.g:3586:41: '\\r'
+                            {
+                            match('\r'); 
+
+                            }
+                            break;
+
+                    }
+
+                    match('\n'); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_SL_COMMENT"
+
+    // $ANTLR start "RULE_WS"
+    public final void mRULE_WS() throws RecognitionException {
+        try {
+            int _type = RULE_WS;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:3588:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalFlaDsl.g:3588:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // InternalFlaDsl.g:3588:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            int cnt11=0;
+            loop11:
+            do {
+                int alt11=2;
+                int LA11_0 = input.LA(1);
+
+                if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+                    alt11=1;
+                }
+
+
+                switch (alt11) {
+            	case 1 :
+            	    // InternalFlaDsl.g:
+            	    {
+            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt11 >= 1 ) break loop11;
+                        EarlyExitException eee =
+                            new EarlyExitException(11, input);
+                        throw eee;
+                }
+                cnt11++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_WS"
+
+    // $ANTLR start "RULE_ANY_OTHER"
+    public final void mRULE_ANY_OTHER() throws RecognitionException {
+        try {
+            int _type = RULE_ANY_OTHER;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:3590:16: ( . )
+            // InternalFlaDsl.g:3590:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // InternalFlaDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=37;
+        alt12 = dfa12.predict(input);
+        switch (alt12) {
+            case 1 :
+                // InternalFlaDsl.g:1:10: T__11
+                {
+                mT__11(); 
+
+                }
+                break;
+            case 2 :
+                // InternalFlaDsl.g:1:16: T__12
+                {
+                mT__12(); 
+
+                }
+                break;
+            case 3 :
+                // InternalFlaDsl.g:1:22: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 4 :
+                // InternalFlaDsl.g:1:28: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 5 :
+                // InternalFlaDsl.g:1:34: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 6 :
+                // InternalFlaDsl.g:1:40: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 7 :
+                // InternalFlaDsl.g:1:46: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 8 :
+                // InternalFlaDsl.g:1:52: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 9 :
+                // InternalFlaDsl.g:1:58: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 10 :
+                // InternalFlaDsl.g:1:64: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 11 :
+                // InternalFlaDsl.g:1:70: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 12 :
+                // InternalFlaDsl.g:1:76: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 13 :
+                // InternalFlaDsl.g:1:82: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 14 :
+                // InternalFlaDsl.g:1:88: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 15 :
+                // InternalFlaDsl.g:1:94: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 16 :
+                // InternalFlaDsl.g:1:100: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 17 :
+                // InternalFlaDsl.g:1:106: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 18 :
+                // InternalFlaDsl.g:1:112: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 19 :
+                // InternalFlaDsl.g:1:118: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 20 :
+                // InternalFlaDsl.g:1:124: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 21 :
+                // InternalFlaDsl.g:1:130: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 22 :
+                // InternalFlaDsl.g:1:136: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 23 :
+                // InternalFlaDsl.g:1:142: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 24 :
+                // InternalFlaDsl.g:1:148: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 25 :
+                // InternalFlaDsl.g:1:154: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 26 :
+                // InternalFlaDsl.g:1:160: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 27 :
+                // InternalFlaDsl.g:1:166: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 28 :
+                // InternalFlaDsl.g:1:172: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 29 :
+                // InternalFlaDsl.g:1:178: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 30 :
+                // InternalFlaDsl.g:1:184: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 31 :
+                // InternalFlaDsl.g:1:190: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 32 :
+                // InternalFlaDsl.g:1:198: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 33 :
+                // InternalFlaDsl.g:1:207: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 34 :
+                // InternalFlaDsl.g:1:219: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 35 :
+                // InternalFlaDsl.g:1:235: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 36 :
+                // InternalFlaDsl.g:1:251: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 37 :
+                // InternalFlaDsl.g:1:259: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String DFA12_eotS =
+        "\1\uffff\16\37\1\35\5\uffff\1\37\1\35\2\uffff\3\35\2\uffff\1\37\1\uffff\17\37\6\uffff\1\37\5\uffff\30\37\1\150\6\37\1\160\10\37\1\uffff\3\37\1\174\1\uffff\7\37\1\uffff\13\37\1\uffff\33\37\1\u00ab\13\37\1\u00b8\6\37\1\uffff\10\37\1\u00c7\1\u00c8\2\37\1\uffff\6\37\1\u00d1\7\37\2\uffff\1\37\1\u00da\6\37\1\uffff\7\37\1\u00e8\1\uffff\1\u00e9\1\u00ea\13\37\3\uffff\1\u00f6\1\37\1\u00f8\1\u00f9\4\37\1\u00fe\2\37\1\uffff\1\u0101\2\uffff\4\37\1\uffff\2\37\1\uffff\1\u0108\3\37\1\u010c\1\37\1\uffff\3\37\1\uffff\2\37\1\u0113\3\37\1\uffff\5\37\1\u011c\2\37\1\uffff\1\37\1\u0120\1\37\1\uffff\1\37\1\u0123\1\uffff";
+    static final String DFA12_eofS =
+        "\u0124\uffff";
+    static final String DFA12_minS =
+        "\1\0\1\156\2\141\1\157\1\155\1\141\1\155\1\157\1\154\1\165\1\141\1\145\1\141\1\114\1\76\5\uffff\1\151\1\101\2\uffff\2\0\1\52\2\uffff\1\144\1\uffff\1\162\1\164\1\155\1\151\1\154\1\143\1\160\1\106\2\154\1\156\3\162\1\101\6\uffff\1\154\5\uffff\1\145\1\160\1\154\1\145\1\155\1\163\1\165\1\157\3\145\1\154\1\141\1\137\1\154\1\147\1\151\2\164\1\72\1\144\1\146\1\145\1\171\1\60\1\151\1\163\1\145\1\155\2\162\1\60\1\157\1\151\1\157\1\137\1\145\2\141\1\151\1\uffff\1\143\1\151\1\143\1\60\1\uffff\1\163\1\151\1\103\1\160\1\163\1\146\1\155\1\uffff\1\163\1\154\1\162\1\143\1\137\1\154\1\142\2\141\1\156\1\151\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\163\1\165\1\137\1\157\1\166\1\151\2\154\1\162\1\145\1\146\1\151\1\156\1\142\1\141\1\145\1\163\1\162\1\156\1\60\1\162\1\143\1\156\1\151\1\172\1\145\1\137\2\144\1\151\1\157\1\60\1\164\1\162\2\164\2\145\1\uffff\1\145\2\157\1\163\1\157\1\141\1\137\1\154\2\60\1\145\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\60\1\164\1\155\1\151\1\154\1\142\1\154\1\157\2\uffff\1\144\1\60\2\145\1\157\1\156\2\143\1\uffff\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\60\1\uffff\2\60\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\60\1\171\2\60\2\156\1\145\1\151\1\60\1\145\1\137\1\uffff\1\60\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\60\1\141\1\143\1\156\1\60\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\60\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\60\1\157\1\144\1\uffff\1\167\1\60\1\145\1\uffff\1\144\1\60\1\uffff";
+    static final String DFA12_maxS =
+        "\1\uffff\1\156\2\141\1\157\1\155\1\141\1\156\1\157\1\154\1\165\1\141\1\145\1\157\1\114\1\76\5\uffff\1\151\1\172\2\uffff\2\uffff\1\57\2\uffff\1\163\1\uffff\1\162\1\164\1\155\1\151\1\154\1\164\1\160\1\156\2\154\1\156\3\162\1\101\6\uffff\1\154\5\uffff\1\145\1\160\1\154\1\145\1\155\1\163\1\165\1\157\3\145\1\154\1\141\1\137\1\154\1\147\1\151\2\164\1\72\1\144\1\146\1\145\1\171\1\172\1\151\1\163\1\145\1\156\2\162\1\172\1\157\1\151\1\157\1\137\1\145\2\141\1\151\1\uffff\1\143\1\151\1\143\1\172\1\uffff\1\163\1\151\1\123\1\160\1\163\1\146\1\155\1\uffff\1\163\1\154\1\162\1\143\1\137\1\154\1\142\2\141\1\156\1\151\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\163\1\165\1\137\1\157\1\166\1\151\2\154\1\162\1\145\1\146\1\151\1\156\1\142\1\141\1\145\1\163\1\162\1\156\1\172\1\162\2\156\1\151\1\172\1\145\1\137\2\144\1\151\1\157\1\172\1\164\1\162\2\164\2\145\1\uffff\1\145\2\157\1\163\1\157\1\141\1\137\1\154\2\172\1\145\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\172\1\164\1\155\1\151\1\154\1\142\1\154\1\157\2\uffff\1\144\1\172\2\145\1\157\1\156\2\143\1\uffff\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\172\1\uffff\2\172\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\172\1\171\2\172\2\156\1\145\1\151\1\172\1\145\1\137\1\uffff\1\172\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\172\1\141\1\143\1\156\1\172\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\172\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\172\1\157\1\144\1\uffff\1\167\1\172\1\145\1\uffff\1\144\1\172\1\uffff";
+    static final String DFA12_acceptS =
+        "\20\uffff\1\30\1\31\1\32\1\33\1\34\2\uffff\1\37\1\40\3\uffff\1\44\1\45\1\uffff\1\37\17\uffff\1\27\1\30\1\31\1\32\1\33\1\34\1\uffff\1\40\1\41\1\42\1\43\1\44\50\uffff\1\26\4\uffff\1\3\7\uffff\1\11\13\uffff\1\2\56\uffff\1\24\14\uffff\1\5\16\uffff\1\36\1\1\10\uffff\1\35\10\uffff\1\4\15\uffff\1\12\1\6\1\7\13\uffff\1\10\1\uffff\1\14\1\15\4\uffff\1\22\2\uffff\1\13\6\uffff\1\16\3\uffff\1\23\6\uffff\1\20\10\uffff\1\17\3\uffff\1\25\2\uffff\1\21";
+    static final String DFA12_specialS =
+        "\1\2\30\uffff\1\0\1\1\u0109\uffff}>";
+    static final String[] DFA12_transitionS = {
+            "\11\35\2\34\2\35\1\34\22\35\1\34\1\35\1\31\4\35\1\32\4\35\1\21\1\17\1\22\1\33\12\30\1\35\1\20\5\35\5\27\1\16\24\27\3\35\1\26\1\27\1\35\1\11\1\27\1\4\1\27\1\2\1\12\2\27\1\7\2\27\1\3\1\27\1\10\1\5\1\15\1\27\1\13\1\14\1\27\1\1\1\6\1\25\3\27\1\23\1\35\1\24\uff82\35",
+            "\1\36",
+            "\1\40",
+            "\1\41",
+            "\1\42",
+            "\1\43",
+            "\1\44",
+            "\1\46\1\45",
+            "\1\47",
+            "\1\50",
+            "\1\51",
+            "\1\52",
+            "\1\53",
+            "\1\55\15\uffff\1\54",
+            "\1\56",
+            "\1\57",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\65",
+            "\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "",
+            "\0\67",
+            "\0\67",
+            "\1\70\4\uffff\1\71",
+            "",
+            "",
+            "\1\73\16\uffff\1\74",
+            "",
+            "\1\75",
+            "\1\76",
+            "\1\77",
+            "\1\100",
+            "\1\101",
+            "\1\102\20\uffff\1\103",
+            "\1\104",
+            "\1\107\30\uffff\1\106\16\uffff\1\105",
+            "\1\110",
+            "\1\111",
+            "\1\112",
+            "\1\113",
+            "\1\114",
+            "\1\115",
+            "\1\116",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\117",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\120",
+            "\1\121",
+            "\1\122",
+            "\1\123",
+            "\1\124",
+            "\1\125",
+            "\1\126",
+            "\1\127",
+            "\1\130",
+            "\1\131",
+            "\1\132",
+            "\1\133",
+            "\1\134",
+            "\1\135",
+            "\1\136",
+            "\1\137",
+            "\1\140",
+            "\1\141",
+            "\1\142",
+            "\1\143",
+            "\1\144",
+            "\1\145",
+            "\1\146",
+            "\1\147",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\151",
+            "\1\152",
+            "\1\153",
+            "\1\154\1\155",
+            "\1\156",
+            "\1\157",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\161",
+            "\1\162",
+            "\1\163",
+            "\1\164",
+            "\1\165",
+            "\1\166",
+            "\1\167",
+            "\1\170",
+            "",
+            "\1\171",
+            "\1\172",
+            "\1\173",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\1\175",
+            "\1\176",
+            "\1\u0080\17\uffff\1\177",
+            "\1\u0081",
+            "\1\u0082",
+            "\1\u0083",
+            "\1\u0084",
+            "",
+            "\1\u0085",
+            "\1\u0086",
+            "\1\u0087",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a",
+            "\1\u008b",
+            "\1\u008c",
+            "\1\u008d",
+            "\1\u008e",
+            "\1\u008f",
+            "",
+            "\1\u0090",
+            "\1\u0091",
+            "\1\u0092",
+            "\1\u0093",
+            "\1\u0094",
+            "\1\u0095",
+            "\1\u0096",
+            "\1\u0097",
+            "\1\u0098",
+            "\1\u0099",
+            "\1\u009a",
+            "\1\u009b",
+            "\1\u009c",
+            "\1\u009d",
+            "\1\u009e",
+            "\1\u009f",
+            "\1\u00a0",
+            "\1\u00a1",
+            "\1\u00a2",
+            "\1\u00a3",
+            "\1\u00a4",
+            "\1\u00a5",
+            "\1\u00a6",
+            "\1\u00a7",
+            "\1\u00a8",
+            "\1\u00a9",
+            "\1\u00aa",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00ac",
+            "\1\u00ae\12\uffff\1\u00ad",
+            "\1\u00af",
+            "\1\u00b0",
+            "\1\u00b1",
+            "\1\u00b2",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00b9",
+            "\1\u00ba",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\1\u00c3",
+            "\1\u00c4",
+            "\1\u00c5",
+            "\1\u00c6",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00c9",
+            "\1\u00ca",
+            "",
+            "\1\u00cb",
+            "\1\u00cc",
+            "\1\u00cd",
+            "\1\u00ce",
+            "\1\u00cf",
+            "\1\u00d0",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00d2",
+            "\1\u00d3",
+            "\1\u00d4",
+            "\1\u00d5",
+            "\1\u00d6",
+            "\1\u00d7",
+            "\1\u00d8",
+            "",
+            "",
+            "\1\u00d9",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00db",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\1\u00e4",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00eb",
+            "\1\u00ec",
+            "\1\u00ed",
+            "\1\u00ee",
+            "\1\u00ef",
+            "\1\u00f0",
+            "\1\u00f1",
+            "\1\u00f2",
+            "\1\u00f3",
+            "\1\u00f4",
+            "\1\u00f5",
+            "",
+            "",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00f7",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00fa",
+            "\1\u00fb",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00ff",
+            "\1\u0100",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "",
+            "\1\u0106",
+            "\1\u0107",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u010d",
+            "",
+            "\1\u010e",
+            "\1\u010f",
+            "\1\u0110",
+            "",
+            "\1\u0111",
+            "\1\u0112",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011a",
+            "\1\u011b",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u011d",
+            "\1\u011e",
+            "",
+            "\1\u011f",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u0121",
+            "",
+            "\1\u0122",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            ""
+    };
+
+    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+    static final short[][] DFA12_transition;
+
+    static {
+        int numStates = DFA12_transitionS.length;
+        DFA12_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+        }
+    }
+
+    class DFA12 extends DFA {
+
+        public DFA12(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 12;
+            this.eot = DFA12_eot;
+            this.eof = DFA12_eof;
+            this.min = DFA12_min;
+            this.max = DFA12_max;
+            this.accept = DFA12_accept;
+            this.special = DFA12_special;
+            this.transition = DFA12_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            IntStream input = _input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA12_25 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 55;}
+
+                        else s = 29;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA12_26 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_26>='\u0000' && LA12_26<='\uFFFF')) ) {s = 55;}
+
+                        else s = 29;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA12_0=='u') ) {s = 1;}
+
+                        else if ( (LA12_0=='e') ) {s = 2;}
+
+                        else if ( (LA12_0=='l') ) {s = 3;}
+
+                        else if ( (LA12_0=='c') ) {s = 4;}
+
+                        else if ( (LA12_0=='o') ) {s = 5;}
+
+                        else if ( (LA12_0=='v') ) {s = 6;}
+
+                        else if ( (LA12_0=='i') ) {s = 7;}
+
+                        else if ( (LA12_0=='n') ) {s = 8;}
+
+                        else if ( (LA12_0=='a') ) {s = 9;}
+
+                        else if ( (LA12_0=='f') ) {s = 10;}
+
+                        else if ( (LA12_0=='r') ) {s = 11;}
+
+                        else if ( (LA12_0=='s') ) {s = 12;}
+
+                        else if ( (LA12_0=='p') ) {s = 13;}
+
+                        else if ( (LA12_0=='F') ) {s = 14;}
+
+                        else if ( (LA12_0=='-') ) {s = 15;}
+
+                        else if ( (LA12_0==';') ) {s = 16;}
+
+                        else if ( (LA12_0==',') ) {s = 17;}
+
+                        else if ( (LA12_0=='.') ) {s = 18;}
+
+                        else if ( (LA12_0=='{') ) {s = 19;}
+
+                        else if ( (LA12_0=='}') ) {s = 20;}
+
+                        else if ( (LA12_0=='w') ) {s = 21;}
+
+                        else if ( (LA12_0=='^') ) {s = 22;}
+
+                        else if ( ((LA12_0>='A' && LA12_0<='E')||(LA12_0>='G' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||LA12_0=='m'||LA12_0=='q'||LA12_0=='t'||(LA12_0>='x' && LA12_0<='z')) ) {s = 23;}
+
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 24;}
+
+                        else if ( (LA12_0=='\"') ) {s = 25;}
+
+                        else if ( (LA12_0=='\'') ) {s = 26;}
+
+                        else if ( (LA12_0=='/') ) {s = 27;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 28;}
+
+                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='+')||LA12_0==':'||(LA12_0>='<' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 29;}
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 12, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslParser.java
new file mode 100644
index 0000000..36dd9db
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslParser.java
@@ -0,0 +1,9787 @@
+package org.polarsys.chess.xtext.ui.contentassist.antlr.internal; 
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFlaDslParser extends AbstractInternalContentAssistParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'undefined'", "'early'", "'late'", "'commission'", "'omission'", "'valueSubtle'", "'valueCoarse'", "'incompletion'", "'none'", "'unspecified'", "'inconsistency'", "'interference'", "'impermanence'", "'all_or_nothing'", "'all_or_compensation'", "'full_consistency'", "'range_violation_allowed'", "'serializable'", "'portable_level'", "'no_loss'", "'partial_loss_allowed'", "'FLA:'", "'->'", "';'", "','", "'.'", "'{'", "'}'", "'noFailure'", "'wildcard'"
+    };
+    public static final int RULE_STRING=6;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__37=37;
+    public static final int T__16=16;
+    public static final int T__38=38;
+    public static final int T__17=17;
+    public static final int T__39=39;
+    public static final int T__18=18;
+    public static final int T__11=11;
+    public static final int T__33=33;
+    public static final int T__12=12;
+    public static final int T__34=34;
+    public static final int T__13=13;
+    public static final int T__35=35;
+    public static final int T__14=14;
+    public static final int T__36=36;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_ID=4;
+    public static final int RULE_WS=9;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int RULE_INT=5;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__40=40;
+    public static final int T__20=20;
+    public static final int T__21=21;
+
+    // delegates
+    // delegators
+
+
+        public InternalFlaDslParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalFlaDslParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalFlaDslParser.tokenNames; }
+    public String getGrammarFileName() { return "InternalFlaDsl.g"; }
+
+
+     
+     	private FlaDslGrammarAccess grammarAccess;
+     	
+        public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
+        	this.grammarAccess = grammarAccess;
+        }
+        
+        @Override
+        protected Grammar getGrammar() {
+        	return grammarAccess.getGrammar();
+        }
+        
+        @Override
+        protected String getValueForTokenName(String tokenName) {
+        	return tokenName;
+        }
+
+
+
+
+    // $ANTLR start "entryRuleBehaviour"
+    // InternalFlaDsl.g:60:1: entryRuleBehaviour : ruleBehaviour EOF ;
+    public final void entryRuleBehaviour() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:61:1: ( ruleBehaviour EOF )
+            // InternalFlaDsl.g:62:1: ruleBehaviour EOF
+            {
+             before(grammarAccess.getBehaviourRule()); 
+            pushFollow(FOLLOW_1);
+            ruleBehaviour();
+
+            state._fsp--;
+
+             after(grammarAccess.getBehaviourRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBehaviour"
+
+
+    // $ANTLR start "ruleBehaviour"
+    // InternalFlaDsl.g:69:1: ruleBehaviour : ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) ) ;
+    public final void ruleBehaviour() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:73:2: ( ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) ) )
+            // InternalFlaDsl.g:74:1: ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) )
+            {
+            // InternalFlaDsl.g:74:1: ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) )
+            // InternalFlaDsl.g:75:1: ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* )
+            {
+            // InternalFlaDsl.g:75:1: ( ( rule__Behaviour__RulesAssignment ) )
+            // InternalFlaDsl.g:76:1: ( rule__Behaviour__RulesAssignment )
+            {
+             before(grammarAccess.getBehaviourAccess().getRulesAssignment()); 
+            // InternalFlaDsl.g:77:1: ( rule__Behaviour__RulesAssignment )
+            // InternalFlaDsl.g:77:2: rule__Behaviour__RulesAssignment
+            {
+            pushFollow(FOLLOW_3);
+            rule__Behaviour__RulesAssignment();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBehaviourAccess().getRulesAssignment()); 
+
+            }
+
+            // InternalFlaDsl.g:80:1: ( ( rule__Behaviour__RulesAssignment )* )
+            // InternalFlaDsl.g:81:1: ( rule__Behaviour__RulesAssignment )*
+            {
+             before(grammarAccess.getBehaviourAccess().getRulesAssignment()); 
+            // InternalFlaDsl.g:82:1: ( rule__Behaviour__RulesAssignment )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==32) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // InternalFlaDsl.g:82:2: rule__Behaviour__RulesAssignment
+            	    {
+            	    pushFollow(FOLLOW_3);
+            	    rule__Behaviour__RulesAssignment();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+             after(grammarAccess.getBehaviourAccess().getRulesAssignment()); 
+
+            }
+
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBehaviour"
+
+
+    // $ANTLR start "entryRuleExpression"
+    // InternalFlaDsl.g:95:1: entryRuleExpression : ruleExpression EOF ;
+    public final void entryRuleExpression() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:96:1: ( ruleExpression EOF )
+            // InternalFlaDsl.g:97:1: ruleExpression EOF
+            {
+             before(grammarAccess.getExpressionRule()); 
+            pushFollow(FOLLOW_1);
+            ruleExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getExpressionRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleExpression"
+
+
+    // $ANTLR start "ruleExpression"
+    // InternalFlaDsl.g:104:1: ruleExpression : ( ( rule__Expression__Group__0 ) ) ;
+    public final void ruleExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:108:2: ( ( ( rule__Expression__Group__0 ) ) )
+            // InternalFlaDsl.g:109:1: ( ( rule__Expression__Group__0 ) )
+            {
+            // InternalFlaDsl.g:109:1: ( ( rule__Expression__Group__0 ) )
+            // InternalFlaDsl.g:110:1: ( rule__Expression__Group__0 )
+            {
+             before(grammarAccess.getExpressionAccess().getGroup()); 
+            // InternalFlaDsl.g:111:1: ( rule__Expression__Group__0 )
+            // InternalFlaDsl.g:111:2: rule__Expression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Expression__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExpressionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleExpression"
+
+
+    // $ANTLR start "entryRuleLhs"
+    // InternalFlaDsl.g:123:1: entryRuleLhs : ruleLhs EOF ;
+    public final void entryRuleLhs() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:124:1: ( ruleLhs EOF )
+            // InternalFlaDsl.g:125:1: ruleLhs EOF
+            {
+             before(grammarAccess.getLhsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleLhs();
+
+            state._fsp--;
+
+             after(grammarAccess.getLhsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLhs"
+
+
+    // $ANTLR start "ruleLhs"
+    // InternalFlaDsl.g:132:1: ruleLhs : ( ( rule__Lhs__Group__0 ) ) ;
+    public final void ruleLhs() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:136:2: ( ( ( rule__Lhs__Group__0 ) ) )
+            // InternalFlaDsl.g:137:1: ( ( rule__Lhs__Group__0 ) )
+            {
+            // InternalFlaDsl.g:137:1: ( ( rule__Lhs__Group__0 ) )
+            // InternalFlaDsl.g:138:1: ( rule__Lhs__Group__0 )
+            {
+             before(grammarAccess.getLhsAccess().getGroup()); 
+            // InternalFlaDsl.g:139:1: ( rule__Lhs__Group__0 )
+            // InternalFlaDsl.g:139:2: rule__Lhs__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Lhs__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLhsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleLhs"
+
+
+    // $ANTLR start "entryRuleRhs"
+    // InternalFlaDsl.g:151:1: entryRuleRhs : ruleRhs EOF ;
+    public final void entryRuleRhs() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:152:1: ( ruleRhs EOF )
+            // InternalFlaDsl.g:153:1: ruleRhs EOF
+            {
+             before(grammarAccess.getRhsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleRhs();
+
+            state._fsp--;
+
+             after(grammarAccess.getRhsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleRhs"
+
+
+    // $ANTLR start "ruleRhs"
+    // InternalFlaDsl.g:160:1: ruleRhs : ( ( rule__Rhs__Group__0 ) ) ;
+    public final void ruleRhs() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:164:2: ( ( ( rule__Rhs__Group__0 ) ) )
+            // InternalFlaDsl.g:165:1: ( ( rule__Rhs__Group__0 ) )
+            {
+            // InternalFlaDsl.g:165:1: ( ( rule__Rhs__Group__0 ) )
+            // InternalFlaDsl.g:166:1: ( rule__Rhs__Group__0 )
+            {
+             before(grammarAccess.getRhsAccess().getGroup()); 
+            // InternalFlaDsl.g:167:1: ( rule__Rhs__Group__0 )
+            // InternalFlaDsl.g:167:2: rule__Rhs__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Rhs__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRhsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleRhs"
+
+
+    // $ANTLR start "entryRuleInputExpression"
+    // InternalFlaDsl.g:179:1: entryRuleInputExpression : ruleInputExpression EOF ;
+    public final void entryRuleInputExpression() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:180:1: ( ruleInputExpression EOF )
+            // InternalFlaDsl.g:181:1: ruleInputExpression EOF
+            {
+             before(grammarAccess.getInputExpressionRule()); 
+            pushFollow(FOLLOW_1);
+            ruleInputExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getInputExpressionRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleInputExpression"
+
+
+    // $ANTLR start "ruleInputExpression"
+    // InternalFlaDsl.g:188:1: ruleInputExpression : ( ( rule__InputExpression__Group__0 ) ) ;
+    public final void ruleInputExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:192:2: ( ( ( rule__InputExpression__Group__0 ) ) )
+            // InternalFlaDsl.g:193:1: ( ( rule__InputExpression__Group__0 ) )
+            {
+            // InternalFlaDsl.g:193:1: ( ( rule__InputExpression__Group__0 ) )
+            // InternalFlaDsl.g:194:1: ( rule__InputExpression__Group__0 )
+            {
+             before(grammarAccess.getInputExpressionAccess().getGroup()); 
+            // InternalFlaDsl.g:195:1: ( rule__InputExpression__Group__0 )
+            // InternalFlaDsl.g:195:2: rule__InputExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__InputExpression__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getInputExpressionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleInputExpression"
+
+
+    // $ANTLR start "entryRuleOutputExpression"
+    // InternalFlaDsl.g:207:1: entryRuleOutputExpression : ruleOutputExpression EOF ;
+    public final void entryRuleOutputExpression() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:208:1: ( ruleOutputExpression EOF )
+            // InternalFlaDsl.g:209:1: ruleOutputExpression EOF
+            {
+             before(grammarAccess.getOutputExpressionRule()); 
+            pushFollow(FOLLOW_1);
+            ruleOutputExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getOutputExpressionRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOutputExpression"
+
+
+    // $ANTLR start "ruleOutputExpression"
+    // InternalFlaDsl.g:216:1: ruleOutputExpression : ( ( rule__OutputExpression__Group__0 ) ) ;
+    public final void ruleOutputExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:220:2: ( ( ( rule__OutputExpression__Group__0 ) ) )
+            // InternalFlaDsl.g:221:1: ( ( rule__OutputExpression__Group__0 ) )
+            {
+            // InternalFlaDsl.g:221:1: ( ( rule__OutputExpression__Group__0 ) )
+            // InternalFlaDsl.g:222:1: ( rule__OutputExpression__Group__0 )
+            {
+             before(grammarAccess.getOutputExpressionAccess().getGroup()); 
+            // InternalFlaDsl.g:223:1: ( rule__OutputExpression__Group__0 )
+            // InternalFlaDsl.g:223:2: rule__OutputExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__OutputExpression__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOutputExpressionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOutputExpression"
+
+
+    // $ANTLR start "entryRuleInFailureExpr"
+    // InternalFlaDsl.g:235:1: entryRuleInFailureExpr : ruleInFailureExpr EOF ;
+    public final void entryRuleInFailureExpr() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:236:1: ( ruleInFailureExpr EOF )
+            // InternalFlaDsl.g:237:1: ruleInFailureExpr EOF
+            {
+             before(grammarAccess.getInFailureExprRule()); 
+            pushFollow(FOLLOW_1);
+            ruleInFailureExpr();
+
+            state._fsp--;
+
+             after(grammarAccess.getInFailureExprRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleInFailureExpr"
+
+
+    // $ANTLR start "ruleInFailureExpr"
+    // InternalFlaDsl.g:244:1: ruleInFailureExpr : ( ( rule__InFailureExpr__Alternatives ) ) ;
+    public final void ruleInFailureExpr() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:248:2: ( ( ( rule__InFailureExpr__Alternatives ) ) )
+            // InternalFlaDsl.g:249:1: ( ( rule__InFailureExpr__Alternatives ) )
+            {
+            // InternalFlaDsl.g:249:1: ( ( rule__InFailureExpr__Alternatives ) )
+            // InternalFlaDsl.g:250:1: ( rule__InFailureExpr__Alternatives )
+            {
+             before(grammarAccess.getInFailureExprAccess().getAlternatives()); 
+            // InternalFlaDsl.g:251:1: ( rule__InFailureExpr__Alternatives )
+            // InternalFlaDsl.g:251:2: rule__InFailureExpr__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__InFailureExpr__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getInFailureExprAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleInFailureExpr"
+
+
+    // $ANTLR start "entryRuleOutFailureExpr"
+    // InternalFlaDsl.g:263:1: entryRuleOutFailureExpr : ruleOutFailureExpr EOF ;
+    public final void entryRuleOutFailureExpr() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:264:1: ( ruleOutFailureExpr EOF )
+            // InternalFlaDsl.g:265:1: ruleOutFailureExpr EOF
+            {
+             before(grammarAccess.getOutFailureExprRule()); 
+            pushFollow(FOLLOW_1);
+            ruleOutFailureExpr();
+
+            state._fsp--;
+
+             after(grammarAccess.getOutFailureExprRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOutFailureExpr"
+
+
+    // $ANTLR start "ruleOutFailureExpr"
+    // InternalFlaDsl.g:272:1: ruleOutFailureExpr : ( ( rule__OutFailureExpr__Alternatives ) ) ;
+    public final void ruleOutFailureExpr() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:276:2: ( ( ( rule__OutFailureExpr__Alternatives ) ) )
+            // InternalFlaDsl.g:277:1: ( ( rule__OutFailureExpr__Alternatives ) )
+            {
+            // InternalFlaDsl.g:277:1: ( ( rule__OutFailureExpr__Alternatives ) )
+            // InternalFlaDsl.g:278:1: ( rule__OutFailureExpr__Alternatives )
+            {
+             before(grammarAccess.getOutFailureExprAccess().getAlternatives()); 
+            // InternalFlaDsl.g:279:1: ( rule__OutFailureExpr__Alternatives )
+            // InternalFlaDsl.g:279:2: rule__OutFailureExpr__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__OutFailureExpr__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOutFailureExprAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOutFailureExpr"
+
+
+    // $ANTLR start "entryRuleFailureDefinition"
+    // InternalFlaDsl.g:293:1: entryRuleFailureDefinition : ruleFailureDefinition EOF ;
+    public final void entryRuleFailureDefinition() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:294:1: ( ruleFailureDefinition EOF )
+            // InternalFlaDsl.g:295:1: ruleFailureDefinition EOF
+            {
+             before(grammarAccess.getFailureDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            ruleFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getFailureDefinitionRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFailureDefinition"
+
+
+    // $ANTLR start "ruleFailureDefinition"
+    // InternalFlaDsl.g:302:1: ruleFailureDefinition : ( ( rule__FailureDefinition__Group__0 ) ) ;
+    public final void ruleFailureDefinition() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:306:2: ( ( ( rule__FailureDefinition__Group__0 ) ) )
+            // InternalFlaDsl.g:307:1: ( ( rule__FailureDefinition__Group__0 ) )
+            {
+            // InternalFlaDsl.g:307:1: ( ( rule__FailureDefinition__Group__0 ) )
+            // InternalFlaDsl.g:308:1: ( rule__FailureDefinition__Group__0 )
+            {
+             before(grammarAccess.getFailureDefinitionAccess().getGroup()); 
+            // InternalFlaDsl.g:309:1: ( rule__FailureDefinition__Group__0 )
+            // InternalFlaDsl.g:309:2: rule__FailureDefinition__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__FailureDefinition__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFailureDefinitionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFailureDefinition"
+
+
+    // $ANTLR start "entryRuleNoFailureDefinition"
+    // InternalFlaDsl.g:321:1: entryRuleNoFailureDefinition : ruleNoFailureDefinition EOF ;
+    public final void entryRuleNoFailureDefinition() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:322:1: ( ruleNoFailureDefinition EOF )
+            // InternalFlaDsl.g:323:1: ruleNoFailureDefinition EOF
+            {
+             before(grammarAccess.getNoFailureDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            ruleNoFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getNoFailureDefinitionRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNoFailureDefinition"
+
+
+    // $ANTLR start "ruleNoFailureDefinition"
+    // InternalFlaDsl.g:330:1: ruleNoFailureDefinition : ( ( rule__NoFailureDefinition__Group__0 ) ) ;
+    public final void ruleNoFailureDefinition() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:334:2: ( ( ( rule__NoFailureDefinition__Group__0 ) ) )
+            // InternalFlaDsl.g:335:1: ( ( rule__NoFailureDefinition__Group__0 ) )
+            {
+            // InternalFlaDsl.g:335:1: ( ( rule__NoFailureDefinition__Group__0 ) )
+            // InternalFlaDsl.g:336:1: ( rule__NoFailureDefinition__Group__0 )
+            {
+             before(grammarAccess.getNoFailureDefinitionAccess().getGroup()); 
+            // InternalFlaDsl.g:337:1: ( rule__NoFailureDefinition__Group__0 )
+            // InternalFlaDsl.g:337:2: rule__NoFailureDefinition__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__NoFailureDefinition__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNoFailureDefinitionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNoFailureDefinition"
+
+
+    // $ANTLR start "entryRuleComplexNofailureDefinition"
+    // InternalFlaDsl.g:349:1: entryRuleComplexNofailureDefinition : ruleComplexNofailureDefinition EOF ;
+    public final void entryRuleComplexNofailureDefinition() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:350:1: ( ruleComplexNofailureDefinition EOF )
+            // InternalFlaDsl.g:351:1: ruleComplexNofailureDefinition EOF
+            {
+             before(grammarAccess.getComplexNofailureDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            ruleComplexNofailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getComplexNofailureDefinitionRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleComplexNofailureDefinition"
+
+
+    // $ANTLR start "ruleComplexNofailureDefinition"
+    // InternalFlaDsl.g:358:1: ruleComplexNofailureDefinition : ( ( rule__ComplexNofailureDefinition__Group__0 ) ) ;
+    public final void ruleComplexNofailureDefinition() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:362:2: ( ( ( rule__ComplexNofailureDefinition__Group__0 ) ) )
+            // InternalFlaDsl.g:363:1: ( ( rule__ComplexNofailureDefinition__Group__0 ) )
+            {
+            // InternalFlaDsl.g:363:1: ( ( rule__ComplexNofailureDefinition__Group__0 ) )
+            // InternalFlaDsl.g:364:1: ( rule__ComplexNofailureDefinition__Group__0 )
+            {
+             before(grammarAccess.getComplexNofailureDefinitionAccess().getGroup()); 
+            // InternalFlaDsl.g:365:1: ( rule__ComplexNofailureDefinition__Group__0 )
+            // InternalFlaDsl.g:365:2: rule__ComplexNofailureDefinition__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ComplexNofailureDefinition__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getComplexNofailureDefinitionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleComplexNofailureDefinition"
+
+
+    // $ANTLR start "entryRuleWildcardDefinition"
+    // InternalFlaDsl.g:377:1: entryRuleWildcardDefinition : ruleWildcardDefinition EOF ;
+    public final void entryRuleWildcardDefinition() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:378:1: ( ruleWildcardDefinition EOF )
+            // InternalFlaDsl.g:379:1: ruleWildcardDefinition EOF
+            {
+             before(grammarAccess.getWildcardDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            ruleWildcardDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getWildcardDefinitionRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleWildcardDefinition"
+
+
+    // $ANTLR start "ruleWildcardDefinition"
+    // InternalFlaDsl.g:386:1: ruleWildcardDefinition : ( ( rule__WildcardDefinition__Group__0 ) ) ;
+    public final void ruleWildcardDefinition() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:390:2: ( ( ( rule__WildcardDefinition__Group__0 ) ) )
+            // InternalFlaDsl.g:391:1: ( ( rule__WildcardDefinition__Group__0 ) )
+            {
+            // InternalFlaDsl.g:391:1: ( ( rule__WildcardDefinition__Group__0 ) )
+            // InternalFlaDsl.g:392:1: ( rule__WildcardDefinition__Group__0 )
+            {
+             before(grammarAccess.getWildcardDefinitionAccess().getGroup()); 
+            // InternalFlaDsl.g:393:1: ( rule__WildcardDefinition__Group__0 )
+            // InternalFlaDsl.g:393:2: rule__WildcardDefinition__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__WildcardDefinition__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWildcardDefinitionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleWildcardDefinition"
+
+
+    // $ANTLR start "entryRuleVariableDefinition"
+    // InternalFlaDsl.g:405:1: entryRuleVariableDefinition : ruleVariableDefinition EOF ;
+    public final void entryRuleVariableDefinition() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:406:1: ( ruleVariableDefinition EOF )
+            // InternalFlaDsl.g:407:1: ruleVariableDefinition EOF
+            {
+             before(grammarAccess.getVariableDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            ruleVariableDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableDefinitionRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVariableDefinition"
+
+
+    // $ANTLR start "ruleVariableDefinition"
+    // InternalFlaDsl.g:414:1: ruleVariableDefinition : ( ( rule__VariableDefinition__Group__0 ) ) ;
+    public final void ruleVariableDefinition() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:418:2: ( ( ( rule__VariableDefinition__Group__0 ) ) )
+            // InternalFlaDsl.g:419:1: ( ( rule__VariableDefinition__Group__0 ) )
+            {
+            // InternalFlaDsl.g:419:1: ( ( rule__VariableDefinition__Group__0 ) )
+            // InternalFlaDsl.g:420:1: ( rule__VariableDefinition__Group__0 )
+            {
+             before(grammarAccess.getVariableDefinitionAccess().getGroup()); 
+            // InternalFlaDsl.g:421:1: ( rule__VariableDefinition__Group__0 )
+            // InternalFlaDsl.g:421:2: rule__VariableDefinition__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDefinition__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableDefinitionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVariableDefinition"
+
+
+    // $ANTLR start "entryRuleACIDavoidable"
+    // InternalFlaDsl.g:433:1: entryRuleACIDavoidable : ruleACIDavoidable EOF ;
+    public final void entryRuleACIDavoidable() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:434:1: ( ruleACIDavoidable EOF )
+            // InternalFlaDsl.g:435:1: ruleACIDavoidable EOF
+            {
+             before(grammarAccess.getACIDavoidableRule()); 
+            pushFollow(FOLLOW_1);
+            ruleACIDavoidable();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDavoidableRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleACIDavoidable"
+
+
+    // $ANTLR start "ruleACIDavoidable"
+    // InternalFlaDsl.g:442:1: ruleACIDavoidable : ( ( rule__ACIDavoidable__Group__0 ) ) ;
+    public final void ruleACIDavoidable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:446:2: ( ( ( rule__ACIDavoidable__Group__0 ) ) )
+            // InternalFlaDsl.g:447:1: ( ( rule__ACIDavoidable__Group__0 ) )
+            {
+            // InternalFlaDsl.g:447:1: ( ( rule__ACIDavoidable__Group__0 ) )
+            // InternalFlaDsl.g:448:1: ( rule__ACIDavoidable__Group__0 )
+            {
+             before(grammarAccess.getACIDavoidableAccess().getGroup()); 
+            // InternalFlaDsl.g:449:1: ( rule__ACIDavoidable__Group__0 )
+            // InternalFlaDsl.g:449:2: rule__ACIDavoidable__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDavoidableAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleACIDavoidable"
+
+
+    // $ANTLR start "entryRuleACIDMitigation"
+    // InternalFlaDsl.g:461:1: entryRuleACIDMitigation : ruleACIDMitigation EOF ;
+    public final void entryRuleACIDMitigation() throws RecognitionException {
+        try {
+            // InternalFlaDsl.g:462:1: ( ruleACIDMitigation EOF )
+            // InternalFlaDsl.g:463:1: ruleACIDMitigation EOF
+            {
+             before(grammarAccess.getACIDMitigationRule()); 
+            pushFollow(FOLLOW_1);
+            ruleACIDMitigation();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDMitigationRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleACIDMitigation"
+
+
+    // $ANTLR start "ruleACIDMitigation"
+    // InternalFlaDsl.g:470:1: ruleACIDMitigation : ( ( rule__ACIDMitigation__Group__0 ) ) ;
+    public final void ruleACIDMitigation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:474:2: ( ( ( rule__ACIDMitigation__Group__0 ) ) )
+            // InternalFlaDsl.g:475:1: ( ( rule__ACIDMitigation__Group__0 ) )
+            {
+            // InternalFlaDsl.g:475:1: ( ( rule__ACIDMitigation__Group__0 ) )
+            // InternalFlaDsl.g:476:1: ( rule__ACIDMitigation__Group__0 )
+            {
+             before(grammarAccess.getACIDMitigationAccess().getGroup()); 
+            // InternalFlaDsl.g:477:1: ( rule__ACIDMitigation__Group__0 )
+            // InternalFlaDsl.g:477:2: rule__ACIDMitigation__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDMitigationAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleACIDMitigation"
+
+
+    // $ANTLR start "ruleActualFailureType"
+    // InternalFlaDsl.g:494:1: ruleActualFailureType : ( ( rule__ActualFailureType__Alternatives ) ) ;
+    public final void ruleActualFailureType() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:498:1: ( ( ( rule__ActualFailureType__Alternatives ) ) )
+            // InternalFlaDsl.g:499:1: ( ( rule__ActualFailureType__Alternatives ) )
+            {
+            // InternalFlaDsl.g:499:1: ( ( rule__ActualFailureType__Alternatives ) )
+            // InternalFlaDsl.g:500:1: ( rule__ActualFailureType__Alternatives )
+            {
+             before(grammarAccess.getActualFailureTypeAccess().getAlternatives()); 
+            // InternalFlaDsl.g:501:1: ( rule__ActualFailureType__Alternatives )
+            // InternalFlaDsl.g:501:2: rule__ActualFailureType__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__ActualFailureType__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActualFailureTypeAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActualFailureType"
+
+
+    // $ANTLR start "ruleAavoidable"
+    // InternalFlaDsl.g:517:1: ruleAavoidable : ( ( rule__Aavoidable__Alternatives ) ) ;
+    public final void ruleAavoidable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:521:1: ( ( ( rule__Aavoidable__Alternatives ) ) )
+            // InternalFlaDsl.g:522:1: ( ( rule__Aavoidable__Alternatives ) )
+            {
+            // InternalFlaDsl.g:522:1: ( ( rule__Aavoidable__Alternatives ) )
+            // InternalFlaDsl.g:523:1: ( rule__Aavoidable__Alternatives )
+            {
+             before(grammarAccess.getAavoidableAccess().getAlternatives()); 
+            // InternalFlaDsl.g:524:1: ( rule__Aavoidable__Alternatives )
+            // InternalFlaDsl.g:524:2: rule__Aavoidable__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Aavoidable__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAavoidableAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAavoidable"
+
+
+    // $ANTLR start "ruleCavoidable"
+    // InternalFlaDsl.g:536:1: ruleCavoidable : ( ( rule__Cavoidable__Alternatives ) ) ;
+    public final void ruleCavoidable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:540:1: ( ( ( rule__Cavoidable__Alternatives ) ) )
+            // InternalFlaDsl.g:541:1: ( ( rule__Cavoidable__Alternatives ) )
+            {
+            // InternalFlaDsl.g:541:1: ( ( rule__Cavoidable__Alternatives ) )
+            // InternalFlaDsl.g:542:1: ( rule__Cavoidable__Alternatives )
+            {
+             before(grammarAccess.getCavoidableAccess().getAlternatives()); 
+            // InternalFlaDsl.g:543:1: ( rule__Cavoidable__Alternatives )
+            // InternalFlaDsl.g:543:2: rule__Cavoidable__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Cavoidable__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getCavoidableAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleCavoidable"
+
+
+    // $ANTLR start "ruleIavoidable"
+    // InternalFlaDsl.g:555:1: ruleIavoidable : ( ( rule__Iavoidable__Alternatives ) ) ;
+    public final void ruleIavoidable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:559:1: ( ( ( rule__Iavoidable__Alternatives ) ) )
+            // InternalFlaDsl.g:560:1: ( ( rule__Iavoidable__Alternatives ) )
+            {
+            // InternalFlaDsl.g:560:1: ( ( rule__Iavoidable__Alternatives ) )
+            // InternalFlaDsl.g:561:1: ( rule__Iavoidable__Alternatives )
+            {
+             before(grammarAccess.getIavoidableAccess().getAlternatives()); 
+            // InternalFlaDsl.g:562:1: ( rule__Iavoidable__Alternatives )
+            // InternalFlaDsl.g:562:2: rule__Iavoidable__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Iavoidable__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIavoidableAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIavoidable"
+
+
+    // $ANTLR start "ruleDavoidable"
+    // InternalFlaDsl.g:574:1: ruleDavoidable : ( ( rule__Davoidable__Alternatives ) ) ;
+    public final void ruleDavoidable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:578:1: ( ( ( rule__Davoidable__Alternatives ) ) )
+            // InternalFlaDsl.g:579:1: ( ( rule__Davoidable__Alternatives ) )
+            {
+            // InternalFlaDsl.g:579:1: ( ( rule__Davoidable__Alternatives ) )
+            // InternalFlaDsl.g:580:1: ( rule__Davoidable__Alternatives )
+            {
+             before(grammarAccess.getDavoidableAccess().getAlternatives()); 
+            // InternalFlaDsl.g:581:1: ( rule__Davoidable__Alternatives )
+            // InternalFlaDsl.g:581:2: rule__Davoidable__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Davoidable__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDavoidableAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDavoidable"
+
+
+    // $ANTLR start "ruleAmitigation"
+    // InternalFlaDsl.g:593:1: ruleAmitigation : ( ( rule__Amitigation__Alternatives ) ) ;
+    public final void ruleAmitigation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:597:1: ( ( ( rule__Amitigation__Alternatives ) ) )
+            // InternalFlaDsl.g:598:1: ( ( rule__Amitigation__Alternatives ) )
+            {
+            // InternalFlaDsl.g:598:1: ( ( rule__Amitigation__Alternatives ) )
+            // InternalFlaDsl.g:599:1: ( rule__Amitigation__Alternatives )
+            {
+             before(grammarAccess.getAmitigationAccess().getAlternatives()); 
+            // InternalFlaDsl.g:600:1: ( rule__Amitigation__Alternatives )
+            // InternalFlaDsl.g:600:2: rule__Amitigation__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Amitigation__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAmitigationAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAmitigation"
+
+
+    // $ANTLR start "ruleCmitigation"
+    // InternalFlaDsl.g:612:1: ruleCmitigation : ( ( rule__Cmitigation__Alternatives ) ) ;
+    public final void ruleCmitigation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:616:1: ( ( ( rule__Cmitigation__Alternatives ) ) )
+            // InternalFlaDsl.g:617:1: ( ( rule__Cmitigation__Alternatives ) )
+            {
+            // InternalFlaDsl.g:617:1: ( ( rule__Cmitigation__Alternatives ) )
+            // InternalFlaDsl.g:618:1: ( rule__Cmitigation__Alternatives )
+            {
+             before(grammarAccess.getCmitigationAccess().getAlternatives()); 
+            // InternalFlaDsl.g:619:1: ( rule__Cmitigation__Alternatives )
+            // InternalFlaDsl.g:619:2: rule__Cmitigation__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Cmitigation__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getCmitigationAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleCmitigation"
+
+
+    // $ANTLR start "ruleImitigation"
+    // InternalFlaDsl.g:631:1: ruleImitigation : ( ( rule__Imitigation__Alternatives ) ) ;
+    public final void ruleImitigation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:635:1: ( ( ( rule__Imitigation__Alternatives ) ) )
+            // InternalFlaDsl.g:636:1: ( ( rule__Imitigation__Alternatives ) )
+            {
+            // InternalFlaDsl.g:636:1: ( ( rule__Imitigation__Alternatives ) )
+            // InternalFlaDsl.g:637:1: ( rule__Imitigation__Alternatives )
+            {
+             before(grammarAccess.getImitigationAccess().getAlternatives()); 
+            // InternalFlaDsl.g:638:1: ( rule__Imitigation__Alternatives )
+            // InternalFlaDsl.g:638:2: rule__Imitigation__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Imitigation__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getImitigationAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleImitigation"
+
+
+    // $ANTLR start "ruleDmitigation"
+    // InternalFlaDsl.g:650:1: ruleDmitigation : ( ( rule__Dmitigation__Alternatives ) ) ;
+    public final void ruleDmitigation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:654:1: ( ( ( rule__Dmitigation__Alternatives ) ) )
+            // InternalFlaDsl.g:655:1: ( ( rule__Dmitigation__Alternatives ) )
+            {
+            // InternalFlaDsl.g:655:1: ( ( rule__Dmitigation__Alternatives ) )
+            // InternalFlaDsl.g:656:1: ( rule__Dmitigation__Alternatives )
+            {
+             before(grammarAccess.getDmitigationAccess().getAlternatives()); 
+            // InternalFlaDsl.g:657:1: ( rule__Dmitigation__Alternatives )
+            // InternalFlaDsl.g:657:2: rule__Dmitigation__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Dmitigation__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDmitigationAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDmitigation"
+
+
+    // $ANTLR start "rule__InputExpression__Alternatives_0"
+    // InternalFlaDsl.g:668:1: rule__InputExpression__Alternatives_0 : ( ( ( rule__InputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) );
+    public final void rule__InputExpression__Alternatives_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:672:1: ( ( ( rule__InputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) )
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+
+            if ( (LA2_0==RULE_ID) ) {
+                alt2=1;
+            }
+            else if ( (LA2_0==11) ) {
+                alt2=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 2, 0, input);
+
+                throw nvae;
+            }
+            switch (alt2) {
+                case 1 :
+                    // InternalFlaDsl.g:673:1: ( ( rule__InputExpression__RefAssignment_0_0 ) )
+                    {
+                    // InternalFlaDsl.g:673:1: ( ( rule__InputExpression__RefAssignment_0_0 ) )
+                    // InternalFlaDsl.g:674:1: ( rule__InputExpression__RefAssignment_0_0 )
+                    {
+                     before(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0()); 
+                    // InternalFlaDsl.g:675:1: ( rule__InputExpression__RefAssignment_0_0 )
+                    // InternalFlaDsl.g:675:2: rule__InputExpression__RefAssignment_0_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__InputExpression__RefAssignment_0_0();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:679:6: ( 'undefined' )
+                    {
+                    // InternalFlaDsl.g:679:6: ( 'undefined' )
+                    // InternalFlaDsl.g:680:1: 'undefined'
+                    {
+                     before(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1()); 
+                    match(input,11,FOLLOW_2); 
+                     after(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InputExpression__Alternatives_0"
+
+
+    // $ANTLR start "rule__OutputExpression__Alternatives_0"
+    // InternalFlaDsl.g:692:1: rule__OutputExpression__Alternatives_0 : ( ( ( rule__OutputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) );
+    public final void rule__OutputExpression__Alternatives_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:696:1: ( ( ( rule__OutputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) )
+            int alt3=2;
+            int LA3_0 = input.LA(1);
+
+            if ( (LA3_0==RULE_ID) ) {
+                alt3=1;
+            }
+            else if ( (LA3_0==11) ) {
+                alt3=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 3, 0, input);
+
+                throw nvae;
+            }
+            switch (alt3) {
+                case 1 :
+                    // InternalFlaDsl.g:697:1: ( ( rule__OutputExpression__RefAssignment_0_0 ) )
+                    {
+                    // InternalFlaDsl.g:697:1: ( ( rule__OutputExpression__RefAssignment_0_0 ) )
+                    // InternalFlaDsl.g:698:1: ( rule__OutputExpression__RefAssignment_0_0 )
+                    {
+                     before(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0()); 
+                    // InternalFlaDsl.g:699:1: ( rule__OutputExpression__RefAssignment_0_0 )
+                    // InternalFlaDsl.g:699:2: rule__OutputExpression__RefAssignment_0_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OutputExpression__RefAssignment_0_0();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:703:6: ( 'undefined' )
+                    {
+                    // InternalFlaDsl.g:703:6: ( 'undefined' )
+                    // InternalFlaDsl.g:704:1: 'undefined'
+                    {
+                     before(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1()); 
+                    match(input,11,FOLLOW_2); 
+                     after(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutputExpression__Alternatives_0"
+
+
+    // $ANTLR start "rule__InFailureExpr__Alternatives"
+    // InternalFlaDsl.g:716:1: rule__InFailureExpr__Alternatives : ( ( ( rule__InFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__InFailureExpr__Group_3__0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_4 ) ) );
+    public final void rule__InFailureExpr__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:720:1: ( ( ( rule__InFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__InFailureExpr__Group_3__0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_4 ) ) )
+            int alt4=5;
+            switch ( input.LA(1) ) {
+            case 40:
+                {
+                alt4=1;
+                }
+                break;
+            case 39:
+                {
+                alt4=2;
+                }
+                break;
+            case 12:
+            case 13:
+            case 14:
+            case 15:
+            case 16:
+            case 17:
+                {
+                alt4=3;
+                }
+                break;
+            case 37:
+                {
+                alt4=4;
+                }
+                break;
+            case RULE_ID:
+                {
+                alt4=5;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 4, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt4) {
+                case 1 :
+                    // InternalFlaDsl.g:721:1: ( ( rule__InFailureExpr__FailuresAssignment_0 ) )
+                    {
+                    // InternalFlaDsl.g:721:1: ( ( rule__InFailureExpr__FailuresAssignment_0 ) )
+                    // InternalFlaDsl.g:722:1: ( rule__InFailureExpr__FailuresAssignment_0 )
+                    {
+                     before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0()); 
+                    // InternalFlaDsl.g:723:1: ( rule__InFailureExpr__FailuresAssignment_0 )
+                    // InternalFlaDsl.g:723:2: rule__InFailureExpr__FailuresAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__InFailureExpr__FailuresAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:727:6: ( ( rule__InFailureExpr__FailuresAssignment_1 ) )
+                    {
+                    // InternalFlaDsl.g:727:6: ( ( rule__InFailureExpr__FailuresAssignment_1 ) )
+                    // InternalFlaDsl.g:728:1: ( rule__InFailureExpr__FailuresAssignment_1 )
+                    {
+                     before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1()); 
+                    // InternalFlaDsl.g:729:1: ( rule__InFailureExpr__FailuresAssignment_1 )
+                    // InternalFlaDsl.g:729:2: rule__InFailureExpr__FailuresAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__InFailureExpr__FailuresAssignment_1();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:733:6: ( ( rule__InFailureExpr__FailuresAssignment_2 ) )
+                    {
+                    // InternalFlaDsl.g:733:6: ( ( rule__InFailureExpr__FailuresAssignment_2 ) )
+                    // InternalFlaDsl.g:734:1: ( rule__InFailureExpr__FailuresAssignment_2 )
+                    {
+                     before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2()); 
+                    // InternalFlaDsl.g:735:1: ( rule__InFailureExpr__FailuresAssignment_2 )
+                    // InternalFlaDsl.g:735:2: rule__InFailureExpr__FailuresAssignment_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__InFailureExpr__FailuresAssignment_2();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:739:6: ( ( rule__InFailureExpr__Group_3__0 ) )
+                    {
+                    // InternalFlaDsl.g:739:6: ( ( rule__InFailureExpr__Group_3__0 ) )
+                    // InternalFlaDsl.g:740:1: ( rule__InFailureExpr__Group_3__0 )
+                    {
+                     before(grammarAccess.getInFailureExprAccess().getGroup_3()); 
+                    // InternalFlaDsl.g:741:1: ( rule__InFailureExpr__Group_3__0 )
+                    // InternalFlaDsl.g:741:2: rule__InFailureExpr__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__InFailureExpr__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getInFailureExprAccess().getGroup_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalFlaDsl.g:745:6: ( ( rule__InFailureExpr__FailuresAssignment_4 ) )
+                    {
+                    // InternalFlaDsl.g:745:6: ( ( rule__InFailureExpr__FailuresAssignment_4 ) )
+                    // InternalFlaDsl.g:746:1: ( rule__InFailureExpr__FailuresAssignment_4 )
+                    {
+                     before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4()); 
+                    // InternalFlaDsl.g:747:1: ( rule__InFailureExpr__FailuresAssignment_4 )
+                    // InternalFlaDsl.g:747:2: rule__InFailureExpr__FailuresAssignment_4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__InFailureExpr__FailuresAssignment_4();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Alternatives"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Alternatives"
+    // InternalFlaDsl.g:756:1: rule__OutFailureExpr__Alternatives : ( ( ( rule__OutFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__OutFailureExpr__Group_3__0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_4 ) ) );
+    public final void rule__OutFailureExpr__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:760:1: ( ( ( rule__OutFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__OutFailureExpr__Group_3__0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_4 ) ) )
+            int alt5=5;
+            switch ( input.LA(1) ) {
+            case 39:
+                {
+                int LA5_1 = input.LA(2);
+
+                if ( (LA5_1==EOF||(LA5_1>=34 && LA5_1<=35)) ) {
+                    alt5=1;
+                }
+                else if ( (LA5_1==36) ) {
+                    alt5=2;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 5, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 12:
+            case 13:
+            case 14:
+            case 15:
+            case 16:
+            case 17:
+                {
+                alt5=3;
+                }
+                break;
+            case 37:
+                {
+                alt5=4;
+                }
+                break;
+            case RULE_ID:
+                {
+                alt5=5;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt5) {
+                case 1 :
+                    // InternalFlaDsl.g:761:1: ( ( rule__OutFailureExpr__FailuresAssignment_0 ) )
+                    {
+                    // InternalFlaDsl.g:761:1: ( ( rule__OutFailureExpr__FailuresAssignment_0 ) )
+                    // InternalFlaDsl.g:762:1: ( rule__OutFailureExpr__FailuresAssignment_0 )
+                    {
+                     before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0()); 
+                    // InternalFlaDsl.g:763:1: ( rule__OutFailureExpr__FailuresAssignment_0 )
+                    // InternalFlaDsl.g:763:2: rule__OutFailureExpr__FailuresAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OutFailureExpr__FailuresAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:767:6: ( ( rule__OutFailureExpr__FailuresAssignment_1 ) )
+                    {
+                    // InternalFlaDsl.g:767:6: ( ( rule__OutFailureExpr__FailuresAssignment_1 ) )
+                    // InternalFlaDsl.g:768:1: ( rule__OutFailureExpr__FailuresAssignment_1 )
+                    {
+                     before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1()); 
+                    // InternalFlaDsl.g:769:1: ( rule__OutFailureExpr__FailuresAssignment_1 )
+                    // InternalFlaDsl.g:769:2: rule__OutFailureExpr__FailuresAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OutFailureExpr__FailuresAssignment_1();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:773:6: ( ( rule__OutFailureExpr__FailuresAssignment_2 ) )
+                    {
+                    // InternalFlaDsl.g:773:6: ( ( rule__OutFailureExpr__FailuresAssignment_2 ) )
+                    // InternalFlaDsl.g:774:1: ( rule__OutFailureExpr__FailuresAssignment_2 )
+                    {
+                     before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2()); 
+                    // InternalFlaDsl.g:775:1: ( rule__OutFailureExpr__FailuresAssignment_2 )
+                    // InternalFlaDsl.g:775:2: rule__OutFailureExpr__FailuresAssignment_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OutFailureExpr__FailuresAssignment_2();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:779:6: ( ( rule__OutFailureExpr__Group_3__0 ) )
+                    {
+                    // InternalFlaDsl.g:779:6: ( ( rule__OutFailureExpr__Group_3__0 ) )
+                    // InternalFlaDsl.g:780:1: ( rule__OutFailureExpr__Group_3__0 )
+                    {
+                     before(grammarAccess.getOutFailureExprAccess().getGroup_3()); 
+                    // InternalFlaDsl.g:781:1: ( rule__OutFailureExpr__Group_3__0 )
+                    // InternalFlaDsl.g:781:2: rule__OutFailureExpr__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OutFailureExpr__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getOutFailureExprAccess().getGroup_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalFlaDsl.g:785:6: ( ( rule__OutFailureExpr__FailuresAssignment_4 ) )
+                    {
+                    // InternalFlaDsl.g:785:6: ( ( rule__OutFailureExpr__FailuresAssignment_4 ) )
+                    // InternalFlaDsl.g:786:1: ( rule__OutFailureExpr__FailuresAssignment_4 )
+                    {
+                     before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4()); 
+                    // InternalFlaDsl.g:787:1: ( rule__OutFailureExpr__FailuresAssignment_4 )
+                    // InternalFlaDsl.g:787:2: rule__OutFailureExpr__FailuresAssignment_4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OutFailureExpr__FailuresAssignment_4();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Alternatives"
+
+
+    // $ANTLR start "rule__ActualFailureType__Alternatives"
+    // InternalFlaDsl.g:798:1: rule__ActualFailureType__Alternatives : ( ( ( 'early' ) ) | ( ( 'late' ) ) | ( ( 'commission' ) ) | ( ( 'omission' ) ) | ( ( 'valueSubtle' ) ) | ( ( 'valueCoarse' ) ) );
+    public final void rule__ActualFailureType__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:802:1: ( ( ( 'early' ) ) | ( ( 'late' ) ) | ( ( 'commission' ) ) | ( ( 'omission' ) ) | ( ( 'valueSubtle' ) ) | ( ( 'valueCoarse' ) ) )
+            int alt6=6;
+            switch ( input.LA(1) ) {
+            case 12:
+                {
+                alt6=1;
+                }
+                break;
+            case 13:
+                {
+                alt6=2;
+                }
+                break;
+            case 14:
+                {
+                alt6=3;
+                }
+                break;
+            case 15:
+                {
+                alt6=4;
+                }
+                break;
+            case 16:
+                {
+                alt6=5;
+                }
+                break;
+            case 17:
+                {
+                alt6=6;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 6, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt6) {
+                case 1 :
+                    // InternalFlaDsl.g:803:1: ( ( 'early' ) )
+                    {
+                    // InternalFlaDsl.g:803:1: ( ( 'early' ) )
+                    // InternalFlaDsl.g:804:1: ( 'early' )
+                    {
+                     before(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); 
+                    // InternalFlaDsl.g:805:1: ( 'early' )
+                    // InternalFlaDsl.g:805:3: 'early'
+                    {
+                    match(input,12,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:810:6: ( ( 'late' ) )
+                    {
+                    // InternalFlaDsl.g:810:6: ( ( 'late' ) )
+                    // InternalFlaDsl.g:811:1: ( 'late' )
+                    {
+                     before(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); 
+                    // InternalFlaDsl.g:812:1: ( 'late' )
+                    // InternalFlaDsl.g:812:3: 'late'
+                    {
+                    match(input,13,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:817:6: ( ( 'commission' ) )
+                    {
+                    // InternalFlaDsl.g:817:6: ( ( 'commission' ) )
+                    // InternalFlaDsl.g:818:1: ( 'commission' )
+                    {
+                     before(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); 
+                    // InternalFlaDsl.g:819:1: ( 'commission' )
+                    // InternalFlaDsl.g:819:3: 'commission'
+                    {
+                    match(input,14,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:824:6: ( ( 'omission' ) )
+                    {
+                    // InternalFlaDsl.g:824:6: ( ( 'omission' ) )
+                    // InternalFlaDsl.g:825:1: ( 'omission' )
+                    {
+                     before(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); 
+                    // InternalFlaDsl.g:826:1: ( 'omission' )
+                    // InternalFlaDsl.g:826:3: 'omission'
+                    {
+                    match(input,15,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalFlaDsl.g:831:6: ( ( 'valueSubtle' ) )
+                    {
+                    // InternalFlaDsl.g:831:6: ( ( 'valueSubtle' ) )
+                    // InternalFlaDsl.g:832:1: ( 'valueSubtle' )
+                    {
+                     before(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); 
+                    // InternalFlaDsl.g:833:1: ( 'valueSubtle' )
+                    // InternalFlaDsl.g:833:3: 'valueSubtle'
+                    {
+                    match(input,16,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalFlaDsl.g:838:6: ( ( 'valueCoarse' ) )
+                    {
+                    // InternalFlaDsl.g:838:6: ( ( 'valueCoarse' ) )
+                    // InternalFlaDsl.g:839:1: ( 'valueCoarse' )
+                    {
+                     before(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); 
+                    // InternalFlaDsl.g:840:1: ( 'valueCoarse' )
+                    // InternalFlaDsl.g:840:3: 'valueCoarse'
+                    {
+                    match(input,17,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActualFailureType__Alternatives"
+
+
+    // $ANTLR start "rule__Aavoidable__Alternatives"
+    // InternalFlaDsl.g:850:1: rule__Aavoidable__Alternatives : ( ( ( 'incompletion' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+    public final void rule__Aavoidable__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:854:1: ( ( ( 'incompletion' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+            int alt7=3;
+            switch ( input.LA(1) ) {
+            case 18:
+                {
+                alt7=1;
+                }
+                break;
+            case 19:
+                {
+                alt7=2;
+                }
+                break;
+            case 20:
+                {
+                alt7=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt7) {
+                case 1 :
+                    // InternalFlaDsl.g:855:1: ( ( 'incompletion' ) )
+                    {
+                    // InternalFlaDsl.g:855:1: ( ( 'incompletion' ) )
+                    // InternalFlaDsl.g:856:1: ( 'incompletion' )
+                    {
+                     before(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); 
+                    // InternalFlaDsl.g:857:1: ( 'incompletion' )
+                    // InternalFlaDsl.g:857:3: 'incompletion'
+                    {
+                    match(input,18,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:862:6: ( ( 'none' ) )
+                    {
+                    // InternalFlaDsl.g:862:6: ( ( 'none' ) )
+                    // InternalFlaDsl.g:863:1: ( 'none' )
+                    {
+                     before(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+                    // InternalFlaDsl.g:864:1: ( 'none' )
+                    // InternalFlaDsl.g:864:3: 'none'
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:869:6: ( ( 'unspecified' ) )
+                    {
+                    // InternalFlaDsl.g:869:6: ( ( 'unspecified' ) )
+                    // InternalFlaDsl.g:870:1: ( 'unspecified' )
+                    {
+                     before(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+                    // InternalFlaDsl.g:871:1: ( 'unspecified' )
+                    // InternalFlaDsl.g:871:3: 'unspecified'
+                    {
+                    match(input,20,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Aavoidable__Alternatives"
+
+
+    // $ANTLR start "rule__Cavoidable__Alternatives"
+    // InternalFlaDsl.g:881:1: rule__Cavoidable__Alternatives : ( ( ( 'inconsistency' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+    public final void rule__Cavoidable__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:885:1: ( ( ( 'inconsistency' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+            int alt8=3;
+            switch ( input.LA(1) ) {
+            case 21:
+                {
+                alt8=1;
+                }
+                break;
+            case 19:
+                {
+                alt8=2;
+                }
+                break;
+            case 20:
+                {
+                alt8=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt8) {
+                case 1 :
+                    // InternalFlaDsl.g:886:1: ( ( 'inconsistency' ) )
+                    {
+                    // InternalFlaDsl.g:886:1: ( ( 'inconsistency' ) )
+                    // InternalFlaDsl.g:887:1: ( 'inconsistency' )
+                    {
+                     before(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); 
+                    // InternalFlaDsl.g:888:1: ( 'inconsistency' )
+                    // InternalFlaDsl.g:888:3: 'inconsistency'
+                    {
+                    match(input,21,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:893:6: ( ( 'none' ) )
+                    {
+                    // InternalFlaDsl.g:893:6: ( ( 'none' ) )
+                    // InternalFlaDsl.g:894:1: ( 'none' )
+                    {
+                     before(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+                    // InternalFlaDsl.g:895:1: ( 'none' )
+                    // InternalFlaDsl.g:895:3: 'none'
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:900:6: ( ( 'unspecified' ) )
+                    {
+                    // InternalFlaDsl.g:900:6: ( ( 'unspecified' ) )
+                    // InternalFlaDsl.g:901:1: ( 'unspecified' )
+                    {
+                     before(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+                    // InternalFlaDsl.g:902:1: ( 'unspecified' )
+                    // InternalFlaDsl.g:902:3: 'unspecified'
+                    {
+                    match(input,20,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Cavoidable__Alternatives"
+
+
+    // $ANTLR start "rule__Iavoidable__Alternatives"
+    // InternalFlaDsl.g:912:1: rule__Iavoidable__Alternatives : ( ( ( 'interference' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+    public final void rule__Iavoidable__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:916:1: ( ( ( 'interference' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+            int alt9=3;
+            switch ( input.LA(1) ) {
+            case 22:
+                {
+                alt9=1;
+                }
+                break;
+            case 19:
+                {
+                alt9=2;
+                }
+                break;
+            case 20:
+                {
+                alt9=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 9, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt9) {
+                case 1 :
+                    // InternalFlaDsl.g:917:1: ( ( 'interference' ) )
+                    {
+                    // InternalFlaDsl.g:917:1: ( ( 'interference' ) )
+                    // InternalFlaDsl.g:918:1: ( 'interference' )
+                    {
+                     before(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); 
+                    // InternalFlaDsl.g:919:1: ( 'interference' )
+                    // InternalFlaDsl.g:919:3: 'interference'
+                    {
+                    match(input,22,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:924:6: ( ( 'none' ) )
+                    {
+                    // InternalFlaDsl.g:924:6: ( ( 'none' ) )
+                    // InternalFlaDsl.g:925:1: ( 'none' )
+                    {
+                     before(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+                    // InternalFlaDsl.g:926:1: ( 'none' )
+                    // InternalFlaDsl.g:926:3: 'none'
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:931:6: ( ( 'unspecified' ) )
+                    {
+                    // InternalFlaDsl.g:931:6: ( ( 'unspecified' ) )
+                    // InternalFlaDsl.g:932:1: ( 'unspecified' )
+                    {
+                     before(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+                    // InternalFlaDsl.g:933:1: ( 'unspecified' )
+                    // InternalFlaDsl.g:933:3: 'unspecified'
+                    {
+                    match(input,20,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Iavoidable__Alternatives"
+
+
+    // $ANTLR start "rule__Davoidable__Alternatives"
+    // InternalFlaDsl.g:943:1: rule__Davoidable__Alternatives : ( ( ( 'impermanence' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+    public final void rule__Davoidable__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:947:1: ( ( ( 'impermanence' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+            int alt10=3;
+            switch ( input.LA(1) ) {
+            case 23:
+                {
+                alt10=1;
+                }
+                break;
+            case 19:
+                {
+                alt10=2;
+                }
+                break;
+            case 20:
+                {
+                alt10=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 10, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt10) {
+                case 1 :
+                    // InternalFlaDsl.g:948:1: ( ( 'impermanence' ) )
+                    {
+                    // InternalFlaDsl.g:948:1: ( ( 'impermanence' ) )
+                    // InternalFlaDsl.g:949:1: ( 'impermanence' )
+                    {
+                     before(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); 
+                    // InternalFlaDsl.g:950:1: ( 'impermanence' )
+                    // InternalFlaDsl.g:950:3: 'impermanence'
+                    {
+                    match(input,23,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:955:6: ( ( 'none' ) )
+                    {
+                    // InternalFlaDsl.g:955:6: ( ( 'none' ) )
+                    // InternalFlaDsl.g:956:1: ( 'none' )
+                    {
+                     before(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+                    // InternalFlaDsl.g:957:1: ( 'none' )
+                    // InternalFlaDsl.g:957:3: 'none'
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:962:6: ( ( 'unspecified' ) )
+                    {
+                    // InternalFlaDsl.g:962:6: ( ( 'unspecified' ) )
+                    // InternalFlaDsl.g:963:1: ( 'unspecified' )
+                    {
+                     before(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+                    // InternalFlaDsl.g:964:1: ( 'unspecified' )
+                    // InternalFlaDsl.g:964:3: 'unspecified'
+                    {
+                    match(input,20,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Davoidable__Alternatives"
+
+
+    // $ANTLR start "rule__Amitigation__Alternatives"
+    // InternalFlaDsl.g:974:1: rule__Amitigation__Alternatives : ( ( ( 'all_or_nothing' ) ) | ( ( 'all_or_compensation' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+    public final void rule__Amitigation__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:978:1: ( ( ( 'all_or_nothing' ) ) | ( ( 'all_or_compensation' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+            int alt11=4;
+            switch ( input.LA(1) ) {
+            case 24:
+                {
+                alt11=1;
+                }
+                break;
+            case 25:
+                {
+                alt11=2;
+                }
+                break;
+            case 19:
+                {
+                alt11=3;
+                }
+                break;
+            case 20:
+                {
+                alt11=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt11) {
+                case 1 :
+                    // InternalFlaDsl.g:979:1: ( ( 'all_or_nothing' ) )
+                    {
+                    // InternalFlaDsl.g:979:1: ( ( 'all_or_nothing' ) )
+                    // InternalFlaDsl.g:980:1: ( 'all_or_nothing' )
+                    {
+                     before(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); 
+                    // InternalFlaDsl.g:981:1: ( 'all_or_nothing' )
+                    // InternalFlaDsl.g:981:3: 'all_or_nothing'
+                    {
+                    match(input,24,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:986:6: ( ( 'all_or_compensation' ) )
+                    {
+                    // InternalFlaDsl.g:986:6: ( ( 'all_or_compensation' ) )
+                    // InternalFlaDsl.g:987:1: ( 'all_or_compensation' )
+                    {
+                     before(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); 
+                    // InternalFlaDsl.g:988:1: ( 'all_or_compensation' )
+                    // InternalFlaDsl.g:988:3: 'all_or_compensation'
+                    {
+                    match(input,25,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:993:6: ( ( 'none' ) )
+                    {
+                    // InternalFlaDsl.g:993:6: ( ( 'none' ) )
+                    // InternalFlaDsl.g:994:1: ( 'none' )
+                    {
+                     before(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+                    // InternalFlaDsl.g:995:1: ( 'none' )
+                    // InternalFlaDsl.g:995:3: 'none'
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:1000:6: ( ( 'unspecified' ) )
+                    {
+                    // InternalFlaDsl.g:1000:6: ( ( 'unspecified' ) )
+                    // InternalFlaDsl.g:1001:1: ( 'unspecified' )
+                    {
+                     before(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+                    // InternalFlaDsl.g:1002:1: ( 'unspecified' )
+                    // InternalFlaDsl.g:1002:3: 'unspecified'
+                    {
+                    match(input,20,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Amitigation__Alternatives"
+
+
+    // $ANTLR start "rule__Cmitigation__Alternatives"
+    // InternalFlaDsl.g:1012:1: rule__Cmitigation__Alternatives : ( ( ( 'full_consistency' ) ) | ( ( 'range_violation_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+    public final void rule__Cmitigation__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1016:1: ( ( ( 'full_consistency' ) ) | ( ( 'range_violation_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+            int alt12=4;
+            switch ( input.LA(1) ) {
+            case 26:
+                {
+                alt12=1;
+                }
+                break;
+            case 27:
+                {
+                alt12=2;
+                }
+                break;
+            case 19:
+                {
+                alt12=3;
+                }
+                break;
+            case 20:
+                {
+                alt12=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 12, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt12) {
+                case 1 :
+                    // InternalFlaDsl.g:1017:1: ( ( 'full_consistency' ) )
+                    {
+                    // InternalFlaDsl.g:1017:1: ( ( 'full_consistency' ) )
+                    // InternalFlaDsl.g:1018:1: ( 'full_consistency' )
+                    {
+                     before(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); 
+                    // InternalFlaDsl.g:1019:1: ( 'full_consistency' )
+                    // InternalFlaDsl.g:1019:3: 'full_consistency'
+                    {
+                    match(input,26,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1024:6: ( ( 'range_violation_allowed' ) )
+                    {
+                    // InternalFlaDsl.g:1024:6: ( ( 'range_violation_allowed' ) )
+                    // InternalFlaDsl.g:1025:1: ( 'range_violation_allowed' )
+                    {
+                     before(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); 
+                    // InternalFlaDsl.g:1026:1: ( 'range_violation_allowed' )
+                    // InternalFlaDsl.g:1026:3: 'range_violation_allowed'
+                    {
+                    match(input,27,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1031:6: ( ( 'none' ) )
+                    {
+                    // InternalFlaDsl.g:1031:6: ( ( 'none' ) )
+                    // InternalFlaDsl.g:1032:1: ( 'none' )
+                    {
+                     before(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+                    // InternalFlaDsl.g:1033:1: ( 'none' )
+                    // InternalFlaDsl.g:1033:3: 'none'
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:1038:6: ( ( 'unspecified' ) )
+                    {
+                    // InternalFlaDsl.g:1038:6: ( ( 'unspecified' ) )
+                    // InternalFlaDsl.g:1039:1: ( 'unspecified' )
+                    {
+                     before(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+                    // InternalFlaDsl.g:1040:1: ( 'unspecified' )
+                    // InternalFlaDsl.g:1040:3: 'unspecified'
+                    {
+                    match(input,20,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Cmitigation__Alternatives"
+
+
+    // $ANTLR start "rule__Imitigation__Alternatives"
+    // InternalFlaDsl.g:1050:1: rule__Imitigation__Alternatives : ( ( ( 'serializable' ) ) | ( ( 'portable_level' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+    public final void rule__Imitigation__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1054:1: ( ( ( 'serializable' ) ) | ( ( 'portable_level' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+            int alt13=4;
+            switch ( input.LA(1) ) {
+            case 28:
+                {
+                alt13=1;
+                }
+                break;
+            case 29:
+                {
+                alt13=2;
+                }
+                break;
+            case 19:
+                {
+                alt13=3;
+                }
+                break;
+            case 20:
+                {
+                alt13=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 13, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt13) {
+                case 1 :
+                    // InternalFlaDsl.g:1055:1: ( ( 'serializable' ) )
+                    {
+                    // InternalFlaDsl.g:1055:1: ( ( 'serializable' ) )
+                    // InternalFlaDsl.g:1056:1: ( 'serializable' )
+                    {
+                     before(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); 
+                    // InternalFlaDsl.g:1057:1: ( 'serializable' )
+                    // InternalFlaDsl.g:1057:3: 'serializable'
+                    {
+                    match(input,28,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1062:6: ( ( 'portable_level' ) )
+                    {
+                    // InternalFlaDsl.g:1062:6: ( ( 'portable_level' ) )
+                    // InternalFlaDsl.g:1063:1: ( 'portable_level' )
+                    {
+                     before(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); 
+                    // InternalFlaDsl.g:1064:1: ( 'portable_level' )
+                    // InternalFlaDsl.g:1064:3: 'portable_level'
+                    {
+                    match(input,29,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1069:6: ( ( 'none' ) )
+                    {
+                    // InternalFlaDsl.g:1069:6: ( ( 'none' ) )
+                    // InternalFlaDsl.g:1070:1: ( 'none' )
+                    {
+                     before(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+                    // InternalFlaDsl.g:1071:1: ( 'none' )
+                    // InternalFlaDsl.g:1071:3: 'none'
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:1076:6: ( ( 'unspecified' ) )
+                    {
+                    // InternalFlaDsl.g:1076:6: ( ( 'unspecified' ) )
+                    // InternalFlaDsl.g:1077:1: ( 'unspecified' )
+                    {
+                     before(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+                    // InternalFlaDsl.g:1078:1: ( 'unspecified' )
+                    // InternalFlaDsl.g:1078:3: 'unspecified'
+                    {
+                    match(input,20,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Imitigation__Alternatives"
+
+
+    // $ANTLR start "rule__Dmitigation__Alternatives"
+    // InternalFlaDsl.g:1088:1: rule__Dmitigation__Alternatives : ( ( ( 'no_loss' ) ) | ( ( 'partial_loss_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
+    public final void rule__Dmitigation__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1092:1: ( ( ( 'no_loss' ) ) | ( ( 'partial_loss_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
+            int alt14=4;
+            switch ( input.LA(1) ) {
+            case 30:
+                {
+                alt14=1;
+                }
+                break;
+            case 31:
+                {
+                alt14=2;
+                }
+                break;
+            case 19:
+                {
+                alt14=3;
+                }
+                break;
+            case 20:
+                {
+                alt14=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 14, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt14) {
+                case 1 :
+                    // InternalFlaDsl.g:1093:1: ( ( 'no_loss' ) )
+                    {
+                    // InternalFlaDsl.g:1093:1: ( ( 'no_loss' ) )
+                    // InternalFlaDsl.g:1094:1: ( 'no_loss' )
+                    {
+                     before(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); 
+                    // InternalFlaDsl.g:1095:1: ( 'no_loss' )
+                    // InternalFlaDsl.g:1095:3: 'no_loss'
+                    {
+                    match(input,30,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1100:6: ( ( 'partial_loss_allowed' ) )
+                    {
+                    // InternalFlaDsl.g:1100:6: ( ( 'partial_loss_allowed' ) )
+                    // InternalFlaDsl.g:1101:1: ( 'partial_loss_allowed' )
+                    {
+                     before(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); 
+                    // InternalFlaDsl.g:1102:1: ( 'partial_loss_allowed' )
+                    // InternalFlaDsl.g:1102:3: 'partial_loss_allowed'
+                    {
+                    match(input,31,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1107:6: ( ( 'none' ) )
+                    {
+                    // InternalFlaDsl.g:1107:6: ( ( 'none' ) )
+                    // InternalFlaDsl.g:1108:1: ( 'none' )
+                    {
+                     before(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+                    // InternalFlaDsl.g:1109:1: ( 'none' )
+                    // InternalFlaDsl.g:1109:3: 'none'
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:1114:6: ( ( 'unspecified' ) )
+                    {
+                    // InternalFlaDsl.g:1114:6: ( ( 'unspecified' ) )
+                    // InternalFlaDsl.g:1115:1: ( 'unspecified' )
+                    {
+                     before(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+                    // InternalFlaDsl.g:1116:1: ( 'unspecified' )
+                    // InternalFlaDsl.g:1116:3: 'unspecified'
+                    {
+                    match(input,20,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Dmitigation__Alternatives"
+
+
+    // $ANTLR start "rule__Expression__Group__0"
+    // InternalFlaDsl.g:1128:1: rule__Expression__Group__0 : rule__Expression__Group__0__Impl rule__Expression__Group__1 ;
+    public final void rule__Expression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1132:1: ( rule__Expression__Group__0__Impl rule__Expression__Group__1 )
+            // InternalFlaDsl.g:1133:2: rule__Expression__Group__0__Impl rule__Expression__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__Expression__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Expression__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__0"
+
+
+    // $ANTLR start "rule__Expression__Group__0__Impl"
+    // InternalFlaDsl.g:1140:1: rule__Expression__Group__0__Impl : ( 'FLA:' ) ;
+    public final void rule__Expression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1144:1: ( ( 'FLA:' ) )
+            // InternalFlaDsl.g:1145:1: ( 'FLA:' )
+            {
+            // InternalFlaDsl.g:1145:1: ( 'FLA:' )
+            // InternalFlaDsl.g:1146:1: 'FLA:'
+            {
+             before(grammarAccess.getExpressionAccess().getFLAKeyword_0()); 
+            match(input,32,FOLLOW_2); 
+             after(grammarAccess.getExpressionAccess().getFLAKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Expression__Group__1"
+    // InternalFlaDsl.g:1159:1: rule__Expression__Group__1 : rule__Expression__Group__1__Impl rule__Expression__Group__2 ;
+    public final void rule__Expression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1163:1: ( rule__Expression__Group__1__Impl rule__Expression__Group__2 )
+            // InternalFlaDsl.g:1164:2: rule__Expression__Group__1__Impl rule__Expression__Group__2
+            {
+            pushFollow(FOLLOW_5);
+            rule__Expression__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Expression__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__1"
+
+
+    // $ANTLR start "rule__Expression__Group__1__Impl"
+    // InternalFlaDsl.g:1171:1: rule__Expression__Group__1__Impl : ( ( rule__Expression__LhsAssignment_1 ) ) ;
+    public final void rule__Expression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1175:1: ( ( ( rule__Expression__LhsAssignment_1 ) ) )
+            // InternalFlaDsl.g:1176:1: ( ( rule__Expression__LhsAssignment_1 ) )
+            {
+            // InternalFlaDsl.g:1176:1: ( ( rule__Expression__LhsAssignment_1 ) )
+            // InternalFlaDsl.g:1177:1: ( rule__Expression__LhsAssignment_1 )
+            {
+             before(grammarAccess.getExpressionAccess().getLhsAssignment_1()); 
+            // InternalFlaDsl.g:1178:1: ( rule__Expression__LhsAssignment_1 )
+            // InternalFlaDsl.g:1178:2: rule__Expression__LhsAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Expression__LhsAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExpressionAccess().getLhsAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Expression__Group__2"
+    // InternalFlaDsl.g:1188:1: rule__Expression__Group__2 : rule__Expression__Group__2__Impl rule__Expression__Group__3 ;
+    public final void rule__Expression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1192:1: ( rule__Expression__Group__2__Impl rule__Expression__Group__3 )
+            // InternalFlaDsl.g:1193:2: rule__Expression__Group__2__Impl rule__Expression__Group__3
+            {
+            pushFollow(FOLLOW_4);
+            rule__Expression__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Expression__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__2"
+
+
+    // $ANTLR start "rule__Expression__Group__2__Impl"
+    // InternalFlaDsl.g:1200:1: rule__Expression__Group__2__Impl : ( '->' ) ;
+    public final void rule__Expression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1204:1: ( ( '->' ) )
+            // InternalFlaDsl.g:1205:1: ( '->' )
+            {
+            // InternalFlaDsl.g:1205:1: ( '->' )
+            // InternalFlaDsl.g:1206:1: '->'
+            {
+             before(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2()); 
+            match(input,33,FOLLOW_2); 
+             after(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Expression__Group__3"
+    // InternalFlaDsl.g:1219:1: rule__Expression__Group__3 : rule__Expression__Group__3__Impl rule__Expression__Group__4 ;
+    public final void rule__Expression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1223:1: ( rule__Expression__Group__3__Impl rule__Expression__Group__4 )
+            // InternalFlaDsl.g:1224:2: rule__Expression__Group__3__Impl rule__Expression__Group__4
+            {
+            pushFollow(FOLLOW_6);
+            rule__Expression__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Expression__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__3"
+
+
+    // $ANTLR start "rule__Expression__Group__3__Impl"
+    // InternalFlaDsl.g:1231:1: rule__Expression__Group__3__Impl : ( ( rule__Expression__RhsAssignment_3 ) ) ;
+    public final void rule__Expression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1235:1: ( ( ( rule__Expression__RhsAssignment_3 ) ) )
+            // InternalFlaDsl.g:1236:1: ( ( rule__Expression__RhsAssignment_3 ) )
+            {
+            // InternalFlaDsl.g:1236:1: ( ( rule__Expression__RhsAssignment_3 ) )
+            // InternalFlaDsl.g:1237:1: ( rule__Expression__RhsAssignment_3 )
+            {
+             before(grammarAccess.getExpressionAccess().getRhsAssignment_3()); 
+            // InternalFlaDsl.g:1238:1: ( rule__Expression__RhsAssignment_3 )
+            // InternalFlaDsl.g:1238:2: rule__Expression__RhsAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__Expression__RhsAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExpressionAccess().getRhsAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Expression__Group__4"
+    // InternalFlaDsl.g:1248:1: rule__Expression__Group__4 : rule__Expression__Group__4__Impl ;
+    public final void rule__Expression__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1252:1: ( rule__Expression__Group__4__Impl )
+            // InternalFlaDsl.g:1253:2: rule__Expression__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Expression__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__4"
+
+
+    // $ANTLR start "rule__Expression__Group__4__Impl"
+    // InternalFlaDsl.g:1259:1: rule__Expression__Group__4__Impl : ( ';' ) ;
+    public final void rule__Expression__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1263:1: ( ( ';' ) )
+            // InternalFlaDsl.g:1264:1: ( ';' )
+            {
+            // InternalFlaDsl.g:1264:1: ( ';' )
+            // InternalFlaDsl.g:1265:1: ';'
+            {
+             before(grammarAccess.getExpressionAccess().getSemicolonKeyword_4()); 
+            match(input,34,FOLLOW_2); 
+             after(grammarAccess.getExpressionAccess().getSemicolonKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Lhs__Group__0"
+    // InternalFlaDsl.g:1288:1: rule__Lhs__Group__0 : rule__Lhs__Group__0__Impl rule__Lhs__Group__1 ;
+    public final void rule__Lhs__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1292:1: ( rule__Lhs__Group__0__Impl rule__Lhs__Group__1 )
+            // InternalFlaDsl.g:1293:2: rule__Lhs__Group__0__Impl rule__Lhs__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__Lhs__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Lhs__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__Group__0"
+
+
+    // $ANTLR start "rule__Lhs__Group__0__Impl"
+    // InternalFlaDsl.g:1300:1: rule__Lhs__Group__0__Impl : ( ( rule__Lhs__FailuresAssignment_0 ) ) ;
+    public final void rule__Lhs__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1304:1: ( ( ( rule__Lhs__FailuresAssignment_0 ) ) )
+            // InternalFlaDsl.g:1305:1: ( ( rule__Lhs__FailuresAssignment_0 ) )
+            {
+            // InternalFlaDsl.g:1305:1: ( ( rule__Lhs__FailuresAssignment_0 ) )
+            // InternalFlaDsl.g:1306:1: ( rule__Lhs__FailuresAssignment_0 )
+            {
+             before(grammarAccess.getLhsAccess().getFailuresAssignment_0()); 
+            // InternalFlaDsl.g:1307:1: ( rule__Lhs__FailuresAssignment_0 )
+            // InternalFlaDsl.g:1307:2: rule__Lhs__FailuresAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Lhs__FailuresAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLhsAccess().getFailuresAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Lhs__Group__1"
+    // InternalFlaDsl.g:1317:1: rule__Lhs__Group__1 : rule__Lhs__Group__1__Impl ;
+    public final void rule__Lhs__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1321:1: ( rule__Lhs__Group__1__Impl )
+            // InternalFlaDsl.g:1322:2: rule__Lhs__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Lhs__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__Group__1"
+
+
+    // $ANTLR start "rule__Lhs__Group__1__Impl"
+    // InternalFlaDsl.g:1328:1: rule__Lhs__Group__1__Impl : ( ( rule__Lhs__Group_1__0 )* ) ;
+    public final void rule__Lhs__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1332:1: ( ( ( rule__Lhs__Group_1__0 )* ) )
+            // InternalFlaDsl.g:1333:1: ( ( rule__Lhs__Group_1__0 )* )
+            {
+            // InternalFlaDsl.g:1333:1: ( ( rule__Lhs__Group_1__0 )* )
+            // InternalFlaDsl.g:1334:1: ( rule__Lhs__Group_1__0 )*
+            {
+             before(grammarAccess.getLhsAccess().getGroup_1()); 
+            // InternalFlaDsl.g:1335:1: ( rule__Lhs__Group_1__0 )*
+            loop15:
+            do {
+                int alt15=2;
+                int LA15_0 = input.LA(1);
+
+                if ( (LA15_0==35) ) {
+                    alt15=1;
+                }
+
+
+                switch (alt15) {
+            	case 1 :
+            	    // InternalFlaDsl.g:1335:2: rule__Lhs__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_8);
+            	    rule__Lhs__Group_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop15;
+                }
+            } while (true);
+
+             after(grammarAccess.getLhsAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Lhs__Group_1__0"
+    // InternalFlaDsl.g:1349:1: rule__Lhs__Group_1__0 : rule__Lhs__Group_1__0__Impl rule__Lhs__Group_1__1 ;
+    public final void rule__Lhs__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1353:1: ( rule__Lhs__Group_1__0__Impl rule__Lhs__Group_1__1 )
+            // InternalFlaDsl.g:1354:2: rule__Lhs__Group_1__0__Impl rule__Lhs__Group_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__Lhs__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Lhs__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__Group_1__0"
+
+
+    // $ANTLR start "rule__Lhs__Group_1__0__Impl"
+    // InternalFlaDsl.g:1361:1: rule__Lhs__Group_1__0__Impl : ( ',' ) ;
+    public final void rule__Lhs__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1365:1: ( ( ',' ) )
+            // InternalFlaDsl.g:1366:1: ( ',' )
+            {
+            // InternalFlaDsl.g:1366:1: ( ',' )
+            // InternalFlaDsl.g:1367:1: ','
+            {
+             before(grammarAccess.getLhsAccess().getCommaKeyword_1_0()); 
+            match(input,35,FOLLOW_2); 
+             after(grammarAccess.getLhsAccess().getCommaKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__Lhs__Group_1__1"
+    // InternalFlaDsl.g:1380:1: rule__Lhs__Group_1__1 : rule__Lhs__Group_1__1__Impl ;
+    public final void rule__Lhs__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1384:1: ( rule__Lhs__Group_1__1__Impl )
+            // InternalFlaDsl.g:1385:2: rule__Lhs__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Lhs__Group_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__Group_1__1"
+
+
+    // $ANTLR start "rule__Lhs__Group_1__1__Impl"
+    // InternalFlaDsl.g:1391:1: rule__Lhs__Group_1__1__Impl : ( ( rule__Lhs__FailuresAssignment_1_1 ) ) ;
+    public final void rule__Lhs__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1395:1: ( ( ( rule__Lhs__FailuresAssignment_1_1 ) ) )
+            // InternalFlaDsl.g:1396:1: ( ( rule__Lhs__FailuresAssignment_1_1 ) )
+            {
+            // InternalFlaDsl.g:1396:1: ( ( rule__Lhs__FailuresAssignment_1_1 ) )
+            // InternalFlaDsl.g:1397:1: ( rule__Lhs__FailuresAssignment_1_1 )
+            {
+             before(grammarAccess.getLhsAccess().getFailuresAssignment_1_1()); 
+            // InternalFlaDsl.g:1398:1: ( rule__Lhs__FailuresAssignment_1_1 )
+            // InternalFlaDsl.g:1398:2: rule__Lhs__FailuresAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Lhs__FailuresAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLhsAccess().getFailuresAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__Rhs__Group__0"
+    // InternalFlaDsl.g:1412:1: rule__Rhs__Group__0 : rule__Rhs__Group__0__Impl rule__Rhs__Group__1 ;
+    public final void rule__Rhs__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1416:1: ( rule__Rhs__Group__0__Impl rule__Rhs__Group__1 )
+            // InternalFlaDsl.g:1417:2: rule__Rhs__Group__0__Impl rule__Rhs__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__Rhs__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Rhs__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__Group__0"
+
+
+    // $ANTLR start "rule__Rhs__Group__0__Impl"
+    // InternalFlaDsl.g:1424:1: rule__Rhs__Group__0__Impl : ( ( rule__Rhs__FailuresAssignment_0 ) ) ;
+    public final void rule__Rhs__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1428:1: ( ( ( rule__Rhs__FailuresAssignment_0 ) ) )
+            // InternalFlaDsl.g:1429:1: ( ( rule__Rhs__FailuresAssignment_0 ) )
+            {
+            // InternalFlaDsl.g:1429:1: ( ( rule__Rhs__FailuresAssignment_0 ) )
+            // InternalFlaDsl.g:1430:1: ( rule__Rhs__FailuresAssignment_0 )
+            {
+             before(grammarAccess.getRhsAccess().getFailuresAssignment_0()); 
+            // InternalFlaDsl.g:1431:1: ( rule__Rhs__FailuresAssignment_0 )
+            // InternalFlaDsl.g:1431:2: rule__Rhs__FailuresAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Rhs__FailuresAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRhsAccess().getFailuresAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Rhs__Group__1"
+    // InternalFlaDsl.g:1441:1: rule__Rhs__Group__1 : rule__Rhs__Group__1__Impl ;
+    public final void rule__Rhs__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1445:1: ( rule__Rhs__Group__1__Impl )
+            // InternalFlaDsl.g:1446:2: rule__Rhs__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Rhs__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__Group__1"
+
+
+    // $ANTLR start "rule__Rhs__Group__1__Impl"
+    // InternalFlaDsl.g:1452:1: rule__Rhs__Group__1__Impl : ( ( rule__Rhs__Group_1__0 )* ) ;
+    public final void rule__Rhs__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1456:1: ( ( ( rule__Rhs__Group_1__0 )* ) )
+            // InternalFlaDsl.g:1457:1: ( ( rule__Rhs__Group_1__0 )* )
+            {
+            // InternalFlaDsl.g:1457:1: ( ( rule__Rhs__Group_1__0 )* )
+            // InternalFlaDsl.g:1458:1: ( rule__Rhs__Group_1__0 )*
+            {
+             before(grammarAccess.getRhsAccess().getGroup_1()); 
+            // InternalFlaDsl.g:1459:1: ( rule__Rhs__Group_1__0 )*
+            loop16:
+            do {
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+
+                if ( (LA16_0==35) ) {
+                    alt16=1;
+                }
+
+
+                switch (alt16) {
+            	case 1 :
+            	    // InternalFlaDsl.g:1459:2: rule__Rhs__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_8);
+            	    rule__Rhs__Group_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop16;
+                }
+            } while (true);
+
+             after(grammarAccess.getRhsAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Rhs__Group_1__0"
+    // InternalFlaDsl.g:1473:1: rule__Rhs__Group_1__0 : rule__Rhs__Group_1__0__Impl rule__Rhs__Group_1__1 ;
+    public final void rule__Rhs__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1477:1: ( rule__Rhs__Group_1__0__Impl rule__Rhs__Group_1__1 )
+            // InternalFlaDsl.g:1478:2: rule__Rhs__Group_1__0__Impl rule__Rhs__Group_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__Rhs__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Rhs__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__Group_1__0"
+
+
+    // $ANTLR start "rule__Rhs__Group_1__0__Impl"
+    // InternalFlaDsl.g:1485:1: rule__Rhs__Group_1__0__Impl : ( ',' ) ;
+    public final void rule__Rhs__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1489:1: ( ( ',' ) )
+            // InternalFlaDsl.g:1490:1: ( ',' )
+            {
+            // InternalFlaDsl.g:1490:1: ( ',' )
+            // InternalFlaDsl.g:1491:1: ','
+            {
+             before(grammarAccess.getRhsAccess().getCommaKeyword_1_0()); 
+            match(input,35,FOLLOW_2); 
+             after(grammarAccess.getRhsAccess().getCommaKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__Rhs__Group_1__1"
+    // InternalFlaDsl.g:1504:1: rule__Rhs__Group_1__1 : rule__Rhs__Group_1__1__Impl ;
+    public final void rule__Rhs__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1508:1: ( rule__Rhs__Group_1__1__Impl )
+            // InternalFlaDsl.g:1509:2: rule__Rhs__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Rhs__Group_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__Group_1__1"
+
+
+    // $ANTLR start "rule__Rhs__Group_1__1__Impl"
+    // InternalFlaDsl.g:1515:1: rule__Rhs__Group_1__1__Impl : ( ( rule__Rhs__FailuresAssignment_1_1 ) ) ;
+    public final void rule__Rhs__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1519:1: ( ( ( rule__Rhs__FailuresAssignment_1_1 ) ) )
+            // InternalFlaDsl.g:1520:1: ( ( rule__Rhs__FailuresAssignment_1_1 ) )
+            {
+            // InternalFlaDsl.g:1520:1: ( ( rule__Rhs__FailuresAssignment_1_1 ) )
+            // InternalFlaDsl.g:1521:1: ( rule__Rhs__FailuresAssignment_1_1 )
+            {
+             before(grammarAccess.getRhsAccess().getFailuresAssignment_1_1()); 
+            // InternalFlaDsl.g:1522:1: ( rule__Rhs__FailuresAssignment_1_1 )
+            // InternalFlaDsl.g:1522:2: rule__Rhs__FailuresAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Rhs__FailuresAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRhsAccess().getFailuresAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__InputExpression__Group__0"
+    // InternalFlaDsl.g:1536:1: rule__InputExpression__Group__0 : rule__InputExpression__Group__0__Impl rule__InputExpression__Group__1 ;
+    public final void rule__InputExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1540:1: ( rule__InputExpression__Group__0__Impl rule__InputExpression__Group__1 )
+            // InternalFlaDsl.g:1541:2: rule__InputExpression__Group__0__Impl rule__InputExpression__Group__1
+            {
+            pushFollow(FOLLOW_9);
+            rule__InputExpression__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__InputExpression__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InputExpression__Group__0"
+
+
+    // $ANTLR start "rule__InputExpression__Group__0__Impl"
+    // InternalFlaDsl.g:1548:1: rule__InputExpression__Group__0__Impl : ( ( rule__InputExpression__Alternatives_0 ) ) ;
+    public final void rule__InputExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1552:1: ( ( ( rule__InputExpression__Alternatives_0 ) ) )
+            // InternalFlaDsl.g:1553:1: ( ( rule__InputExpression__Alternatives_0 ) )
+            {
+            // InternalFlaDsl.g:1553:1: ( ( rule__InputExpression__Alternatives_0 ) )
+            // InternalFlaDsl.g:1554:1: ( rule__InputExpression__Alternatives_0 )
+            {
+             before(grammarAccess.getInputExpressionAccess().getAlternatives_0()); 
+            // InternalFlaDsl.g:1555:1: ( rule__InputExpression__Alternatives_0 )
+            // InternalFlaDsl.g:1555:2: rule__InputExpression__Alternatives_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__InputExpression__Alternatives_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getInputExpressionAccess().getAlternatives_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InputExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__InputExpression__Group__1"
+    // InternalFlaDsl.g:1565:1: rule__InputExpression__Group__1 : rule__InputExpression__Group__1__Impl rule__InputExpression__Group__2 ;
+    public final void rule__InputExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1569:1: ( rule__InputExpression__Group__1__Impl rule__InputExpression__Group__2 )
+            // InternalFlaDsl.g:1570:2: rule__InputExpression__Group__1__Impl rule__InputExpression__Group__2
+            {
+            pushFollow(FOLLOW_10);
+            rule__InputExpression__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__InputExpression__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InputExpression__Group__1"
+
+
+    // $ANTLR start "rule__InputExpression__Group__1__Impl"
+    // InternalFlaDsl.g:1577:1: rule__InputExpression__Group__1__Impl : ( '.' ) ;
+    public final void rule__InputExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1581:1: ( ( '.' ) )
+            // InternalFlaDsl.g:1582:1: ( '.' )
+            {
+            // InternalFlaDsl.g:1582:1: ( '.' )
+            // InternalFlaDsl.g:1583:1: '.'
+            {
+             before(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InputExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__InputExpression__Group__2"
+    // InternalFlaDsl.g:1596:1: rule__InputExpression__Group__2 : rule__InputExpression__Group__2__Impl ;
+    public final void rule__InputExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1600:1: ( rule__InputExpression__Group__2__Impl )
+            // InternalFlaDsl.g:1601:2: rule__InputExpression__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__InputExpression__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InputExpression__Group__2"
+
+
+    // $ANTLR start "rule__InputExpression__Group__2__Impl"
+    // InternalFlaDsl.g:1607:1: rule__InputExpression__Group__2__Impl : ( ( rule__InputExpression__FailureExprAssignment_2 ) ) ;
+    public final void rule__InputExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1611:1: ( ( ( rule__InputExpression__FailureExprAssignment_2 ) ) )
+            // InternalFlaDsl.g:1612:1: ( ( rule__InputExpression__FailureExprAssignment_2 ) )
+            {
+            // InternalFlaDsl.g:1612:1: ( ( rule__InputExpression__FailureExprAssignment_2 ) )
+            // InternalFlaDsl.g:1613:1: ( rule__InputExpression__FailureExprAssignment_2 )
+            {
+             before(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2()); 
+            // InternalFlaDsl.g:1614:1: ( rule__InputExpression__FailureExprAssignment_2 )
+            // InternalFlaDsl.g:1614:2: rule__InputExpression__FailureExprAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__InputExpression__FailureExprAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InputExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__OutputExpression__Group__0"
+    // InternalFlaDsl.g:1630:1: rule__OutputExpression__Group__0 : rule__OutputExpression__Group__0__Impl rule__OutputExpression__Group__1 ;
+    public final void rule__OutputExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1634:1: ( rule__OutputExpression__Group__0__Impl rule__OutputExpression__Group__1 )
+            // InternalFlaDsl.g:1635:2: rule__OutputExpression__Group__0__Impl rule__OutputExpression__Group__1
+            {
+            pushFollow(FOLLOW_9);
+            rule__OutputExpression__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__OutputExpression__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutputExpression__Group__0"
+
+
+    // $ANTLR start "rule__OutputExpression__Group__0__Impl"
+    // InternalFlaDsl.g:1642:1: rule__OutputExpression__Group__0__Impl : ( ( rule__OutputExpression__Alternatives_0 ) ) ;
+    public final void rule__OutputExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1646:1: ( ( ( rule__OutputExpression__Alternatives_0 ) ) )
+            // InternalFlaDsl.g:1647:1: ( ( rule__OutputExpression__Alternatives_0 ) )
+            {
+            // InternalFlaDsl.g:1647:1: ( ( rule__OutputExpression__Alternatives_0 ) )
+            // InternalFlaDsl.g:1648:1: ( rule__OutputExpression__Alternatives_0 )
+            {
+             before(grammarAccess.getOutputExpressionAccess().getAlternatives_0()); 
+            // InternalFlaDsl.g:1649:1: ( rule__OutputExpression__Alternatives_0 )
+            // InternalFlaDsl.g:1649:2: rule__OutputExpression__Alternatives_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__OutputExpression__Alternatives_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOutputExpressionAccess().getAlternatives_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutputExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__OutputExpression__Group__1"
+    // InternalFlaDsl.g:1659:1: rule__OutputExpression__Group__1 : rule__OutputExpression__Group__1__Impl rule__OutputExpression__Group__2 ;
+    public final void rule__OutputExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1663:1: ( rule__OutputExpression__Group__1__Impl rule__OutputExpression__Group__2 )
+            // InternalFlaDsl.g:1664:2: rule__OutputExpression__Group__1__Impl rule__OutputExpression__Group__2
+            {
+            pushFollow(FOLLOW_10);
+            rule__OutputExpression__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__OutputExpression__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutputExpression__Group__1"
+
+
+    // $ANTLR start "rule__OutputExpression__Group__1__Impl"
+    // InternalFlaDsl.g:1671:1: rule__OutputExpression__Group__1__Impl : ( '.' ) ;
+    public final void rule__OutputExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1675:1: ( ( '.' ) )
+            // InternalFlaDsl.g:1676:1: ( '.' )
+            {
+            // InternalFlaDsl.g:1676:1: ( '.' )
+            // InternalFlaDsl.g:1677:1: '.'
+            {
+             before(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutputExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__OutputExpression__Group__2"
+    // InternalFlaDsl.g:1690:1: rule__OutputExpression__Group__2 : rule__OutputExpression__Group__2__Impl ;
+    public final void rule__OutputExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1694:1: ( rule__OutputExpression__Group__2__Impl )
+            // InternalFlaDsl.g:1695:2: rule__OutputExpression__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OutputExpression__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutputExpression__Group__2"
+
+
+    // $ANTLR start "rule__OutputExpression__Group__2__Impl"
+    // InternalFlaDsl.g:1701:1: rule__OutputExpression__Group__2__Impl : ( ( rule__OutputExpression__FailureExprAssignment_2 ) ) ;
+    public final void rule__OutputExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1705:1: ( ( ( rule__OutputExpression__FailureExprAssignment_2 ) ) )
+            // InternalFlaDsl.g:1706:1: ( ( rule__OutputExpression__FailureExprAssignment_2 ) )
+            {
+            // InternalFlaDsl.g:1706:1: ( ( rule__OutputExpression__FailureExprAssignment_2 ) )
+            // InternalFlaDsl.g:1707:1: ( rule__OutputExpression__FailureExprAssignment_2 )
+            {
+             before(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2()); 
+            // InternalFlaDsl.g:1708:1: ( rule__OutputExpression__FailureExprAssignment_2 )
+            // InternalFlaDsl.g:1708:2: rule__OutputExpression__FailureExprAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__OutputExpression__FailureExprAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutputExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3__0"
+    // InternalFlaDsl.g:1724:1: rule__InFailureExpr__Group_3__0 : rule__InFailureExpr__Group_3__0__Impl rule__InFailureExpr__Group_3__1 ;
+    public final void rule__InFailureExpr__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1728:1: ( rule__InFailureExpr__Group_3__0__Impl rule__InFailureExpr__Group_3__1 )
+            // InternalFlaDsl.g:1729:2: rule__InFailureExpr__Group_3__0__Impl rule__InFailureExpr__Group_3__1
+            {
+            pushFollow(FOLLOW_11);
+            rule__InFailureExpr__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__InFailureExpr__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3__0"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3__0__Impl"
+    // InternalFlaDsl.g:1736:1: rule__InFailureExpr__Group_3__0__Impl : ( '{' ) ;
+    public final void rule__InFailureExpr__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1740:1: ( ( '{' ) )
+            // InternalFlaDsl.g:1741:1: ( '{' )
+            {
+            // InternalFlaDsl.g:1741:1: ( '{' )
+            // InternalFlaDsl.g:1742:1: '{'
+            {
+             before(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); 
+            match(input,37,FOLLOW_2); 
+             after(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3__1"
+    // InternalFlaDsl.g:1755:1: rule__InFailureExpr__Group_3__1 : rule__InFailureExpr__Group_3__1__Impl rule__InFailureExpr__Group_3__2 ;
+    public final void rule__InFailureExpr__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1759:1: ( rule__InFailureExpr__Group_3__1__Impl rule__InFailureExpr__Group_3__2 )
+            // InternalFlaDsl.g:1760:2: rule__InFailureExpr__Group_3__1__Impl rule__InFailureExpr__Group_3__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__InFailureExpr__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__InFailureExpr__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3__1"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3__1__Impl"
+    // InternalFlaDsl.g:1767:1: rule__InFailureExpr__Group_3__1__Impl : ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) ) ;
+    public final void rule__InFailureExpr__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1771:1: ( ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) ) )
+            // InternalFlaDsl.g:1772:1: ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) )
+            {
+            // InternalFlaDsl.g:1772:1: ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) )
+            // InternalFlaDsl.g:1773:1: ( rule__InFailureExpr__FailuresAssignment_3_1 )
+            {
+             before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1()); 
+            // InternalFlaDsl.g:1774:1: ( rule__InFailureExpr__FailuresAssignment_3_1 )
+            // InternalFlaDsl.g:1774:2: rule__InFailureExpr__FailuresAssignment_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__InFailureExpr__FailuresAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3__2"
+    // InternalFlaDsl.g:1784:1: rule__InFailureExpr__Group_3__2 : rule__InFailureExpr__Group_3__2__Impl rule__InFailureExpr__Group_3__3 ;
+    public final void rule__InFailureExpr__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1788:1: ( rule__InFailureExpr__Group_3__2__Impl rule__InFailureExpr__Group_3__3 )
+            // InternalFlaDsl.g:1789:2: rule__InFailureExpr__Group_3__2__Impl rule__InFailureExpr__Group_3__3
+            {
+            pushFollow(FOLLOW_12);
+            rule__InFailureExpr__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__InFailureExpr__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3__2"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3__2__Impl"
+    // InternalFlaDsl.g:1796:1: rule__InFailureExpr__Group_3__2__Impl : ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) ) ;
+    public final void rule__InFailureExpr__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1800:1: ( ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) ) )
+            // InternalFlaDsl.g:1801:1: ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) )
+            {
+            // InternalFlaDsl.g:1801:1: ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) )
+            // InternalFlaDsl.g:1802:1: ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* )
+            {
+            // InternalFlaDsl.g:1802:1: ( ( rule__InFailureExpr__Group_3_2__0 ) )
+            // InternalFlaDsl.g:1803:1: ( rule__InFailureExpr__Group_3_2__0 )
+            {
+             before(grammarAccess.getInFailureExprAccess().getGroup_3_2()); 
+            // InternalFlaDsl.g:1804:1: ( rule__InFailureExpr__Group_3_2__0 )
+            // InternalFlaDsl.g:1804:2: rule__InFailureExpr__Group_3_2__0
+            {
+            pushFollow(FOLLOW_8);
+            rule__InFailureExpr__Group_3_2__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getInFailureExprAccess().getGroup_3_2()); 
+
+            }
+
+            // InternalFlaDsl.g:1807:1: ( ( rule__InFailureExpr__Group_3_2__0 )* )
+            // InternalFlaDsl.g:1808:1: ( rule__InFailureExpr__Group_3_2__0 )*
+            {
+             before(grammarAccess.getInFailureExprAccess().getGroup_3_2()); 
+            // InternalFlaDsl.g:1809:1: ( rule__InFailureExpr__Group_3_2__0 )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( (LA17_0==35) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+            	case 1 :
+            	    // InternalFlaDsl.g:1809:2: rule__InFailureExpr__Group_3_2__0
+            	    {
+            	    pushFollow(FOLLOW_8);
+            	    rule__InFailureExpr__Group_3_2__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop17;
+                }
+            } while (true);
+
+             after(grammarAccess.getInFailureExprAccess().getGroup_3_2()); 
+
+            }
+
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3__3"
+    // InternalFlaDsl.g:1820:1: rule__InFailureExpr__Group_3__3 : rule__InFailureExpr__Group_3__3__Impl ;
+    public final void rule__InFailureExpr__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1824:1: ( rule__InFailureExpr__Group_3__3__Impl )
+            // InternalFlaDsl.g:1825:2: rule__InFailureExpr__Group_3__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__InFailureExpr__Group_3__3__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3__3"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3__3__Impl"
+    // InternalFlaDsl.g:1831:1: rule__InFailureExpr__Group_3__3__Impl : ( '}' ) ;
+    public final void rule__InFailureExpr__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1835:1: ( ( '}' ) )
+            // InternalFlaDsl.g:1836:1: ( '}' )
+            {
+            // InternalFlaDsl.g:1836:1: ( '}' )
+            // InternalFlaDsl.g:1837:1: '}'
+            {
+             before(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3()); 
+            match(input,38,FOLLOW_2); 
+             after(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3_2__0"
+    // InternalFlaDsl.g:1858:1: rule__InFailureExpr__Group_3_2__0 : rule__InFailureExpr__Group_3_2__0__Impl rule__InFailureExpr__Group_3_2__1 ;
+    public final void rule__InFailureExpr__Group_3_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1862:1: ( rule__InFailureExpr__Group_3_2__0__Impl rule__InFailureExpr__Group_3_2__1 )
+            // InternalFlaDsl.g:1863:2: rule__InFailureExpr__Group_3_2__0__Impl rule__InFailureExpr__Group_3_2__1
+            {
+            pushFollow(FOLLOW_11);
+            rule__InFailureExpr__Group_3_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__InFailureExpr__Group_3_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3_2__0"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3_2__0__Impl"
+    // InternalFlaDsl.g:1870:1: rule__InFailureExpr__Group_3_2__0__Impl : ( ',' ) ;
+    public final void rule__InFailureExpr__Group_3_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1874:1: ( ( ',' ) )
+            // InternalFlaDsl.g:1875:1: ( ',' )
+            {
+            // InternalFlaDsl.g:1875:1: ( ',' )
+            // InternalFlaDsl.g:1876:1: ','
+            {
+             before(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0()); 
+            match(input,35,FOLLOW_2); 
+             after(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3_2__0__Impl"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3_2__1"
+    // InternalFlaDsl.g:1889:1: rule__InFailureExpr__Group_3_2__1 : rule__InFailureExpr__Group_3_2__1__Impl ;
+    public final void rule__InFailureExpr__Group_3_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1893:1: ( rule__InFailureExpr__Group_3_2__1__Impl )
+            // InternalFlaDsl.g:1894:2: rule__InFailureExpr__Group_3_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__InFailureExpr__Group_3_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3_2__1"
+
+
+    // $ANTLR start "rule__InFailureExpr__Group_3_2__1__Impl"
+    // InternalFlaDsl.g:1900:1: rule__InFailureExpr__Group_3_2__1__Impl : ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) ) ;
+    public final void rule__InFailureExpr__Group_3_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1904:1: ( ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) ) )
+            // InternalFlaDsl.g:1905:1: ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) )
+            {
+            // InternalFlaDsl.g:1905:1: ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) )
+            // InternalFlaDsl.g:1906:1: ( rule__InFailureExpr__FailuresAssignment_3_2_1 )
+            {
+             before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1()); 
+            // InternalFlaDsl.g:1907:1: ( rule__InFailureExpr__FailuresAssignment_3_2_1 )
+            // InternalFlaDsl.g:1907:2: rule__InFailureExpr__FailuresAssignment_3_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__InFailureExpr__FailuresAssignment_3_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__Group_3_2__1__Impl"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3__0"
+    // InternalFlaDsl.g:1921:1: rule__OutFailureExpr__Group_3__0 : rule__OutFailureExpr__Group_3__0__Impl rule__OutFailureExpr__Group_3__1 ;
+    public final void rule__OutFailureExpr__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1925:1: ( rule__OutFailureExpr__Group_3__0__Impl rule__OutFailureExpr__Group_3__1 )
+            // InternalFlaDsl.g:1926:2: rule__OutFailureExpr__Group_3__0__Impl rule__OutFailureExpr__Group_3__1
+            {
+            pushFollow(FOLLOW_11);
+            rule__OutFailureExpr__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__OutFailureExpr__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3__0"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3__0__Impl"
+    // InternalFlaDsl.g:1933:1: rule__OutFailureExpr__Group_3__0__Impl : ( '{' ) ;
+    public final void rule__OutFailureExpr__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1937:1: ( ( '{' ) )
+            // InternalFlaDsl.g:1938:1: ( '{' )
+            {
+            // InternalFlaDsl.g:1938:1: ( '{' )
+            // InternalFlaDsl.g:1939:1: '{'
+            {
+             before(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); 
+            match(input,37,FOLLOW_2); 
+             after(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3__1"
+    // InternalFlaDsl.g:1952:1: rule__OutFailureExpr__Group_3__1 : rule__OutFailureExpr__Group_3__1__Impl rule__OutFailureExpr__Group_3__2 ;
+    public final void rule__OutFailureExpr__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1956:1: ( rule__OutFailureExpr__Group_3__1__Impl rule__OutFailureExpr__Group_3__2 )
+            // InternalFlaDsl.g:1957:2: rule__OutFailureExpr__Group_3__1__Impl rule__OutFailureExpr__Group_3__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__OutFailureExpr__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__OutFailureExpr__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3__1"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3__1__Impl"
+    // InternalFlaDsl.g:1964:1: rule__OutFailureExpr__Group_3__1__Impl : ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) ) ;
+    public final void rule__OutFailureExpr__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1968:1: ( ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) ) )
+            // InternalFlaDsl.g:1969:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) )
+            {
+            // InternalFlaDsl.g:1969:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) )
+            // InternalFlaDsl.g:1970:1: ( rule__OutFailureExpr__FailuresAssignment_3_1 )
+            {
+             before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1()); 
+            // InternalFlaDsl.g:1971:1: ( rule__OutFailureExpr__FailuresAssignment_3_1 )
+            // InternalFlaDsl.g:1971:2: rule__OutFailureExpr__FailuresAssignment_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__OutFailureExpr__FailuresAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3__2"
+    // InternalFlaDsl.g:1981:1: rule__OutFailureExpr__Group_3__2 : rule__OutFailureExpr__Group_3__2__Impl rule__OutFailureExpr__Group_3__3 ;
+    public final void rule__OutFailureExpr__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1985:1: ( rule__OutFailureExpr__Group_3__2__Impl rule__OutFailureExpr__Group_3__3 )
+            // InternalFlaDsl.g:1986:2: rule__OutFailureExpr__Group_3__2__Impl rule__OutFailureExpr__Group_3__3
+            {
+            pushFollow(FOLLOW_12);
+            rule__OutFailureExpr__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__OutFailureExpr__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3__2"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3__2__Impl"
+    // InternalFlaDsl.g:1993:1: rule__OutFailureExpr__Group_3__2__Impl : ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) ) ;
+    public final void rule__OutFailureExpr__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:1997:1: ( ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) ) )
+            // InternalFlaDsl.g:1998:1: ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) )
+            {
+            // InternalFlaDsl.g:1998:1: ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) )
+            // InternalFlaDsl.g:1999:1: ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* )
+            {
+            // InternalFlaDsl.g:1999:1: ( ( rule__OutFailureExpr__Group_3_2__0 ) )
+            // InternalFlaDsl.g:2000:1: ( rule__OutFailureExpr__Group_3_2__0 )
+            {
+             before(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); 
+            // InternalFlaDsl.g:2001:1: ( rule__OutFailureExpr__Group_3_2__0 )
+            // InternalFlaDsl.g:2001:2: rule__OutFailureExpr__Group_3_2__0
+            {
+            pushFollow(FOLLOW_8);
+            rule__OutFailureExpr__Group_3_2__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); 
+
+            }
+
+            // InternalFlaDsl.g:2004:1: ( ( rule__OutFailureExpr__Group_3_2__0 )* )
+            // InternalFlaDsl.g:2005:1: ( rule__OutFailureExpr__Group_3_2__0 )*
+            {
+             before(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); 
+            // InternalFlaDsl.g:2006:1: ( rule__OutFailureExpr__Group_3_2__0 )*
+            loop18:
+            do {
+                int alt18=2;
+                int LA18_0 = input.LA(1);
+
+                if ( (LA18_0==35) ) {
+                    alt18=1;
+                }
+
+
+                switch (alt18) {
+            	case 1 :
+            	    // InternalFlaDsl.g:2006:2: rule__OutFailureExpr__Group_3_2__0
+            	    {
+            	    pushFollow(FOLLOW_8);
+            	    rule__OutFailureExpr__Group_3_2__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop18;
+                }
+            } while (true);
+
+             after(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); 
+
+            }
+
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3__3"
+    // InternalFlaDsl.g:2017:1: rule__OutFailureExpr__Group_3__3 : rule__OutFailureExpr__Group_3__3__Impl ;
+    public final void rule__OutFailureExpr__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2021:1: ( rule__OutFailureExpr__Group_3__3__Impl )
+            // InternalFlaDsl.g:2022:2: rule__OutFailureExpr__Group_3__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OutFailureExpr__Group_3__3__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3__3"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3__3__Impl"
+    // InternalFlaDsl.g:2028:1: rule__OutFailureExpr__Group_3__3__Impl : ( '}' ) ;
+    public final void rule__OutFailureExpr__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2032:1: ( ( '}' ) )
+            // InternalFlaDsl.g:2033:1: ( '}' )
+            {
+            // InternalFlaDsl.g:2033:1: ( '}' )
+            // InternalFlaDsl.g:2034:1: '}'
+            {
+             before(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3()); 
+            match(input,38,FOLLOW_2); 
+             after(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3_2__0"
+    // InternalFlaDsl.g:2055:1: rule__OutFailureExpr__Group_3_2__0 : rule__OutFailureExpr__Group_3_2__0__Impl rule__OutFailureExpr__Group_3_2__1 ;
+    public final void rule__OutFailureExpr__Group_3_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2059:1: ( rule__OutFailureExpr__Group_3_2__0__Impl rule__OutFailureExpr__Group_3_2__1 )
+            // InternalFlaDsl.g:2060:2: rule__OutFailureExpr__Group_3_2__0__Impl rule__OutFailureExpr__Group_3_2__1
+            {
+            pushFollow(FOLLOW_11);
+            rule__OutFailureExpr__Group_3_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__OutFailureExpr__Group_3_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3_2__0"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3_2__0__Impl"
+    // InternalFlaDsl.g:2067:1: rule__OutFailureExpr__Group_3_2__0__Impl : ( ',' ) ;
+    public final void rule__OutFailureExpr__Group_3_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2071:1: ( ( ',' ) )
+            // InternalFlaDsl.g:2072:1: ( ',' )
+            {
+            // InternalFlaDsl.g:2072:1: ( ',' )
+            // InternalFlaDsl.g:2073:1: ','
+            {
+             before(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0()); 
+            match(input,35,FOLLOW_2); 
+             after(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3_2__0__Impl"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3_2__1"
+    // InternalFlaDsl.g:2086:1: rule__OutFailureExpr__Group_3_2__1 : rule__OutFailureExpr__Group_3_2__1__Impl ;
+    public final void rule__OutFailureExpr__Group_3_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2090:1: ( rule__OutFailureExpr__Group_3_2__1__Impl )
+            // InternalFlaDsl.g:2091:2: rule__OutFailureExpr__Group_3_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OutFailureExpr__Group_3_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3_2__1"
+
+
+    // $ANTLR start "rule__OutFailureExpr__Group_3_2__1__Impl"
+    // InternalFlaDsl.g:2097:1: rule__OutFailureExpr__Group_3_2__1__Impl : ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) ) ;
+    public final void rule__OutFailureExpr__Group_3_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2101:1: ( ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) ) )
+            // InternalFlaDsl.g:2102:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) )
+            {
+            // InternalFlaDsl.g:2102:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) )
+            // InternalFlaDsl.g:2103:1: ( rule__OutFailureExpr__FailuresAssignment_3_2_1 )
+            {
+             before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1()); 
+            // InternalFlaDsl.g:2104:1: ( rule__OutFailureExpr__FailuresAssignment_3_2_1 )
+            // InternalFlaDsl.g:2104:2: rule__OutFailureExpr__FailuresAssignment_3_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__OutFailureExpr__FailuresAssignment_3_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__Group_3_2__1__Impl"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group__0"
+    // InternalFlaDsl.g:2118:1: rule__FailureDefinition__Group__0 : rule__FailureDefinition__Group__0__Impl rule__FailureDefinition__Group__1 ;
+    public final void rule__FailureDefinition__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2122:1: ( rule__FailureDefinition__Group__0__Impl rule__FailureDefinition__Group__1 )
+            // InternalFlaDsl.g:2123:2: rule__FailureDefinition__Group__0__Impl rule__FailureDefinition__Group__1
+            {
+            pushFollow(FOLLOW_11);
+            rule__FailureDefinition__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__FailureDefinition__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group__0"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group__0__Impl"
+    // InternalFlaDsl.g:2130:1: rule__FailureDefinition__Group__0__Impl : ( () ) ;
+    public final void rule__FailureDefinition__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2134:1: ( ( () ) )
+            // InternalFlaDsl.g:2135:1: ( () )
+            {
+            // InternalFlaDsl.g:2135:1: ( () )
+            // InternalFlaDsl.g:2136:1: ()
+            {
+             before(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0()); 
+            // InternalFlaDsl.g:2137:1: ()
+            // InternalFlaDsl.g:2139:1: 
+            {
+            }
+
+             after(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group__0__Impl"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group__1"
+    // InternalFlaDsl.g:2149:1: rule__FailureDefinition__Group__1 : rule__FailureDefinition__Group__1__Impl rule__FailureDefinition__Group__2 ;
+    public final void rule__FailureDefinition__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2153:1: ( rule__FailureDefinition__Group__1__Impl rule__FailureDefinition__Group__2 )
+            // InternalFlaDsl.g:2154:2: rule__FailureDefinition__Group__1__Impl rule__FailureDefinition__Group__2
+            {
+            pushFollow(FOLLOW_9);
+            rule__FailureDefinition__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__FailureDefinition__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group__1"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group__1__Impl"
+    // InternalFlaDsl.g:2161:1: rule__FailureDefinition__Group__1__Impl : ( ( rule__FailureDefinition__TypeAssignment_1 ) ) ;
+    public final void rule__FailureDefinition__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2165:1: ( ( ( rule__FailureDefinition__TypeAssignment_1 ) ) )
+            // InternalFlaDsl.g:2166:1: ( ( rule__FailureDefinition__TypeAssignment_1 ) )
+            {
+            // InternalFlaDsl.g:2166:1: ( ( rule__FailureDefinition__TypeAssignment_1 ) )
+            // InternalFlaDsl.g:2167:1: ( rule__FailureDefinition__TypeAssignment_1 )
+            {
+             before(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1()); 
+            // InternalFlaDsl.g:2168:1: ( rule__FailureDefinition__TypeAssignment_1 )
+            // InternalFlaDsl.g:2168:2: rule__FailureDefinition__TypeAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__FailureDefinition__TypeAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group__1__Impl"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group__2"
+    // InternalFlaDsl.g:2178:1: rule__FailureDefinition__Group__2 : rule__FailureDefinition__Group__2__Impl ;
+    public final void rule__FailureDefinition__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2182:1: ( rule__FailureDefinition__Group__2__Impl )
+            // InternalFlaDsl.g:2183:2: rule__FailureDefinition__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__FailureDefinition__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group__2"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group__2__Impl"
+    // InternalFlaDsl.g:2189:1: rule__FailureDefinition__Group__2__Impl : ( ( rule__FailureDefinition__Group_2__0 )? ) ;
+    public final void rule__FailureDefinition__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2193:1: ( ( ( rule__FailureDefinition__Group_2__0 )? ) )
+            // InternalFlaDsl.g:2194:1: ( ( rule__FailureDefinition__Group_2__0 )? )
+            {
+            // InternalFlaDsl.g:2194:1: ( ( rule__FailureDefinition__Group_2__0 )? )
+            // InternalFlaDsl.g:2195:1: ( rule__FailureDefinition__Group_2__0 )?
+            {
+             before(grammarAccess.getFailureDefinitionAccess().getGroup_2()); 
+            // InternalFlaDsl.g:2196:1: ( rule__FailureDefinition__Group_2__0 )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==36) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // InternalFlaDsl.g:2196:2: rule__FailureDefinition__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__FailureDefinition__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getFailureDefinitionAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group__2__Impl"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group_2__0"
+    // InternalFlaDsl.g:2212:1: rule__FailureDefinition__Group_2__0 : rule__FailureDefinition__Group_2__0__Impl rule__FailureDefinition__Group_2__1 ;
+    public final void rule__FailureDefinition__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2216:1: ( rule__FailureDefinition__Group_2__0__Impl rule__FailureDefinition__Group_2__1 )
+            // InternalFlaDsl.g:2217:2: rule__FailureDefinition__Group_2__0__Impl rule__FailureDefinition__Group_2__1
+            {
+            pushFollow(FOLLOW_13);
+            rule__FailureDefinition__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__FailureDefinition__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group_2__0"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group_2__0__Impl"
+    // InternalFlaDsl.g:2224:1: rule__FailureDefinition__Group_2__0__Impl : ( '.' ) ;
+    public final void rule__FailureDefinition__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2228:1: ( ( '.' ) )
+            // InternalFlaDsl.g:2229:1: ( '.' )
+            {
+            // InternalFlaDsl.g:2229:1: ( '.' )
+            // InternalFlaDsl.g:2230:1: '.'
+            {
+             before(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group_2__1"
+    // InternalFlaDsl.g:2243:1: rule__FailureDefinition__Group_2__1 : rule__FailureDefinition__Group_2__1__Impl ;
+    public final void rule__FailureDefinition__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2247:1: ( rule__FailureDefinition__Group_2__1__Impl )
+            // InternalFlaDsl.g:2248:2: rule__FailureDefinition__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__FailureDefinition__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group_2__1"
+
+
+    // $ANTLR start "rule__FailureDefinition__Group_2__1__Impl"
+    // InternalFlaDsl.g:2254:1: rule__FailureDefinition__Group_2__1__Impl : ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) ) ;
+    public final void rule__FailureDefinition__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2258:1: ( ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) ) )
+            // InternalFlaDsl.g:2259:1: ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) )
+            {
+            // InternalFlaDsl.g:2259:1: ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) )
+            // InternalFlaDsl.g:2260:1: ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 )
+            {
+             before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1()); 
+            // InternalFlaDsl.g:2261:1: ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 )
+            // InternalFlaDsl.g:2261:2: rule__FailureDefinition__AcidAvoidableAssignment_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__FailureDefinition__AcidAvoidableAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__NoFailureDefinition__Group__0"
+    // InternalFlaDsl.g:2275:1: rule__NoFailureDefinition__Group__0 : rule__NoFailureDefinition__Group__0__Impl rule__NoFailureDefinition__Group__1 ;
+    public final void rule__NoFailureDefinition__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2279:1: ( rule__NoFailureDefinition__Group__0__Impl rule__NoFailureDefinition__Group__1 )
+            // InternalFlaDsl.g:2280:2: rule__NoFailureDefinition__Group__0__Impl rule__NoFailureDefinition__Group__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__NoFailureDefinition__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__NoFailureDefinition__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NoFailureDefinition__Group__0"
+
+
+    // $ANTLR start "rule__NoFailureDefinition__Group__0__Impl"
+    // InternalFlaDsl.g:2287:1: rule__NoFailureDefinition__Group__0__Impl : ( () ) ;
+    public final void rule__NoFailureDefinition__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2291:1: ( ( () ) )
+            // InternalFlaDsl.g:2292:1: ( () )
+            {
+            // InternalFlaDsl.g:2292:1: ( () )
+            // InternalFlaDsl.g:2293:1: ()
+            {
+             before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0()); 
+            // InternalFlaDsl.g:2294:1: ()
+            // InternalFlaDsl.g:2296:1: 
+            {
+            }
+
+             after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NoFailureDefinition__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NoFailureDefinition__Group__1"
+    // InternalFlaDsl.g:2306:1: rule__NoFailureDefinition__Group__1 : rule__NoFailureDefinition__Group__1__Impl ;
+    public final void rule__NoFailureDefinition__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2310:1: ( rule__NoFailureDefinition__Group__1__Impl )
+            // InternalFlaDsl.g:2311:2: rule__NoFailureDefinition__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__NoFailureDefinition__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NoFailureDefinition__Group__1"
+
+
+    // $ANTLR start "rule__NoFailureDefinition__Group__1__Impl"
+    // InternalFlaDsl.g:2317:1: rule__NoFailureDefinition__Group__1__Impl : ( 'noFailure' ) ;
+    public final void rule__NoFailureDefinition__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2321:1: ( ( 'noFailure' ) )
+            // InternalFlaDsl.g:2322:1: ( 'noFailure' )
+            {
+            // InternalFlaDsl.g:2322:1: ( 'noFailure' )
+            // InternalFlaDsl.g:2323:1: 'noFailure'
+            {
+             before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1()); 
+            match(input,39,FOLLOW_2); 
+             after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NoFailureDefinition__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ComplexNofailureDefinition__Group__0"
+    // InternalFlaDsl.g:2340:1: rule__ComplexNofailureDefinition__Group__0 : rule__ComplexNofailureDefinition__Group__0__Impl rule__ComplexNofailureDefinition__Group__1 ;
+    public final void rule__ComplexNofailureDefinition__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2344:1: ( rule__ComplexNofailureDefinition__Group__0__Impl rule__ComplexNofailureDefinition__Group__1 )
+            // InternalFlaDsl.g:2345:2: rule__ComplexNofailureDefinition__Group__0__Impl rule__ComplexNofailureDefinition__Group__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__ComplexNofailureDefinition__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ComplexNofailureDefinition__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ComplexNofailureDefinition__Group__0"
+
+
+    // $ANTLR start "rule__ComplexNofailureDefinition__Group__0__Impl"
+    // InternalFlaDsl.g:2352:1: rule__ComplexNofailureDefinition__Group__0__Impl : ( () ) ;
+    public final void rule__ComplexNofailureDefinition__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2356:1: ( ( () ) )
+            // InternalFlaDsl.g:2357:1: ( () )
+            {
+            // InternalFlaDsl.g:2357:1: ( () )
+            // InternalFlaDsl.g:2358:1: ()
+            {
+             before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0()); 
+            // InternalFlaDsl.g:2359:1: ()
+            // InternalFlaDsl.g:2361:1: 
+            {
+            }
+
+             after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ComplexNofailureDefinition__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ComplexNofailureDefinition__Group__1"
+    // InternalFlaDsl.g:2371:1: rule__ComplexNofailureDefinition__Group__1 : rule__ComplexNofailureDefinition__Group__1__Impl rule__ComplexNofailureDefinition__Group__2 ;
+    public final void rule__ComplexNofailureDefinition__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2375:1: ( rule__ComplexNofailureDefinition__Group__1__Impl rule__ComplexNofailureDefinition__Group__2 )
+            // InternalFlaDsl.g:2376:2: rule__ComplexNofailureDefinition__Group__1__Impl rule__ComplexNofailureDefinition__Group__2
+            {
+            pushFollow(FOLLOW_9);
+            rule__ComplexNofailureDefinition__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ComplexNofailureDefinition__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ComplexNofailureDefinition__Group__1"
+
+
+    // $ANTLR start "rule__ComplexNofailureDefinition__Group__1__Impl"
+    // InternalFlaDsl.g:2383:1: rule__ComplexNofailureDefinition__Group__1__Impl : ( 'noFailure' ) ;
+    public final void rule__ComplexNofailureDefinition__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2387:1: ( ( 'noFailure' ) )
+            // InternalFlaDsl.g:2388:1: ( 'noFailure' )
+            {
+            // InternalFlaDsl.g:2388:1: ( 'noFailure' )
+            // InternalFlaDsl.g:2389:1: 'noFailure'
+            {
+             before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1()); 
+            match(input,39,FOLLOW_2); 
+             after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ComplexNofailureDefinition__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ComplexNofailureDefinition__Group__2"
+    // InternalFlaDsl.g:2402:1: rule__ComplexNofailureDefinition__Group__2 : rule__ComplexNofailureDefinition__Group__2__Impl rule__ComplexNofailureDefinition__Group__3 ;
+    public final void rule__ComplexNofailureDefinition__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2406:1: ( rule__ComplexNofailureDefinition__Group__2__Impl rule__ComplexNofailureDefinition__Group__3 )
+            // InternalFlaDsl.g:2407:2: rule__ComplexNofailureDefinition__Group__2__Impl rule__ComplexNofailureDefinition__Group__3
+            {
+            pushFollow(FOLLOW_15);
+            rule__ComplexNofailureDefinition__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ComplexNofailureDefinition__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ComplexNofailureDefinition__Group__2"
+
+
+    // $ANTLR start "rule__ComplexNofailureDefinition__Group__2__Impl"
+    // InternalFlaDsl.g:2414:1: rule__ComplexNofailureDefinition__Group__2__Impl : ( '.' ) ;
+    public final void rule__ComplexNofailureDefinition__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2418:1: ( ( '.' ) )
+            // InternalFlaDsl.g:2419:1: ( '.' )
+            {
+            // InternalFlaDsl.g:2419:1: ( '.' )
+            // InternalFlaDsl.g:2420:1: '.'
+            {
+             before(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ComplexNofailureDefinition__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ComplexNofailureDefinition__Group__3"
+    // InternalFlaDsl.g:2433:1: rule__ComplexNofailureDefinition__Group__3 : rule__ComplexNofailureDefinition__Group__3__Impl ;
+    public final void rule__ComplexNofailureDefinition__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2437:1: ( rule__ComplexNofailureDefinition__Group__3__Impl )
+            // InternalFlaDsl.g:2438:2: rule__ComplexNofailureDefinition__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ComplexNofailureDefinition__Group__3__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ComplexNofailureDefinition__Group__3"
+
+
+    // $ANTLR start "rule__ComplexNofailureDefinition__Group__3__Impl"
+    // InternalFlaDsl.g:2444:1: rule__ComplexNofailureDefinition__Group__3__Impl : ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) ) ;
+    public final void rule__ComplexNofailureDefinition__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2448:1: ( ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) ) )
+            // InternalFlaDsl.g:2449:1: ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) )
+            {
+            // InternalFlaDsl.g:2449:1: ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) )
+            // InternalFlaDsl.g:2450:1: ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 )
+            {
+             before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3()); 
+            // InternalFlaDsl.g:2451:1: ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 )
+            // InternalFlaDsl.g:2451:2: rule__ComplexNofailureDefinition__AcidMitigationAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__ComplexNofailureDefinition__AcidMitigationAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ComplexNofailureDefinition__Group__3__Impl"
+
+
+    // $ANTLR start "rule__WildcardDefinition__Group__0"
+    // InternalFlaDsl.g:2469:1: rule__WildcardDefinition__Group__0 : rule__WildcardDefinition__Group__0__Impl rule__WildcardDefinition__Group__1 ;
+    public final void rule__WildcardDefinition__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2473:1: ( rule__WildcardDefinition__Group__0__Impl rule__WildcardDefinition__Group__1 )
+            // InternalFlaDsl.g:2474:2: rule__WildcardDefinition__Group__0__Impl rule__WildcardDefinition__Group__1
+            {
+            pushFollow(FOLLOW_16);
+            rule__WildcardDefinition__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__WildcardDefinition__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WildcardDefinition__Group__0"
+
+
+    // $ANTLR start "rule__WildcardDefinition__Group__0__Impl"
+    // InternalFlaDsl.g:2481:1: rule__WildcardDefinition__Group__0__Impl : ( () ) ;
+    public final void rule__WildcardDefinition__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2485:1: ( ( () ) )
+            // InternalFlaDsl.g:2486:1: ( () )
+            {
+            // InternalFlaDsl.g:2486:1: ( () )
+            // InternalFlaDsl.g:2487:1: ()
+            {
+             before(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0()); 
+            // InternalFlaDsl.g:2488:1: ()
+            // InternalFlaDsl.g:2490:1: 
+            {
+            }
+
+             after(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WildcardDefinition__Group__0__Impl"
+
+
+    // $ANTLR start "rule__WildcardDefinition__Group__1"
+    // InternalFlaDsl.g:2500:1: rule__WildcardDefinition__Group__1 : rule__WildcardDefinition__Group__1__Impl ;
+    public final void rule__WildcardDefinition__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2504:1: ( rule__WildcardDefinition__Group__1__Impl )
+            // InternalFlaDsl.g:2505:2: rule__WildcardDefinition__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__WildcardDefinition__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WildcardDefinition__Group__1"
+
+
+    // $ANTLR start "rule__WildcardDefinition__Group__1__Impl"
+    // InternalFlaDsl.g:2511:1: rule__WildcardDefinition__Group__1__Impl : ( 'wildcard' ) ;
+    public final void rule__WildcardDefinition__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2515:1: ( ( 'wildcard' ) )
+            // InternalFlaDsl.g:2516:1: ( 'wildcard' )
+            {
+            // InternalFlaDsl.g:2516:1: ( 'wildcard' )
+            // InternalFlaDsl.g:2517:1: 'wildcard'
+            {
+             before(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1()); 
+            match(input,40,FOLLOW_2); 
+             after(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WildcardDefinition__Group__1__Impl"
+
+
+    // $ANTLR start "rule__VariableDefinition__Group__0"
+    // InternalFlaDsl.g:2534:1: rule__VariableDefinition__Group__0 : rule__VariableDefinition__Group__0__Impl rule__VariableDefinition__Group__1 ;
+    public final void rule__VariableDefinition__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2538:1: ( rule__VariableDefinition__Group__0__Impl rule__VariableDefinition__Group__1 )
+            // InternalFlaDsl.g:2539:2: rule__VariableDefinition__Group__0__Impl rule__VariableDefinition__Group__1
+            {
+            pushFollow(FOLLOW_10);
+            rule__VariableDefinition__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDefinition__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDefinition__Group__0"
+
+
+    // $ANTLR start "rule__VariableDefinition__Group__0__Impl"
+    // InternalFlaDsl.g:2546:1: rule__VariableDefinition__Group__0__Impl : ( () ) ;
+    public final void rule__VariableDefinition__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2550:1: ( ( () ) )
+            // InternalFlaDsl.g:2551:1: ( () )
+            {
+            // InternalFlaDsl.g:2551:1: ( () )
+            // InternalFlaDsl.g:2552:1: ()
+            {
+             before(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0()); 
+            // InternalFlaDsl.g:2553:1: ()
+            // InternalFlaDsl.g:2555:1: 
+            {
+            }
+
+             after(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDefinition__Group__0__Impl"
+
+
+    // $ANTLR start "rule__VariableDefinition__Group__1"
+    // InternalFlaDsl.g:2565:1: rule__VariableDefinition__Group__1 : rule__VariableDefinition__Group__1__Impl ;
+    public final void rule__VariableDefinition__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2569:1: ( rule__VariableDefinition__Group__1__Impl )
+            // InternalFlaDsl.g:2570:2: rule__VariableDefinition__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDefinition__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDefinition__Group__1"
+
+
+    // $ANTLR start "rule__VariableDefinition__Group__1__Impl"
+    // InternalFlaDsl.g:2576:1: rule__VariableDefinition__Group__1__Impl : ( ( rule__VariableDefinition__VariableNameAssignment_1 ) ) ;
+    public final void rule__VariableDefinition__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2580:1: ( ( ( rule__VariableDefinition__VariableNameAssignment_1 ) ) )
+            // InternalFlaDsl.g:2581:1: ( ( rule__VariableDefinition__VariableNameAssignment_1 ) )
+            {
+            // InternalFlaDsl.g:2581:1: ( ( rule__VariableDefinition__VariableNameAssignment_1 ) )
+            // InternalFlaDsl.g:2582:1: ( rule__VariableDefinition__VariableNameAssignment_1 )
+            {
+             before(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1()); 
+            // InternalFlaDsl.g:2583:1: ( rule__VariableDefinition__VariableNameAssignment_1 )
+            // InternalFlaDsl.g:2583:2: rule__VariableDefinition__VariableNameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDefinition__VariableNameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDefinition__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__0"
+    // InternalFlaDsl.g:2597:1: rule__ACIDavoidable__Group__0 : rule__ACIDavoidable__Group__0__Impl rule__ACIDavoidable__Group__1 ;
+    public final void rule__ACIDavoidable__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2601:1: ( rule__ACIDavoidable__Group__0__Impl rule__ACIDavoidable__Group__1 )
+            // InternalFlaDsl.g:2602:2: rule__ACIDavoidable__Group__0__Impl rule__ACIDavoidable__Group__1
+            {
+            pushFollow(FOLLOW_9);
+            rule__ACIDavoidable__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__0"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__0__Impl"
+    // InternalFlaDsl.g:2609:1: rule__ACIDavoidable__Group__0__Impl : ( ( rule__ACIDavoidable__AAssignment_0 ) ) ;
+    public final void rule__ACIDavoidable__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2613:1: ( ( ( rule__ACIDavoidable__AAssignment_0 ) ) )
+            // InternalFlaDsl.g:2614:1: ( ( rule__ACIDavoidable__AAssignment_0 ) )
+            {
+            // InternalFlaDsl.g:2614:1: ( ( rule__ACIDavoidable__AAssignment_0 ) )
+            // InternalFlaDsl.g:2615:1: ( rule__ACIDavoidable__AAssignment_0 )
+            {
+             before(grammarAccess.getACIDavoidableAccess().getAAssignment_0()); 
+            // InternalFlaDsl.g:2616:1: ( rule__ACIDavoidable__AAssignment_0 )
+            // InternalFlaDsl.g:2616:2: rule__ACIDavoidable__AAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__AAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDavoidableAccess().getAAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__1"
+    // InternalFlaDsl.g:2626:1: rule__ACIDavoidable__Group__1 : rule__ACIDavoidable__Group__1__Impl rule__ACIDavoidable__Group__2 ;
+    public final void rule__ACIDavoidable__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2630:1: ( rule__ACIDavoidable__Group__1__Impl rule__ACIDavoidable__Group__2 )
+            // InternalFlaDsl.g:2631:2: rule__ACIDavoidable__Group__1__Impl rule__ACIDavoidable__Group__2
+            {
+            pushFollow(FOLLOW_17);
+            rule__ACIDavoidable__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__1"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__1__Impl"
+    // InternalFlaDsl.g:2638:1: rule__ACIDavoidable__Group__1__Impl : ( '.' ) ;
+    public final void rule__ACIDavoidable__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2642:1: ( ( '.' ) )
+            // InternalFlaDsl.g:2643:1: ( '.' )
+            {
+            // InternalFlaDsl.g:2643:1: ( '.' )
+            // InternalFlaDsl.g:2644:1: '.'
+            {
+             before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__2"
+    // InternalFlaDsl.g:2657:1: rule__ACIDavoidable__Group__2 : rule__ACIDavoidable__Group__2__Impl rule__ACIDavoidable__Group__3 ;
+    public final void rule__ACIDavoidable__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2661:1: ( rule__ACIDavoidable__Group__2__Impl rule__ACIDavoidable__Group__3 )
+            // InternalFlaDsl.g:2662:2: rule__ACIDavoidable__Group__2__Impl rule__ACIDavoidable__Group__3
+            {
+            pushFollow(FOLLOW_9);
+            rule__ACIDavoidable__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__2"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__2__Impl"
+    // InternalFlaDsl.g:2669:1: rule__ACIDavoidable__Group__2__Impl : ( ( rule__ACIDavoidable__CAssignment_2 ) ) ;
+    public final void rule__ACIDavoidable__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2673:1: ( ( ( rule__ACIDavoidable__CAssignment_2 ) ) )
+            // InternalFlaDsl.g:2674:1: ( ( rule__ACIDavoidable__CAssignment_2 ) )
+            {
+            // InternalFlaDsl.g:2674:1: ( ( rule__ACIDavoidable__CAssignment_2 ) )
+            // InternalFlaDsl.g:2675:1: ( rule__ACIDavoidable__CAssignment_2 )
+            {
+             before(grammarAccess.getACIDavoidableAccess().getCAssignment_2()); 
+            // InternalFlaDsl.g:2676:1: ( rule__ACIDavoidable__CAssignment_2 )
+            // InternalFlaDsl.g:2676:2: rule__ACIDavoidable__CAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__CAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDavoidableAccess().getCAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__3"
+    // InternalFlaDsl.g:2686:1: rule__ACIDavoidable__Group__3 : rule__ACIDavoidable__Group__3__Impl rule__ACIDavoidable__Group__4 ;
+    public final void rule__ACIDavoidable__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2690:1: ( rule__ACIDavoidable__Group__3__Impl rule__ACIDavoidable__Group__4 )
+            // InternalFlaDsl.g:2691:2: rule__ACIDavoidable__Group__3__Impl rule__ACIDavoidable__Group__4
+            {
+            pushFollow(FOLLOW_18);
+            rule__ACIDavoidable__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__3"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__3__Impl"
+    // InternalFlaDsl.g:2698:1: rule__ACIDavoidable__Group__3__Impl : ( '.' ) ;
+    public final void rule__ACIDavoidable__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2702:1: ( ( '.' ) )
+            // InternalFlaDsl.g:2703:1: ( '.' )
+            {
+            // InternalFlaDsl.g:2703:1: ( '.' )
+            // InternalFlaDsl.g:2704:1: '.'
+            {
+             before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__4"
+    // InternalFlaDsl.g:2717:1: rule__ACIDavoidable__Group__4 : rule__ACIDavoidable__Group__4__Impl rule__ACIDavoidable__Group__5 ;
+    public final void rule__ACIDavoidable__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2721:1: ( rule__ACIDavoidable__Group__4__Impl rule__ACIDavoidable__Group__5 )
+            // InternalFlaDsl.g:2722:2: rule__ACIDavoidable__Group__4__Impl rule__ACIDavoidable__Group__5
+            {
+            pushFollow(FOLLOW_9);
+            rule__ACIDavoidable__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__4"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__4__Impl"
+    // InternalFlaDsl.g:2729:1: rule__ACIDavoidable__Group__4__Impl : ( ( rule__ACIDavoidable__IAssignment_4 ) ) ;
+    public final void rule__ACIDavoidable__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2733:1: ( ( ( rule__ACIDavoidable__IAssignment_4 ) ) )
+            // InternalFlaDsl.g:2734:1: ( ( rule__ACIDavoidable__IAssignment_4 ) )
+            {
+            // InternalFlaDsl.g:2734:1: ( ( rule__ACIDavoidable__IAssignment_4 ) )
+            // InternalFlaDsl.g:2735:1: ( rule__ACIDavoidable__IAssignment_4 )
+            {
+             before(grammarAccess.getACIDavoidableAccess().getIAssignment_4()); 
+            // InternalFlaDsl.g:2736:1: ( rule__ACIDavoidable__IAssignment_4 )
+            // InternalFlaDsl.g:2736:2: rule__ACIDavoidable__IAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__IAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDavoidableAccess().getIAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__5"
+    // InternalFlaDsl.g:2746:1: rule__ACIDavoidable__Group__5 : rule__ACIDavoidable__Group__5__Impl rule__ACIDavoidable__Group__6 ;
+    public final void rule__ACIDavoidable__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2750:1: ( rule__ACIDavoidable__Group__5__Impl rule__ACIDavoidable__Group__6 )
+            // InternalFlaDsl.g:2751:2: rule__ACIDavoidable__Group__5__Impl rule__ACIDavoidable__Group__6
+            {
+            pushFollow(FOLLOW_19);
+            rule__ACIDavoidable__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__5"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__5__Impl"
+    // InternalFlaDsl.g:2758:1: rule__ACIDavoidable__Group__5__Impl : ( '.' ) ;
+    public final void rule__ACIDavoidable__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2762:1: ( ( '.' ) )
+            // InternalFlaDsl.g:2763:1: ( '.' )
+            {
+            // InternalFlaDsl.g:2763:1: ( '.' )
+            // InternalFlaDsl.g:2764:1: '.'
+            {
+             before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__6"
+    // InternalFlaDsl.g:2777:1: rule__ACIDavoidable__Group__6 : rule__ACIDavoidable__Group__6__Impl ;
+    public final void rule__ACIDavoidable__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2781:1: ( rule__ACIDavoidable__Group__6__Impl )
+            // InternalFlaDsl.g:2782:2: rule__ACIDavoidable__Group__6__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__6"
+
+
+    // $ANTLR start "rule__ACIDavoidable__Group__6__Impl"
+    // InternalFlaDsl.g:2788:1: rule__ACIDavoidable__Group__6__Impl : ( ( rule__ACIDavoidable__DAssignment_6 ) ) ;
+    public final void rule__ACIDavoidable__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2792:1: ( ( ( rule__ACIDavoidable__DAssignment_6 ) ) )
+            // InternalFlaDsl.g:2793:1: ( ( rule__ACIDavoidable__DAssignment_6 ) )
+            {
+            // InternalFlaDsl.g:2793:1: ( ( rule__ACIDavoidable__DAssignment_6 ) )
+            // InternalFlaDsl.g:2794:1: ( rule__ACIDavoidable__DAssignment_6 )
+            {
+             before(grammarAccess.getACIDavoidableAccess().getDAssignment_6()); 
+            // InternalFlaDsl.g:2795:1: ( rule__ACIDavoidable__DAssignment_6 )
+            // InternalFlaDsl.g:2795:2: rule__ACIDavoidable__DAssignment_6
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDavoidable__DAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDavoidableAccess().getDAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__0"
+    // InternalFlaDsl.g:2819:1: rule__ACIDMitigation__Group__0 : rule__ACIDMitigation__Group__0__Impl rule__ACIDMitigation__Group__1 ;
+    public final void rule__ACIDMitigation__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2823:1: ( rule__ACIDMitigation__Group__0__Impl rule__ACIDMitigation__Group__1 )
+            // InternalFlaDsl.g:2824:2: rule__ACIDMitigation__Group__0__Impl rule__ACIDMitigation__Group__1
+            {
+            pushFollow(FOLLOW_9);
+            rule__ACIDMitigation__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__0"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__0__Impl"
+    // InternalFlaDsl.g:2831:1: rule__ACIDMitigation__Group__0__Impl : ( ( rule__ACIDMitigation__AAssignment_0 ) ) ;
+    public final void rule__ACIDMitigation__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2835:1: ( ( ( rule__ACIDMitigation__AAssignment_0 ) ) )
+            // InternalFlaDsl.g:2836:1: ( ( rule__ACIDMitigation__AAssignment_0 ) )
+            {
+            // InternalFlaDsl.g:2836:1: ( ( rule__ACIDMitigation__AAssignment_0 ) )
+            // InternalFlaDsl.g:2837:1: ( rule__ACIDMitigation__AAssignment_0 )
+            {
+             before(grammarAccess.getACIDMitigationAccess().getAAssignment_0()); 
+            // InternalFlaDsl.g:2838:1: ( rule__ACIDMitigation__AAssignment_0 )
+            // InternalFlaDsl.g:2838:2: rule__ACIDMitigation__AAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__AAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDMitigationAccess().getAAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__1"
+    // InternalFlaDsl.g:2848:1: rule__ACIDMitigation__Group__1 : rule__ACIDMitigation__Group__1__Impl rule__ACIDMitigation__Group__2 ;
+    public final void rule__ACIDMitigation__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2852:1: ( rule__ACIDMitigation__Group__1__Impl rule__ACIDMitigation__Group__2 )
+            // InternalFlaDsl.g:2853:2: rule__ACIDMitigation__Group__1__Impl rule__ACIDMitigation__Group__2
+            {
+            pushFollow(FOLLOW_20);
+            rule__ACIDMitigation__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__1"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__1__Impl"
+    // InternalFlaDsl.g:2860:1: rule__ACIDMitigation__Group__1__Impl : ( '.' ) ;
+    public final void rule__ACIDMitigation__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2864:1: ( ( '.' ) )
+            // InternalFlaDsl.g:2865:1: ( '.' )
+            {
+            // InternalFlaDsl.g:2865:1: ( '.' )
+            // InternalFlaDsl.g:2866:1: '.'
+            {
+             before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__2"
+    // InternalFlaDsl.g:2879:1: rule__ACIDMitigation__Group__2 : rule__ACIDMitigation__Group__2__Impl rule__ACIDMitigation__Group__3 ;
+    public final void rule__ACIDMitigation__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2883:1: ( rule__ACIDMitigation__Group__2__Impl rule__ACIDMitigation__Group__3 )
+            // InternalFlaDsl.g:2884:2: rule__ACIDMitigation__Group__2__Impl rule__ACIDMitigation__Group__3
+            {
+            pushFollow(FOLLOW_9);
+            rule__ACIDMitigation__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__2"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__2__Impl"
+    // InternalFlaDsl.g:2891:1: rule__ACIDMitigation__Group__2__Impl : ( ( rule__ACIDMitigation__CAssignment_2 ) ) ;
+    public final void rule__ACIDMitigation__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2895:1: ( ( ( rule__ACIDMitigation__CAssignment_2 ) ) )
+            // InternalFlaDsl.g:2896:1: ( ( rule__ACIDMitigation__CAssignment_2 ) )
+            {
+            // InternalFlaDsl.g:2896:1: ( ( rule__ACIDMitigation__CAssignment_2 ) )
+            // InternalFlaDsl.g:2897:1: ( rule__ACIDMitigation__CAssignment_2 )
+            {
+             before(grammarAccess.getACIDMitigationAccess().getCAssignment_2()); 
+            // InternalFlaDsl.g:2898:1: ( rule__ACIDMitigation__CAssignment_2 )
+            // InternalFlaDsl.g:2898:2: rule__ACIDMitigation__CAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__CAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDMitigationAccess().getCAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__3"
+    // InternalFlaDsl.g:2908:1: rule__ACIDMitigation__Group__3 : rule__ACIDMitigation__Group__3__Impl rule__ACIDMitigation__Group__4 ;
+    public final void rule__ACIDMitigation__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2912:1: ( rule__ACIDMitigation__Group__3__Impl rule__ACIDMitigation__Group__4 )
+            // InternalFlaDsl.g:2913:2: rule__ACIDMitigation__Group__3__Impl rule__ACIDMitigation__Group__4
+            {
+            pushFollow(FOLLOW_21);
+            rule__ACIDMitigation__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__3"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__3__Impl"
+    // InternalFlaDsl.g:2920:1: rule__ACIDMitigation__Group__3__Impl : ( '.' ) ;
+    public final void rule__ACIDMitigation__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2924:1: ( ( '.' ) )
+            // InternalFlaDsl.g:2925:1: ( '.' )
+            {
+            // InternalFlaDsl.g:2925:1: ( '.' )
+            // InternalFlaDsl.g:2926:1: '.'
+            {
+             before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__4"
+    // InternalFlaDsl.g:2939:1: rule__ACIDMitigation__Group__4 : rule__ACIDMitigation__Group__4__Impl rule__ACIDMitigation__Group__5 ;
+    public final void rule__ACIDMitigation__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2943:1: ( rule__ACIDMitigation__Group__4__Impl rule__ACIDMitigation__Group__5 )
+            // InternalFlaDsl.g:2944:2: rule__ACIDMitigation__Group__4__Impl rule__ACIDMitigation__Group__5
+            {
+            pushFollow(FOLLOW_9);
+            rule__ACIDMitigation__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__4"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__4__Impl"
+    // InternalFlaDsl.g:2951:1: rule__ACIDMitigation__Group__4__Impl : ( ( rule__ACIDMitigation__IAssignment_4 ) ) ;
+    public final void rule__ACIDMitigation__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2955:1: ( ( ( rule__ACIDMitigation__IAssignment_4 ) ) )
+            // InternalFlaDsl.g:2956:1: ( ( rule__ACIDMitigation__IAssignment_4 ) )
+            {
+            // InternalFlaDsl.g:2956:1: ( ( rule__ACIDMitigation__IAssignment_4 ) )
+            // InternalFlaDsl.g:2957:1: ( rule__ACIDMitigation__IAssignment_4 )
+            {
+             before(grammarAccess.getACIDMitigationAccess().getIAssignment_4()); 
+            // InternalFlaDsl.g:2958:1: ( rule__ACIDMitigation__IAssignment_4 )
+            // InternalFlaDsl.g:2958:2: rule__ACIDMitigation__IAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__IAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDMitigationAccess().getIAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__5"
+    // InternalFlaDsl.g:2968:1: rule__ACIDMitigation__Group__5 : rule__ACIDMitigation__Group__5__Impl rule__ACIDMitigation__Group__6 ;
+    public final void rule__ACIDMitigation__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2972:1: ( rule__ACIDMitigation__Group__5__Impl rule__ACIDMitigation__Group__6 )
+            // InternalFlaDsl.g:2973:2: rule__ACIDMitigation__Group__5__Impl rule__ACIDMitigation__Group__6
+            {
+            pushFollow(FOLLOW_22);
+            rule__ACIDMitigation__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__5"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__5__Impl"
+    // InternalFlaDsl.g:2980:1: rule__ACIDMitigation__Group__5__Impl : ( '.' ) ;
+    public final void rule__ACIDMitigation__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:2984:1: ( ( '.' ) )
+            // InternalFlaDsl.g:2985:1: ( '.' )
+            {
+            // InternalFlaDsl.g:2985:1: ( '.' )
+            // InternalFlaDsl.g:2986:1: '.'
+            {
+             before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__6"
+    // InternalFlaDsl.g:2999:1: rule__ACIDMitigation__Group__6 : rule__ACIDMitigation__Group__6__Impl ;
+    public final void rule__ACIDMitigation__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3003:1: ( rule__ACIDMitigation__Group__6__Impl )
+            // InternalFlaDsl.g:3004:2: rule__ACIDMitigation__Group__6__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__6"
+
+
+    // $ANTLR start "rule__ACIDMitigation__Group__6__Impl"
+    // InternalFlaDsl.g:3010:1: rule__ACIDMitigation__Group__6__Impl : ( ( rule__ACIDMitigation__DAssignment_6 ) ) ;
+    public final void rule__ACIDMitigation__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3014:1: ( ( ( rule__ACIDMitigation__DAssignment_6 ) ) )
+            // InternalFlaDsl.g:3015:1: ( ( rule__ACIDMitigation__DAssignment_6 ) )
+            {
+            // InternalFlaDsl.g:3015:1: ( ( rule__ACIDMitigation__DAssignment_6 ) )
+            // InternalFlaDsl.g:3016:1: ( rule__ACIDMitigation__DAssignment_6 )
+            {
+             before(grammarAccess.getACIDMitigationAccess().getDAssignment_6()); 
+            // InternalFlaDsl.g:3017:1: ( rule__ACIDMitigation__DAssignment_6 )
+            // InternalFlaDsl.g:3017:2: rule__ACIDMitigation__DAssignment_6
+            {
+            pushFollow(FOLLOW_2);
+            rule__ACIDMitigation__DAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getACIDMitigationAccess().getDAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Behaviour__RulesAssignment"
+    // InternalFlaDsl.g:3044:1: rule__Behaviour__RulesAssignment : ( ruleExpression ) ;
+    public final void rule__Behaviour__RulesAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3048:1: ( ( ruleExpression ) )
+            // InternalFlaDsl.g:3049:1: ( ruleExpression )
+            {
+            // InternalFlaDsl.g:3049:1: ( ruleExpression )
+            // InternalFlaDsl.g:3050:1: ruleExpression
+            {
+             before(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); 
+            pushFollow(FOLLOW_2);
+            ruleExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Behaviour__RulesAssignment"
+
+
+    // $ANTLR start "rule__Expression__LhsAssignment_1"
+    // InternalFlaDsl.g:3059:1: rule__Expression__LhsAssignment_1 : ( ruleLhs ) ;
+    public final void rule__Expression__LhsAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3063:1: ( ( ruleLhs ) )
+            // InternalFlaDsl.g:3064:1: ( ruleLhs )
+            {
+            // InternalFlaDsl.g:3064:1: ( ruleLhs )
+            // InternalFlaDsl.g:3065:1: ruleLhs
+            {
+             before(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleLhs();
+
+            state._fsp--;
+
+             after(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__LhsAssignment_1"
+
+
+    // $ANTLR start "rule__Expression__RhsAssignment_3"
+    // InternalFlaDsl.g:3074:1: rule__Expression__RhsAssignment_3 : ( ruleRhs ) ;
+    public final void rule__Expression__RhsAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3078:1: ( ( ruleRhs ) )
+            // InternalFlaDsl.g:3079:1: ( ruleRhs )
+            {
+            // InternalFlaDsl.g:3079:1: ( ruleRhs )
+            // InternalFlaDsl.g:3080:1: ruleRhs
+            {
+             before(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); 
+            pushFollow(FOLLOW_2);
+            ruleRhs();
+
+            state._fsp--;
+
+             after(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Expression__RhsAssignment_3"
+
+
+    // $ANTLR start "rule__Lhs__FailuresAssignment_0"
+    // InternalFlaDsl.g:3089:1: rule__Lhs__FailuresAssignment_0 : ( ruleInputExpression ) ;
+    public final void rule__Lhs__FailuresAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3093:1: ( ( ruleInputExpression ) )
+            // InternalFlaDsl.g:3094:1: ( ruleInputExpression )
+            {
+            // InternalFlaDsl.g:3094:1: ( ruleInputExpression )
+            // InternalFlaDsl.g:3095:1: ruleInputExpression
+            {
+             before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleInputExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__FailuresAssignment_0"
+
+
+    // $ANTLR start "rule__Lhs__FailuresAssignment_1_1"
+    // InternalFlaDsl.g:3104:1: rule__Lhs__FailuresAssignment_1_1 : ( ruleInputExpression ) ;
+    public final void rule__Lhs__FailuresAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3108:1: ( ( ruleInputExpression ) )
+            // InternalFlaDsl.g:3109:1: ( ruleInputExpression )
+            {
+            // InternalFlaDsl.g:3109:1: ( ruleInputExpression )
+            // InternalFlaDsl.g:3110:1: ruleInputExpression
+            {
+             before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleInputExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Lhs__FailuresAssignment_1_1"
+
+
+    // $ANTLR start "rule__Rhs__FailuresAssignment_0"
+    // InternalFlaDsl.g:3119:1: rule__Rhs__FailuresAssignment_0 : ( ruleOutputExpression ) ;
+    public final void rule__Rhs__FailuresAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3123:1: ( ( ruleOutputExpression ) )
+            // InternalFlaDsl.g:3124:1: ( ruleOutputExpression )
+            {
+            // InternalFlaDsl.g:3124:1: ( ruleOutputExpression )
+            // InternalFlaDsl.g:3125:1: ruleOutputExpression
+            {
+             before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleOutputExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__FailuresAssignment_0"
+
+
+    // $ANTLR start "rule__Rhs__FailuresAssignment_1_1"
+    // InternalFlaDsl.g:3134:1: rule__Rhs__FailuresAssignment_1_1 : ( ruleOutputExpression ) ;
+    public final void rule__Rhs__FailuresAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3138:1: ( ( ruleOutputExpression ) )
+            // InternalFlaDsl.g:3139:1: ( ruleOutputExpression )
+            {
+            // InternalFlaDsl.g:3139:1: ( ruleOutputExpression )
+            // InternalFlaDsl.g:3140:1: ruleOutputExpression
+            {
+             before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleOutputExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Rhs__FailuresAssignment_1_1"
+
+
+    // $ANTLR start "rule__InputExpression__RefAssignment_0_0"
+    // InternalFlaDsl.g:3149:1: rule__InputExpression__RefAssignment_0_0 : ( ( RULE_ID ) ) ;
+    public final void rule__InputExpression__RefAssignment_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3153:1: ( ( ( RULE_ID ) ) )
+            // InternalFlaDsl.g:3154:1: ( ( RULE_ID ) )
+            {
+            // InternalFlaDsl.g:3154:1: ( ( RULE_ID ) )
+            // InternalFlaDsl.g:3155:1: ( RULE_ID )
+            {
+             before(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); 
+            // InternalFlaDsl.g:3156:1: ( RULE_ID )
+            // InternalFlaDsl.g:3157:1: RULE_ID
+            {
+             before(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InputExpression__RefAssignment_0_0"
+
+
+    // $ANTLR start "rule__InputExpression__FailureExprAssignment_2"
+    // InternalFlaDsl.g:3168:1: rule__InputExpression__FailureExprAssignment_2 : ( ruleInFailureExpr ) ;
+    public final void rule__InputExpression__FailureExprAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3172:1: ( ( ruleInFailureExpr ) )
+            // InternalFlaDsl.g:3173:1: ( ruleInFailureExpr )
+            {
+            // InternalFlaDsl.g:3173:1: ( ruleInFailureExpr )
+            // InternalFlaDsl.g:3174:1: ruleInFailureExpr
+            {
+             before(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleInFailureExpr();
+
+            state._fsp--;
+
+             after(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InputExpression__FailureExprAssignment_2"
+
+
+    // $ANTLR start "rule__OutputExpression__RefAssignment_0_0"
+    // InternalFlaDsl.g:3183:1: rule__OutputExpression__RefAssignment_0_0 : ( ( RULE_ID ) ) ;
+    public final void rule__OutputExpression__RefAssignment_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3187:1: ( ( ( RULE_ID ) ) )
+            // InternalFlaDsl.g:3188:1: ( ( RULE_ID ) )
+            {
+            // InternalFlaDsl.g:3188:1: ( ( RULE_ID ) )
+            // InternalFlaDsl.g:3189:1: ( RULE_ID )
+            {
+             before(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); 
+            // InternalFlaDsl.g:3190:1: ( RULE_ID )
+            // InternalFlaDsl.g:3191:1: RULE_ID
+            {
+             before(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutputExpression__RefAssignment_0_0"
+
+
+    // $ANTLR start "rule__OutputExpression__FailureExprAssignment_2"
+    // InternalFlaDsl.g:3202:1: rule__OutputExpression__FailureExprAssignment_2 : ( ruleOutFailureExpr ) ;
+    public final void rule__OutputExpression__FailureExprAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3206:1: ( ( ruleOutFailureExpr ) )
+            // InternalFlaDsl.g:3207:1: ( ruleOutFailureExpr )
+            {
+            // InternalFlaDsl.g:3207:1: ( ruleOutFailureExpr )
+            // InternalFlaDsl.g:3208:1: ruleOutFailureExpr
+            {
+             before(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleOutFailureExpr();
+
+            state._fsp--;
+
+             after(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutputExpression__FailureExprAssignment_2"
+
+
+    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_0"
+    // InternalFlaDsl.g:3217:1: rule__InFailureExpr__FailuresAssignment_0 : ( ruleWildcardDefinition ) ;
+    public final void rule__InFailureExpr__FailuresAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3221:1: ( ( ruleWildcardDefinition ) )
+            // InternalFlaDsl.g:3222:1: ( ruleWildcardDefinition )
+            {
+            // InternalFlaDsl.g:3222:1: ( ruleWildcardDefinition )
+            // InternalFlaDsl.g:3223:1: ruleWildcardDefinition
+            {
+             before(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleWildcardDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_0"
+
+
+    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_1"
+    // InternalFlaDsl.g:3232:1: rule__InFailureExpr__FailuresAssignment_1 : ( ruleNoFailureDefinition ) ;
+    public final void rule__InFailureExpr__FailuresAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3236:1: ( ( ruleNoFailureDefinition ) )
+            // InternalFlaDsl.g:3237:1: ( ruleNoFailureDefinition )
+            {
+            // InternalFlaDsl.g:3237:1: ( ruleNoFailureDefinition )
+            // InternalFlaDsl.g:3238:1: ruleNoFailureDefinition
+            {
+             before(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleNoFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_1"
+
+
+    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_2"
+    // InternalFlaDsl.g:3247:1: rule__InFailureExpr__FailuresAssignment_2 : ( ruleFailureDefinition ) ;
+    public final void rule__InFailureExpr__FailuresAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3251:1: ( ( ruleFailureDefinition ) )
+            // InternalFlaDsl.g:3252:1: ( ruleFailureDefinition )
+            {
+            // InternalFlaDsl.g:3252:1: ( ruleFailureDefinition )
+            // InternalFlaDsl.g:3253:1: ruleFailureDefinition
+            {
+             before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_2"
+
+
+    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_3_1"
+    // InternalFlaDsl.g:3262:1: rule__InFailureExpr__FailuresAssignment_3_1 : ( ruleFailureDefinition ) ;
+    public final void rule__InFailureExpr__FailuresAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3266:1: ( ( ruleFailureDefinition ) )
+            // InternalFlaDsl.g:3267:1: ( ruleFailureDefinition )
+            {
+            // InternalFlaDsl.g:3267:1: ( ruleFailureDefinition )
+            // InternalFlaDsl.g:3268:1: ruleFailureDefinition
+            {
+             before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_3_1"
+
+
+    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_3_2_1"
+    // InternalFlaDsl.g:3277:1: rule__InFailureExpr__FailuresAssignment_3_2_1 : ( ruleFailureDefinition ) ;
+    public final void rule__InFailureExpr__FailuresAssignment_3_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3281:1: ( ( ruleFailureDefinition ) )
+            // InternalFlaDsl.g:3282:1: ( ruleFailureDefinition )
+            {
+            // InternalFlaDsl.g:3282:1: ( ruleFailureDefinition )
+            // InternalFlaDsl.g:3283:1: ruleFailureDefinition
+            {
+             before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_3_2_1"
+
+
+    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_4"
+    // InternalFlaDsl.g:3292:1: rule__InFailureExpr__FailuresAssignment_4 : ( ruleVariableDefinition ) ;
+    public final void rule__InFailureExpr__FailuresAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3296:1: ( ( ruleVariableDefinition ) )
+            // InternalFlaDsl.g:3297:1: ( ruleVariableDefinition )
+            {
+            // InternalFlaDsl.g:3297:1: ( ruleVariableDefinition )
+            // InternalFlaDsl.g:3298:1: ruleVariableDefinition
+            {
+             before(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_4"
+
+
+    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_0"
+    // InternalFlaDsl.g:3307:1: rule__OutFailureExpr__FailuresAssignment_0 : ( ruleNoFailureDefinition ) ;
+    public final void rule__OutFailureExpr__FailuresAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3311:1: ( ( ruleNoFailureDefinition ) )
+            // InternalFlaDsl.g:3312:1: ( ruleNoFailureDefinition )
+            {
+            // InternalFlaDsl.g:3312:1: ( ruleNoFailureDefinition )
+            // InternalFlaDsl.g:3313:1: ruleNoFailureDefinition
+            {
+             before(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleNoFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_0"
+
+
+    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_1"
+    // InternalFlaDsl.g:3322:1: rule__OutFailureExpr__FailuresAssignment_1 : ( ruleComplexNofailureDefinition ) ;
+    public final void rule__OutFailureExpr__FailuresAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3326:1: ( ( ruleComplexNofailureDefinition ) )
+            // InternalFlaDsl.g:3327:1: ( ruleComplexNofailureDefinition )
+            {
+            // InternalFlaDsl.g:3327:1: ( ruleComplexNofailureDefinition )
+            // InternalFlaDsl.g:3328:1: ruleComplexNofailureDefinition
+            {
+             before(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleComplexNofailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_1"
+
+
+    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_2"
+    // InternalFlaDsl.g:3337:1: rule__OutFailureExpr__FailuresAssignment_2 : ( ruleFailureDefinition ) ;
+    public final void rule__OutFailureExpr__FailuresAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3341:1: ( ( ruleFailureDefinition ) )
+            // InternalFlaDsl.g:3342:1: ( ruleFailureDefinition )
+            {
+            // InternalFlaDsl.g:3342:1: ( ruleFailureDefinition )
+            // InternalFlaDsl.g:3343:1: ruleFailureDefinition
+            {
+             before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_2"
+
+
+    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_3_1"
+    // InternalFlaDsl.g:3352:1: rule__OutFailureExpr__FailuresAssignment_3_1 : ( ruleFailureDefinition ) ;
+    public final void rule__OutFailureExpr__FailuresAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3356:1: ( ( ruleFailureDefinition ) )
+            // InternalFlaDsl.g:3357:1: ( ruleFailureDefinition )
+            {
+            // InternalFlaDsl.g:3357:1: ( ruleFailureDefinition )
+            // InternalFlaDsl.g:3358:1: ruleFailureDefinition
+            {
+             before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_3_1"
+
+
+    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_3_2_1"
+    // InternalFlaDsl.g:3367:1: rule__OutFailureExpr__FailuresAssignment_3_2_1 : ( ruleFailureDefinition ) ;
+    public final void rule__OutFailureExpr__FailuresAssignment_3_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3371:1: ( ( ruleFailureDefinition ) )
+            // InternalFlaDsl.g:3372:1: ( ruleFailureDefinition )
+            {
+            // InternalFlaDsl.g:3372:1: ( ruleFailureDefinition )
+            // InternalFlaDsl.g:3373:1: ruleFailureDefinition
+            {
+             before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFailureDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_3_2_1"
+
+
+    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_4"
+    // InternalFlaDsl.g:3382:1: rule__OutFailureExpr__FailuresAssignment_4 : ( ruleVariableDefinition ) ;
+    public final void rule__OutFailureExpr__FailuresAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3386:1: ( ( ruleVariableDefinition ) )
+            // InternalFlaDsl.g:3387:1: ( ruleVariableDefinition )
+            {
+            // InternalFlaDsl.g:3387:1: ( ruleVariableDefinition )
+            // InternalFlaDsl.g:3388:1: ruleVariableDefinition
+            {
+             before(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDefinition();
+
+            state._fsp--;
+
+             after(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_4"
+
+
+    // $ANTLR start "rule__FailureDefinition__TypeAssignment_1"
+    // InternalFlaDsl.g:3397:1: rule__FailureDefinition__TypeAssignment_1 : ( ruleActualFailureType ) ;
+    public final void rule__FailureDefinition__TypeAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3401:1: ( ( ruleActualFailureType ) )
+            // InternalFlaDsl.g:3402:1: ( ruleActualFailureType )
+            {
+            // InternalFlaDsl.g:3402:1: ( ruleActualFailureType )
+            // InternalFlaDsl.g:3403:1: ruleActualFailureType
+            {
+             before(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleActualFailureType();
+
+            state._fsp--;
+
+             after(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__TypeAssignment_1"
+
+
+    // $ANTLR start "rule__FailureDefinition__AcidAvoidableAssignment_2_1"
+    // InternalFlaDsl.g:3412:1: rule__FailureDefinition__AcidAvoidableAssignment_2_1 : ( ruleACIDavoidable ) ;
+    public final void rule__FailureDefinition__AcidAvoidableAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3416:1: ( ( ruleACIDavoidable ) )
+            // InternalFlaDsl.g:3417:1: ( ruleACIDavoidable )
+            {
+            // InternalFlaDsl.g:3417:1: ( ruleACIDavoidable )
+            // InternalFlaDsl.g:3418:1: ruleACIDavoidable
+            {
+             before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleACIDavoidable();
+
+            state._fsp--;
+
+             after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FailureDefinition__AcidAvoidableAssignment_2_1"
+
+
+    // $ANTLR start "rule__ComplexNofailureDefinition__AcidMitigationAssignment_3"
+    // InternalFlaDsl.g:3427:1: rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 : ( ruleACIDMitigation ) ;
+    public final void rule__ComplexNofailureDefinition__AcidMitigationAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3431:1: ( ( ruleACIDMitigation ) )
+            // InternalFlaDsl.g:3432:1: ( ruleACIDMitigation )
+            {
+            // InternalFlaDsl.g:3432:1: ( ruleACIDMitigation )
+            // InternalFlaDsl.g:3433:1: ruleACIDMitigation
+            {
+             before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); 
+            pushFollow(FOLLOW_2);
+            ruleACIDMitigation();
+
+            state._fsp--;
+
+             after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ComplexNofailureDefinition__AcidMitigationAssignment_3"
+
+
+    // $ANTLR start "rule__VariableDefinition__VariableNameAssignment_1"
+    // InternalFlaDsl.g:3442:1: rule__VariableDefinition__VariableNameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__VariableDefinition__VariableNameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3446:1: ( ( RULE_ID ) )
+            // InternalFlaDsl.g:3447:1: ( RULE_ID )
+            {
+            // InternalFlaDsl.g:3447:1: ( RULE_ID )
+            // InternalFlaDsl.g:3448:1: RULE_ID
+            {
+             before(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDefinition__VariableNameAssignment_1"
+
+
+    // $ANTLR start "rule__ACIDavoidable__AAssignment_0"
+    // InternalFlaDsl.g:3457:1: rule__ACIDavoidable__AAssignment_0 : ( ruleAavoidable ) ;
+    public final void rule__ACIDavoidable__AAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3461:1: ( ( ruleAavoidable ) )
+            // InternalFlaDsl.g:3462:1: ( ruleAavoidable )
+            {
+            // InternalFlaDsl.g:3462:1: ( ruleAavoidable )
+            // InternalFlaDsl.g:3463:1: ruleAavoidable
+            {
+             before(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleAavoidable();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__AAssignment_0"
+
+
+    // $ANTLR start "rule__ACIDavoidable__CAssignment_2"
+    // InternalFlaDsl.g:3472:1: rule__ACIDavoidable__CAssignment_2 : ( ruleCavoidable ) ;
+    public final void rule__ACIDavoidable__CAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3476:1: ( ( ruleCavoidable ) )
+            // InternalFlaDsl.g:3477:1: ( ruleCavoidable )
+            {
+            // InternalFlaDsl.g:3477:1: ( ruleCavoidable )
+            // InternalFlaDsl.g:3478:1: ruleCavoidable
+            {
+             before(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleCavoidable();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__CAssignment_2"
+
+
+    // $ANTLR start "rule__ACIDavoidable__IAssignment_4"
+    // InternalFlaDsl.g:3487:1: rule__ACIDavoidable__IAssignment_4 : ( ruleIavoidable ) ;
+    public final void rule__ACIDavoidable__IAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3491:1: ( ( ruleIavoidable ) )
+            // InternalFlaDsl.g:3492:1: ( ruleIavoidable )
+            {
+            // InternalFlaDsl.g:3492:1: ( ruleIavoidable )
+            // InternalFlaDsl.g:3493:1: ruleIavoidable
+            {
+             before(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); 
+            pushFollow(FOLLOW_2);
+            ruleIavoidable();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__IAssignment_4"
+
+
+    // $ANTLR start "rule__ACIDavoidable__DAssignment_6"
+    // InternalFlaDsl.g:3502:1: rule__ACIDavoidable__DAssignment_6 : ( ruleDavoidable ) ;
+    public final void rule__ACIDavoidable__DAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3506:1: ( ( ruleDavoidable ) )
+            // InternalFlaDsl.g:3507:1: ( ruleDavoidable )
+            {
+            // InternalFlaDsl.g:3507:1: ( ruleDavoidable )
+            // InternalFlaDsl.g:3508:1: ruleDavoidable
+            {
+             before(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); 
+            pushFollow(FOLLOW_2);
+            ruleDavoidable();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDavoidable__DAssignment_6"
+
+
+    // $ANTLR start "rule__ACIDMitigation__AAssignment_0"
+    // InternalFlaDsl.g:3517:1: rule__ACIDMitigation__AAssignment_0 : ( ruleAmitigation ) ;
+    public final void rule__ACIDMitigation__AAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3521:1: ( ( ruleAmitigation ) )
+            // InternalFlaDsl.g:3522:1: ( ruleAmitigation )
+            {
+            // InternalFlaDsl.g:3522:1: ( ruleAmitigation )
+            // InternalFlaDsl.g:3523:1: ruleAmitigation
+            {
+             before(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleAmitigation();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__AAssignment_0"
+
+
+    // $ANTLR start "rule__ACIDMitigation__CAssignment_2"
+    // InternalFlaDsl.g:3532:1: rule__ACIDMitigation__CAssignment_2 : ( ruleCmitigation ) ;
+    public final void rule__ACIDMitigation__CAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3536:1: ( ( ruleCmitigation ) )
+            // InternalFlaDsl.g:3537:1: ( ruleCmitigation )
+            {
+            // InternalFlaDsl.g:3537:1: ( ruleCmitigation )
+            // InternalFlaDsl.g:3538:1: ruleCmitigation
+            {
+             before(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleCmitigation();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__CAssignment_2"
+
+
+    // $ANTLR start "rule__ACIDMitigation__IAssignment_4"
+    // InternalFlaDsl.g:3547:1: rule__ACIDMitigation__IAssignment_4 : ( ruleImitigation ) ;
+    public final void rule__ACIDMitigation__IAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3551:1: ( ( ruleImitigation ) )
+            // InternalFlaDsl.g:3552:1: ( ruleImitigation )
+            {
+            // InternalFlaDsl.g:3552:1: ( ruleImitigation )
+            // InternalFlaDsl.g:3553:1: ruleImitigation
+            {
+             before(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); 
+            pushFollow(FOLLOW_2);
+            ruleImitigation();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__IAssignment_4"
+
+
+    // $ANTLR start "rule__ACIDMitigation__DAssignment_6"
+    // InternalFlaDsl.g:3562:1: rule__ACIDMitigation__DAssignment_6 : ( ruleDmitigation ) ;
+    public final void rule__ACIDMitigation__DAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalFlaDsl.g:3566:1: ( ( ruleDmitigation ) )
+            // InternalFlaDsl.g:3567:1: ( ruleDmitigation )
+            {
+            // InternalFlaDsl.g:3567:1: ( ruleDmitigation )
+            // InternalFlaDsl.g:3568:1: ruleDmitigation
+            {
+             before(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); 
+            pushFollow(FOLLOW_2);
+            ruleDmitigation();
+
+            state._fsp--;
+
+             after(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ACIDMitigation__DAssignment_6"
+
+    // Delegated rules
+
+
+ 
+
+    public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000100000002L});
+    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000810L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000400000000L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000800000002L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x000001A00003F010L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x000000000003F000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x00000000001C0000L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000008000000000L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000003180000L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000380000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000580000L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000980000L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x000000000C180000L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000030180000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00000000C0180000L});
+
+}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/internal/FlaDslActivator.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/internal/FlaDslActivator.java
new file mode 100644
index 0000000..7d03be7
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/internal/FlaDslActivator.java
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.ui.internal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class FlaDslActivator extends AbstractUIPlugin {
+	
+	public static final String ORG_POLARSYS_CHESS_XTEXT_FLADSL = "org.polarsys.chess.xtext.FlaDsl";
+	
+	private static final Logger logger = Logger.getLogger(FlaDslActivator.class);
+	
+	private static FlaDslActivator INSTANCE;
+	
+	private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+	
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		INSTANCE = this;
+	}
+	
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		injectors.clear();
+		INSTANCE = null;
+		super.stop(context);
+	}
+	
+	public static FlaDslActivator getInstance() {
+		return INSTANCE;
+	}
+	
+	public Injector getInjector(String language) {
+		synchronized (injectors) {
+			Injector injector = injectors.get(language);
+			if (injector == null) {
+				injectors.put(language, injector = createInjector(language));
+			}
+			return injector;
+		}
+	}
+	
+	protected Injector createInjector(String language) {
+		try {
+			Module runtimeModule = getRuntimeModule(language);
+			Module sharedStateModule = getSharedStateModule();
+			Module uiModule = getUiModule(language);
+			Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+			return Guice.createInjector(mergedModule);
+		} catch (Exception e) {
+			logger.error("Failed to create injector for " + language);
+			logger.error(e.getMessage(), e);
+			throw new RuntimeException("Failed to create injector for " + language, e);
+		}
+	}
+
+	protected Module getRuntimeModule(String grammar) {
+		if (ORG_POLARSYS_CHESS_XTEXT_FLADSL.equals(grammar)) {
+			return new org.polarsys.chess.xtext.FlaDslRuntimeModule();
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getUiModule(String grammar) {
+		if (ORG_POLARSYS_CHESS_XTEXT_FLADSL.equals(grammar)) {
+			return new org.polarsys.chess.xtext.ui.FlaDslUiModule(this);
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getSharedStateModule() {
+		return new SharedStateModule();
+	}
+	
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java
new file mode 100644
index 0000000..cc1fd9b
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java
@@ -0,0 +1,15 @@
+/*

+ * generated by Xtext

+ */

+package org.polarsys.chess.xtext.ui;

+

+import org.eclipse.ui.plugin.AbstractUIPlugin;

+

+/**

+ * Use this class to register components to be used within the IDE.

+ */

+public class FlaDslUiModule extends org.polarsys.chess.xtext.ui.AbstractFlaDslUiModule {

+	public FlaDslUiModule(AbstractUIPlugin plugin) {

+		super(plugin);

+	}

+}

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
index 7b8b09b..a09389c 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
@@ -10,3 +10,4 @@
  */
 class FlaDslProposalProvider extends AbstractFlaDslProposalProvider {
 }
+
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.ecore b/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.ecore
new file mode 100644
index 0000000..893b767
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.ecore
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="flaDsl" nsURI="http://www.intecs.org/chess/xtext/FlaDsl" nsPrefix="flaDsl">
+  <eClassifiers xsi:type="ecore:EClass" name="Behaviour">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="rules" upperBound="-1"
+        eType="#//Expression" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Expression">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="lhs" eType="#//Lhs" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="rhs" eType="#//Rhs" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Lhs">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="failures" upperBound="-1"
+        eType="#//InputExpression" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Rhs">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="failures" upperBound="-1"
+        eType="#//OutputExpression" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InputExpression">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="ecore:EClass platform:/resource/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="failureExpr" eType="#//InFailureExpr"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="OutputExpression">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="ecore:EClass platform:/resource/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="failureExpr" eType="#//OutFailureExpr"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InFailureExpr">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="failures" upperBound="-1"
+        eType="#//Definitions" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="OutFailureExpr">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="failures" upperBound="-1"
+        eType="#//Definitions" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Definitions"/>
+  <eClassifiers xsi:type="ecore:EClass" name="FailureDefinition" eSuperTypes="#//Definitions">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//FailureType"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="acidAvoidable" eType="#//ACIDavoidable"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="NoFailureDefinition" eSuperTypes="#//Definitions #//ComplexNofailureDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="acidMitigation" eType="#//ACIDMitigation"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ComplexNofailureDefinition" eSuperTypes="#//Definitions"/>
+  <eClassifiers xsi:type="ecore:EClass" name="WildcardDefinition" eSuperTypes="#//Definitions"/>
+  <eClassifiers xsi:type="ecore:EClass" name="VariableDefinition" eSuperTypes="#//Definitions">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="variableName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="FailureType">
+    <eLiterals name="NO_FAILURE" literal="noFailure"/>
+    <eLiterals name="EARLY" value="1" literal="early"/>
+    <eLiterals name="LATE" value="2" literal="late"/>
+    <eLiterals name="COMMISSION" value="3" literal="commission"/>
+    <eLiterals name="OMISSION" value="4" literal="omission"/>
+    <eLiterals name="VALUE_SUBTLE" value="5" literal="valueSubtle"/>
+    <eLiterals name="VALUE_COARSE" value="6" literal="valueCoarse"/>
+    <eLiterals name="WILDCARD" value="7" literal="wildcard"/>
+    <eLiterals name="VARIABLE" value="8" literal="variable"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ACIDavoidable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="a" eType="#//Aavoidable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="c" eType="#//Cavoidable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="i" eType="#//Iavoidable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="d" eType="#//Davoidable"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Aavoidable">
+    <eLiterals name="INCOMPLETION" literal="incompletion"/>
+    <eLiterals name="NONE" value="1" literal="none"/>
+    <eLiterals name="UNSPECIFIED" value="2" literal="unspecified"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Cavoidable">
+    <eLiterals name="INCONSISTENCY" literal="inconsistency"/>
+    <eLiterals name="NONE" value="1" literal="none"/>
+    <eLiterals name="UNSPECIFIED" value="2" literal="unspecified"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Iavoidable">
+    <eLiterals name="INTERFERENCE" literal="interference"/>
+    <eLiterals name="NONE" value="1" literal="none"/>
+    <eLiterals name="UNSPECIFIED" value="2" literal="unspecified"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Davoidable">
+    <eLiterals name="IMPERMANENCE" literal="impermanence"/>
+    <eLiterals name="NONE" value="1" literal="none"/>
+    <eLiterals name="UNSPECIFIED" value="2" literal="unspecified"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ACIDMitigation">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="a" eType="#//Amitigation"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="c" eType="#//Cmitigation"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="i" eType="#//Imitigation"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="d" eType="#//Dmitigation"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Amitigation">
+    <eLiterals name="ALL_OR_NOTHING" literal="all_or_nothing"/>
+    <eLiterals name="ALL_OR_COMPENSATION" value="1" literal="all_or_compensation"/>
+    <eLiterals name="NONE" value="2" literal="none"/>
+    <eLiterals name="UNSPECIFIED" value="3" literal="unspecified"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Cmitigation">
+    <eLiterals name="FULL_CONSISTENCY" literal="full_consistency"/>
+    <eLiterals name="RANGE_VIOLATION_ALLOWED" value="1" literal="range_violation_allowed"/>
+    <eLiterals name="NONE" value="2" literal="none"/>
+    <eLiterals name="UNSPECIFIED" value="3" literal="unspecified"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Imitigation">
+    <eLiterals name="SERIALIZABLE" literal="serializable"/>
+    <eLiterals name="PORTABLE_LEVEL" value="1" literal="portable_level"/>
+    <eLiterals name="NONE" value="2" literal="none"/>
+    <eLiterals name="UNSPECIFIED" value="3" literal="unspecified"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Dmitigation">
+    <eLiterals name="NO_LOSS" literal="no_loss"/>
+    <eLiterals name="PARTIAL_LOSS_ALLOWED" value="1" literal="partial_loss_allowed"/>
+    <eLiterals name="NONE" value="2" literal="none"/>
+    <eLiterals name="UNSPECIFIED" value="3" literal="unspecified"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.genmodel b/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.genmodel
new file mode 100644
index 0000000..4caeb42
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/model/generated/FlaDsl.genmodel
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.polarsys.chess.xtext.fladsl/src-gen" editDirectory="/org.polarsys.chess.xtext.fladsl.edit/src"
+    editorDirectory="/org.polarsys.chess.xtext.fladsl.editor/src" modelPluginID="org.polarsys.chess.xtext.fladsl"
+    forceOverwrite="true" modelName="FlaDsl" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    complianceLevel="6.0" copyrightFields="false" editPluginID="org.polarsys.chess.xtext.fladsl.edit"
+    editorPluginID="org.polarsys.chess.xtext.fladsl.editor" runtimeVersion="2.12"
+    usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/resource/org.eclipse.uml2.uml/model/UML.genmodel#//uml">
+  <genPackages prefix="FlaDsl" basePackage="org.polarsys.chess.xtext" disposableProviderFactory="true"
+      fileExtensions="fladsl" ecorePackage="FlaDsl.ecore#/">
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//FailureType">
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/NO_FAILURE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/EARLY"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/LATE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/COMMISSION"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/OMISSION"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/VALUE_SUBTLE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/VALUE_COARSE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/WILDCARD"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//FailureType/VARIABLE"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Aavoidable">
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Aavoidable/INCOMPLETION"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Aavoidable/NONE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Aavoidable/UNSPECIFIED"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Cavoidable">
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cavoidable/INCONSISTENCY"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cavoidable/NONE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cavoidable/UNSPECIFIED"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Iavoidable">
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Iavoidable/INTERFERENCE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Iavoidable/NONE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Iavoidable/UNSPECIFIED"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Davoidable">
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Davoidable/IMPERMANENCE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Davoidable/NONE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Davoidable/UNSPECIFIED"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Amitigation">
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Amitigation/ALL_OR_NOTHING"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Amitigation/ALL_OR_COMPENSATION"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Amitigation/NONE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Amitigation/UNSPECIFIED"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Cmitigation">
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cmitigation/FULL_CONSISTENCY"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cmitigation/RANGE_VIOLATION_ALLOWED"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cmitigation/NONE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Cmitigation/UNSPECIFIED"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Imitigation">
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Imitigation/SERIALIZABLE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Imitigation/PORTABLE_LEVEL"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Imitigation/NONE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Imitigation/UNSPECIFIED"/>
+    </genEnums>
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="FlaDsl.ecore#//Dmitigation">
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Dmitigation/NO_LOSS"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Dmitigation/PARTIAL_LOSS_ALLOWED"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Dmitigation/NONE"/>
+      <genEnumLiterals ecoreEnumLiteral="FlaDsl.ecore#//Dmitigation/UNSPECIFIED"/>
+    </genEnums>
+    <genClasses ecoreClass="FlaDsl.ecore#//Behaviour">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Behaviour/rules"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//Expression">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Expression/lhs"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Expression/rhs"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//Lhs">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Lhs/failures"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//Rhs">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//Rhs/failures"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//InputExpression">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//InputExpression/ref"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//InputExpression/failureExpr"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//OutputExpression">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//OutputExpression/ref"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//OutputExpression/failureExpr"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//InFailureExpr">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//InFailureExpr/failures"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//OutFailureExpr">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//OutFailureExpr/failures"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//Definitions"/>
+    <genClasses ecoreClass="FlaDsl.ecore#//FailureDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//FailureDefinition/type"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//FailureDefinition/acidAvoidable"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//NoFailureDefinition">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FlaDsl.ecore#//NoFailureDefinition/acidMitigation"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//ComplexNofailureDefinition"/>
+    <genClasses ecoreClass="FlaDsl.ecore#//WildcardDefinition"/>
+    <genClasses ecoreClass="FlaDsl.ecore#//VariableDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//VariableDefinition/variableName"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//ACIDavoidable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDavoidable/a"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDavoidable/c"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDavoidable/i"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDavoidable/d"/>
+    </genClasses>
+    <genClasses ecoreClass="FlaDsl.ecore#//ACIDMitigation">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDMitigation/a"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDMitigation/c"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDMitigation/i"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FlaDsl.ecore#//ACIDMitigation/d"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml_gen b/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml_gen
new file mode 100644
index 0000000..ca15dd9
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml_gen
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.0"?>

+

+<plugin>

+

+  <extension point="org.eclipse.emf.ecore.generated_package">

+    <package 

+       uri = "http://www.intecs.org/chess/xtext/FlaDsl" 

+       class = "org.polarsys.chess.xtext.flaDsl.FlaDslPackage"

+       genModel = "model/generated/FlaDsl.genmodel" /> 

+	

+  </extension>

+

+

+

+</plugin>

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/AbstractFlaDslRuntimeModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/AbstractFlaDslRuntimeModule.java
new file mode 100644
index 0000000..d25a7cd
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/AbstractFlaDslRuntimeModule.java
@@ -0,0 +1,156 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.polarsys.chess.xtext.FlaDslRuntimeModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractFlaDslRuntimeModule extends org.eclipse.xtext.common.types.DefaultCommonTypesRuntimeModule {
+
+	protected Properties properties = null;
+
+	@Override
+	public void configure(Binder binder) {
+		properties = tryBindProperties(binder, "org/polarsys/chess/xtext/FlaDsl.properties");
+		super.configure(binder);
+	}
+	
+	public void configureLanguageName(Binder binder) {
+		binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.polarsys.chess.xtext.FlaDsl");
+	}
+	
+	public void configureFileExtensions(Binder binder) {
+		if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
+			binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("fladsl");
+	}
+	
+	// contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+	public java.lang.ClassLoader bindClassLoaderToInstance() {
+		return getClass().getClassLoader();
+	}
+
+	// contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+	public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+		return org.polarsys.chess.xtext.services.FlaDslGrammarAccess.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+		return org.polarsys.chess.xtext.serializer.FlaDslSemanticSequencer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+		return org.polarsys.chess.xtext.serializer.FlaDslSyntacticSequencer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.ISerializer> bindISerializer() {
+		return org.eclipse.xtext.serializer.impl.Serializer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+		return org.polarsys.chess.xtext.parser.antlr.FlaDslParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+		return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+		return org.polarsys.chess.xtext.parser.antlr.FlaDslAntlrTokenFileProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+		return org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public com.google.inject.Provider<org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer> provideInternalFlaDslLexer() {
+		return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public void configureRuntimeLexer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+		return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.validation.ValidatorFragment
+	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.polarsys.chess.xtext.validation.FlaDslValidator> bindFlaDslValidator() {
+		return org.polarsys.chess.xtext.validation.FlaDslValidator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+		return org.polarsys.chess.xtext.scoping.FlaDslScopeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+		binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+	}
+
+	// contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+	public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+		return org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() {
+		return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() {
+		return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptions(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
+		return org.polarsys.chess.xtext.generator.FlaDslGenerator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+	public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+		return org.polarsys.chess.xtext.formatting.FlaDslFormatter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+		return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class;
+	}
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDsl.xtextbin b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDsl.xtextbin
new file mode 100644
index 0000000..23ee3c8
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDsl.xtextbin
Binary files differ
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDslStandaloneSetupGenerated.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDslStandaloneSetupGenerated.java
new file mode 100644
index 0000000..10a22a2
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/FlaDslStandaloneSetupGenerated.java
@@ -0,0 +1,45 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.ISetup;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+@SuppressWarnings("all")
+public class FlaDslStandaloneSetupGenerated implements ISetup {
+
+	@Override
+	public Injector createInjectorAndDoEMFRegistration() {
+		org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup();
+
+		Injector injector = createInjector();
+		register(injector);
+		return injector;
+	}
+	
+	public Injector createInjector() {
+		return Guice.createInjector(new org.polarsys.chess.xtext.FlaDslRuntimeModule());
+	}
+	
+	public void register(Injector injector) {
+	if (!EPackage.Registry.INSTANCE.containsKey("http://www.intecs.org/chess/xtext/FlaDsl")) {
+		EPackage.Registry.INSTANCE.put("http://www.intecs.org/chess/xtext/FlaDsl", org.polarsys.chess.xtext.flaDsl.FlaDslPackage.eINSTANCE);
+	}
+
+		org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+		org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
+		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("fladsl", resourceFactory);
+		org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("fladsl", serviceProvider);
+		
+
+
+	}
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDMitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDMitigation.java
new file mode 100644
index 0000000..818ea51
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDMitigation.java
@@ -0,0 +1,144 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>ACID Mitigation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getA <em>A</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getC <em>C</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getI <em>I</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getD <em>D</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation()
+ * @model
+ * @generated
+ */
+public interface ACIDMitigation extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>A</b></em>' attribute.
+   * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Amitigation}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>A</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>A</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+   * @see #setA(Amitigation)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation_A()
+   * @model
+   * @generated
+   */
+  Amitigation getA();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getA <em>A</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>A</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+   * @see #getA()
+   * @generated
+   */
+  void setA(Amitigation value);
+
+  /**
+   * Returns the value of the '<em><b>C</b></em>' attribute.
+   * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Cmitigation}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>C</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>C</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+   * @see #setC(Cmitigation)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation_C()
+   * @model
+   * @generated
+   */
+  Cmitigation getC();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getC <em>C</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>C</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+   * @see #getC()
+   * @generated
+   */
+  void setC(Cmitigation value);
+
+  /**
+   * Returns the value of the '<em><b>I</b></em>' attribute.
+   * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Imitigation}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>I</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>I</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+   * @see #setI(Imitigation)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation_I()
+   * @model
+   * @generated
+   */
+  Imitigation getI();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getI <em>I</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>I</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+   * @see #getI()
+   * @generated
+   */
+  void setI(Imitigation value);
+
+  /**
+   * Returns the value of the '<em><b>D</b></em>' attribute.
+   * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Dmitigation}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>D</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>D</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+   * @see #setD(Dmitigation)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDMitigation_D()
+   * @model
+   * @generated
+   */
+  Dmitigation getD();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getD <em>D</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>D</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+   * @see #getD()
+   * @generated
+   */
+  void setD(Dmitigation value);
+
+} // ACIDMitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDavoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDavoidable.java
new file mode 100644
index 0000000..9c9f407
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ACIDavoidable.java
@@ -0,0 +1,144 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>ACI Davoidable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getA <em>A</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getC <em>C</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getI <em>I</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getD <em>D</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable()
+ * @model
+ * @generated
+ */
+public interface ACIDavoidable extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>A</b></em>' attribute.
+   * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Aavoidable}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>A</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>A</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+   * @see #setA(Aavoidable)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable_A()
+   * @model
+   * @generated
+   */
+  Aavoidable getA();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getA <em>A</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>A</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+   * @see #getA()
+   * @generated
+   */
+  void setA(Aavoidable value);
+
+  /**
+   * Returns the value of the '<em><b>C</b></em>' attribute.
+   * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Cavoidable}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>C</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>C</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+   * @see #setC(Cavoidable)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable_C()
+   * @model
+   * @generated
+   */
+  Cavoidable getC();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getC <em>C</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>C</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+   * @see #getC()
+   * @generated
+   */
+  void setC(Cavoidable value);
+
+  /**
+   * Returns the value of the '<em><b>I</b></em>' attribute.
+   * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Iavoidable}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>I</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>I</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+   * @see #setI(Iavoidable)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable_I()
+   * @model
+   * @generated
+   */
+  Iavoidable getI();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getI <em>I</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>I</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+   * @see #getI()
+   * @generated
+   */
+  void setI(Iavoidable value);
+
+  /**
+   * Returns the value of the '<em><b>D</b></em>' attribute.
+   * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.Davoidable}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>D</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>D</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+   * @see #setD(Davoidable)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getACIDavoidable_D()
+   * @model
+   * @generated
+   */
+  Davoidable getD();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getD <em>D</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>D</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+   * @see #getD()
+   * @generated
+   */
+  void setD(Davoidable value);
+
+} // ACIDavoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Aavoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Aavoidable.java
new file mode 100644
index 0000000..945f2c8
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Aavoidable.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Aavoidable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getAavoidable()
+ * @model
+ * @generated
+ */
+public enum Aavoidable implements Enumerator
+{
+  /**
+   * The '<em><b>INCOMPLETION</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #INCOMPLETION_VALUE
+   * @generated
+   * @ordered
+   */
+  INCOMPLETION(0, "INCOMPLETION", "incompletion"),
+
+  /**
+   * The '<em><b>NONE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NONE_VALUE
+   * @generated
+   * @ordered
+   */
+  NONE(1, "NONE", "none"),
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED_VALUE
+   * @generated
+   * @ordered
+   */
+  UNSPECIFIED(2, "UNSPECIFIED", "unspecified");
+
+  /**
+   * The '<em><b>INCOMPLETION</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>INCOMPLETION</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #INCOMPLETION
+   * @model literal="incompletion"
+   * @generated
+   * @ordered
+   */
+  public static final int INCOMPLETION_VALUE = 0;
+
+  /**
+   * The '<em><b>NONE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NONE
+   * @model literal="none"
+   * @generated
+   * @ordered
+   */
+  public static final int NONE_VALUE = 1;
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED
+   * @model literal="unspecified"
+   * @generated
+   * @ordered
+   */
+  public static final int UNSPECIFIED_VALUE = 2;
+
+  /**
+   * An array of all the '<em><b>Aavoidable</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final Aavoidable[] VALUES_ARRAY =
+    new Aavoidable[]
+    {
+      INCOMPLETION,
+      NONE,
+      UNSPECIFIED,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Aavoidable</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<Aavoidable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Aavoidable</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Aavoidable get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Aavoidable result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Aavoidable</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Aavoidable getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Aavoidable result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Aavoidable</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Aavoidable get(int value)
+  {
+    switch (value)
+    {
+      case INCOMPLETION_VALUE: return INCOMPLETION;
+      case NONE_VALUE: return NONE;
+      case UNSPECIFIED_VALUE: return UNSPECIFIED;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private Aavoidable(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //Aavoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Amitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Amitigation.java
new file mode 100644
index 0000000..1be6da8
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Amitigation.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Amitigation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getAmitigation()
+ * @model
+ * @generated
+ */
+public enum Amitigation implements Enumerator
+{
+  /**
+   * The '<em><b>ALL OR NOTHING</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #ALL_OR_NOTHING_VALUE
+   * @generated
+   * @ordered
+   */
+  ALL_OR_NOTHING(0, "ALL_OR_NOTHING", "all_or_nothing"),
+
+  /**
+   * The '<em><b>ALL OR COMPENSATION</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #ALL_OR_COMPENSATION_VALUE
+   * @generated
+   * @ordered
+   */
+  ALL_OR_COMPENSATION(1, "ALL_OR_COMPENSATION", "all_or_compensation"),
+
+  /**
+   * The '<em><b>NONE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NONE_VALUE
+   * @generated
+   * @ordered
+   */
+  NONE(2, "NONE", "none"),
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED_VALUE
+   * @generated
+   * @ordered
+   */
+  UNSPECIFIED(3, "UNSPECIFIED", "unspecified");
+
+  /**
+   * The '<em><b>ALL OR NOTHING</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>ALL OR NOTHING</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #ALL_OR_NOTHING
+   * @model literal="all_or_nothing"
+   * @generated
+   * @ordered
+   */
+  public static final int ALL_OR_NOTHING_VALUE = 0;
+
+  /**
+   * The '<em><b>ALL OR COMPENSATION</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>ALL OR COMPENSATION</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #ALL_OR_COMPENSATION
+   * @model literal="all_or_compensation"
+   * @generated
+   * @ordered
+   */
+  public static final int ALL_OR_COMPENSATION_VALUE = 1;
+
+  /**
+   * The '<em><b>NONE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NONE
+   * @model literal="none"
+   * @generated
+   * @ordered
+   */
+  public static final int NONE_VALUE = 2;
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED
+   * @model literal="unspecified"
+   * @generated
+   * @ordered
+   */
+  public static final int UNSPECIFIED_VALUE = 3;
+
+  /**
+   * An array of all the '<em><b>Amitigation</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final Amitigation[] VALUES_ARRAY =
+    new Amitigation[]
+    {
+      ALL_OR_NOTHING,
+      ALL_OR_COMPENSATION,
+      NONE,
+      UNSPECIFIED,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Amitigation</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<Amitigation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Amitigation</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Amitigation get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Amitigation result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Amitigation</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Amitigation getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Amitigation result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Amitigation</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Amitigation get(int value)
+  {
+    switch (value)
+    {
+      case ALL_OR_NOTHING_VALUE: return ALL_OR_NOTHING;
+      case ALL_OR_COMPENSATION_VALUE: return ALL_OR_COMPENSATION;
+      case NONE_VALUE: return NONE;
+      case UNSPECIFIED_VALUE: return UNSPECIFIED;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private Amitigation(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //Amitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Behaviour.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Behaviour.java
new file mode 100644
index 0000000..ab762ea
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Behaviour.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Behaviour</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.Behaviour#getRules <em>Rules</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getBehaviour()
+ * @model
+ * @generated
+ */
+public interface Behaviour extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Rules</b></em>' containment reference list.
+   * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.Expression}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Rules</em>' containment reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Rules</em>' containment reference list.
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getBehaviour_Rules()
+   * @model containment="true"
+   * @generated
+   */
+  EList<Expression> getRules();
+
+} // Behaviour
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cavoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cavoidable.java
new file mode 100644
index 0000000..c4d9c9a
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cavoidable.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Cavoidable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getCavoidable()
+ * @model
+ * @generated
+ */
+public enum Cavoidable implements Enumerator
+{
+  /**
+   * The '<em><b>INCONSISTENCY</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #INCONSISTENCY_VALUE
+   * @generated
+   * @ordered
+   */
+  INCONSISTENCY(0, "INCONSISTENCY", "inconsistency"),
+
+  /**
+   * The '<em><b>NONE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NONE_VALUE
+   * @generated
+   * @ordered
+   */
+  NONE(1, "NONE", "none"),
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED_VALUE
+   * @generated
+   * @ordered
+   */
+  UNSPECIFIED(2, "UNSPECIFIED", "unspecified");
+
+  /**
+   * The '<em><b>INCONSISTENCY</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>INCONSISTENCY</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #INCONSISTENCY
+   * @model literal="inconsistency"
+   * @generated
+   * @ordered
+   */
+  public static final int INCONSISTENCY_VALUE = 0;
+
+  /**
+   * The '<em><b>NONE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NONE
+   * @model literal="none"
+   * @generated
+   * @ordered
+   */
+  public static final int NONE_VALUE = 1;
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED
+   * @model literal="unspecified"
+   * @generated
+   * @ordered
+   */
+  public static final int UNSPECIFIED_VALUE = 2;
+
+  /**
+   * An array of all the '<em><b>Cavoidable</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final Cavoidable[] VALUES_ARRAY =
+    new Cavoidable[]
+    {
+      INCONSISTENCY,
+      NONE,
+      UNSPECIFIED,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Cavoidable</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<Cavoidable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Cavoidable</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Cavoidable get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Cavoidable result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Cavoidable</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Cavoidable getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Cavoidable result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Cavoidable</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Cavoidable get(int value)
+  {
+    switch (value)
+    {
+      case INCONSISTENCY_VALUE: return INCONSISTENCY;
+      case NONE_VALUE: return NONE;
+      case UNSPECIFIED_VALUE: return UNSPECIFIED;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private Cavoidable(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //Cavoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cmitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cmitigation.java
new file mode 100644
index 0000000..cbcadf1
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Cmitigation.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Cmitigation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getCmitigation()
+ * @model
+ * @generated
+ */
+public enum Cmitigation implements Enumerator
+{
+  /**
+   * The '<em><b>FULL CONSISTENCY</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #FULL_CONSISTENCY_VALUE
+   * @generated
+   * @ordered
+   */
+  FULL_CONSISTENCY(0, "FULL_CONSISTENCY", "full_consistency"),
+
+  /**
+   * The '<em><b>RANGE VIOLATION ALLOWED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #RANGE_VIOLATION_ALLOWED_VALUE
+   * @generated
+   * @ordered
+   */
+  RANGE_VIOLATION_ALLOWED(1, "RANGE_VIOLATION_ALLOWED", "range_violation_allowed"),
+
+  /**
+   * The '<em><b>NONE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NONE_VALUE
+   * @generated
+   * @ordered
+   */
+  NONE(2, "NONE", "none"),
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED_VALUE
+   * @generated
+   * @ordered
+   */
+  UNSPECIFIED(3, "UNSPECIFIED", "unspecified");
+
+  /**
+   * The '<em><b>FULL CONSISTENCY</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>FULL CONSISTENCY</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #FULL_CONSISTENCY
+   * @model literal="full_consistency"
+   * @generated
+   * @ordered
+   */
+  public static final int FULL_CONSISTENCY_VALUE = 0;
+
+  /**
+   * The '<em><b>RANGE VIOLATION ALLOWED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>RANGE VIOLATION ALLOWED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #RANGE_VIOLATION_ALLOWED
+   * @model literal="range_violation_allowed"
+   * @generated
+   * @ordered
+   */
+  public static final int RANGE_VIOLATION_ALLOWED_VALUE = 1;
+
+  /**
+   * The '<em><b>NONE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NONE
+   * @model literal="none"
+   * @generated
+   * @ordered
+   */
+  public static final int NONE_VALUE = 2;
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED
+   * @model literal="unspecified"
+   * @generated
+   * @ordered
+   */
+  public static final int UNSPECIFIED_VALUE = 3;
+
+  /**
+   * An array of all the '<em><b>Cmitigation</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final Cmitigation[] VALUES_ARRAY =
+    new Cmitigation[]
+    {
+      FULL_CONSISTENCY,
+      RANGE_VIOLATION_ALLOWED,
+      NONE,
+      UNSPECIFIED,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Cmitigation</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<Cmitigation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Cmitigation</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Cmitigation get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Cmitigation result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Cmitigation</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Cmitigation getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Cmitigation result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Cmitigation</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Cmitigation get(int value)
+  {
+    switch (value)
+    {
+      case FULL_CONSISTENCY_VALUE: return FULL_CONSISTENCY;
+      case RANGE_VIOLATION_ALLOWED_VALUE: return RANGE_VIOLATION_ALLOWED;
+      case NONE_VALUE: return NONE;
+      case UNSPECIFIED_VALUE: return UNSPECIFIED;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private Cmitigation(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //Cmitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ComplexNofailureDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ComplexNofailureDefinition.java
new file mode 100644
index 0000000..57a48b6
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/ComplexNofailureDefinition.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Complex Nofailure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getComplexNofailureDefinition()
+ * @model
+ * @generated
+ */
+public interface ComplexNofailureDefinition extends Definitions
+{
+} // ComplexNofailureDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Davoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Davoidable.java
new file mode 100644
index 0000000..f1c3681
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Davoidable.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Davoidable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getDavoidable()
+ * @model
+ * @generated
+ */
+public enum Davoidable implements Enumerator
+{
+  /**
+   * The '<em><b>IMPERMANENCE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #IMPERMANENCE_VALUE
+   * @generated
+   * @ordered
+   */
+  IMPERMANENCE(0, "IMPERMANENCE", "impermanence"),
+
+  /**
+   * The '<em><b>NONE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NONE_VALUE
+   * @generated
+   * @ordered
+   */
+  NONE(1, "NONE", "none"),
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED_VALUE
+   * @generated
+   * @ordered
+   */
+  UNSPECIFIED(2, "UNSPECIFIED", "unspecified");
+
+  /**
+   * The '<em><b>IMPERMANENCE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>IMPERMANENCE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #IMPERMANENCE
+   * @model literal="impermanence"
+   * @generated
+   * @ordered
+   */
+  public static final int IMPERMANENCE_VALUE = 0;
+
+  /**
+   * The '<em><b>NONE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NONE
+   * @model literal="none"
+   * @generated
+   * @ordered
+   */
+  public static final int NONE_VALUE = 1;
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED
+   * @model literal="unspecified"
+   * @generated
+   * @ordered
+   */
+  public static final int UNSPECIFIED_VALUE = 2;
+
+  /**
+   * An array of all the '<em><b>Davoidable</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final Davoidable[] VALUES_ARRAY =
+    new Davoidable[]
+    {
+      IMPERMANENCE,
+      NONE,
+      UNSPECIFIED,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Davoidable</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<Davoidable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Davoidable</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Davoidable get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Davoidable result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Davoidable</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Davoidable getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Davoidable result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Davoidable</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Davoidable get(int value)
+  {
+    switch (value)
+    {
+      case IMPERMANENCE_VALUE: return IMPERMANENCE;
+      case NONE_VALUE: return NONE;
+      case UNSPECIFIED_VALUE: return UNSPECIFIED;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private Davoidable(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //Davoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Definitions.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Definitions.java
new file mode 100644
index 0000000..39823de
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Definitions.java
@@ -0,0 +1,19 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Definitions</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getDefinitions()
+ * @model
+ * @generated
+ */
+public interface Definitions extends EObject
+{
+} // Definitions
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Dmitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Dmitigation.java
new file mode 100644
index 0000000..677e27b
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Dmitigation.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Dmitigation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getDmitigation()
+ * @model
+ * @generated
+ */
+public enum Dmitigation implements Enumerator
+{
+  /**
+   * The '<em><b>NO LOSS</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NO_LOSS_VALUE
+   * @generated
+   * @ordered
+   */
+  NO_LOSS(0, "NO_LOSS", "no_loss"),
+
+  /**
+   * The '<em><b>PARTIAL LOSS ALLOWED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #PARTIAL_LOSS_ALLOWED_VALUE
+   * @generated
+   * @ordered
+   */
+  PARTIAL_LOSS_ALLOWED(1, "PARTIAL_LOSS_ALLOWED", "partial_loss_allowed"),
+
+  /**
+   * The '<em><b>NONE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NONE_VALUE
+   * @generated
+   * @ordered
+   */
+  NONE(2, "NONE", "none"),
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED_VALUE
+   * @generated
+   * @ordered
+   */
+  UNSPECIFIED(3, "UNSPECIFIED", "unspecified");
+
+  /**
+   * The '<em><b>NO LOSS</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NO LOSS</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NO_LOSS
+   * @model literal="no_loss"
+   * @generated
+   * @ordered
+   */
+  public static final int NO_LOSS_VALUE = 0;
+
+  /**
+   * The '<em><b>PARTIAL LOSS ALLOWED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>PARTIAL LOSS ALLOWED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #PARTIAL_LOSS_ALLOWED
+   * @model literal="partial_loss_allowed"
+   * @generated
+   * @ordered
+   */
+  public static final int PARTIAL_LOSS_ALLOWED_VALUE = 1;
+
+  /**
+   * The '<em><b>NONE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NONE
+   * @model literal="none"
+   * @generated
+   * @ordered
+   */
+  public static final int NONE_VALUE = 2;
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED
+   * @model literal="unspecified"
+   * @generated
+   * @ordered
+   */
+  public static final int UNSPECIFIED_VALUE = 3;
+
+  /**
+   * An array of all the '<em><b>Dmitigation</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final Dmitigation[] VALUES_ARRAY =
+    new Dmitigation[]
+    {
+      NO_LOSS,
+      PARTIAL_LOSS_ALLOWED,
+      NONE,
+      UNSPECIFIED,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Dmitigation</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<Dmitigation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Dmitigation</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Dmitigation get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Dmitigation result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Dmitigation</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Dmitigation getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Dmitigation result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Dmitigation</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Dmitigation get(int value)
+  {
+    switch (value)
+    {
+      case NO_LOSS_VALUE: return NO_LOSS;
+      case PARTIAL_LOSS_ALLOWED_VALUE: return PARTIAL_LOSS_ALLOWED;
+      case NONE_VALUE: return NONE;
+      case UNSPECIFIED_VALUE: return UNSPECIFIED;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private Dmitigation(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //Dmitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Expression.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Expression.java
new file mode 100644
index 0000000..57bdeb1
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Expression.java
@@ -0,0 +1,78 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.Expression#getLhs <em>Lhs</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.Expression#getRhs <em>Rhs</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getExpression()
+ * @model
+ * @generated
+ */
+public interface Expression extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Lhs</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Lhs</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Lhs</em>' containment reference.
+   * @see #setLhs(Lhs)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getExpression_Lhs()
+   * @model containment="true"
+   * @generated
+   */
+  Lhs getLhs();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.Expression#getLhs <em>Lhs</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Lhs</em>' containment reference.
+   * @see #getLhs()
+   * @generated
+   */
+  void setLhs(Lhs value);
+
+  /**
+   * Returns the value of the '<em><b>Rhs</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Rhs</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Rhs</em>' containment reference.
+   * @see #setRhs(Rhs)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getExpression_Rhs()
+   * @model containment="true"
+   * @generated
+   */
+  Rhs getRhs();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.Expression#getRhs <em>Rhs</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Rhs</em>' containment reference.
+   * @see #getRhs()
+   * @generated
+   */
+  void setRhs(Rhs value);
+
+} // Expression
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureDefinition.java
new file mode 100644
index 0000000..e354da3
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureDefinition.java
@@ -0,0 +1,80 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Failure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getType <em>Type</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getAcidAvoidable <em>Acid Avoidable</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getFailureDefinition()
+ * @model
+ * @generated
+ */
+public interface FailureDefinition extends Definitions
+{
+  /**
+   * Returns the value of the '<em><b>Type</b></em>' attribute.
+   * The literals are from the enumeration {@link org.polarsys.chess.xtext.flaDsl.FailureType}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Type</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Type</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.FailureType
+   * @see #setType(FailureType)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getFailureDefinition_Type()
+   * @model
+   * @generated
+   */
+  FailureType getType();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getType <em>Type</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Type</em>' attribute.
+   * @see org.polarsys.chess.xtext.flaDsl.FailureType
+   * @see #getType()
+   * @generated
+   */
+  void setType(FailureType value);
+
+  /**
+   * Returns the value of the '<em><b>Acid Avoidable</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Acid Avoidable</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Acid Avoidable</em>' containment reference.
+   * @see #setAcidAvoidable(ACIDavoidable)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getFailureDefinition_AcidAvoidable()
+   * @model containment="true"
+   * @generated
+   */
+  ACIDavoidable getAcidAvoidable();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getAcidAvoidable <em>Acid Avoidable</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Acid Avoidable</em>' containment reference.
+   * @see #getAcidAvoidable()
+   * @generated
+   */
+  void setAcidAvoidable(ACIDavoidable value);
+
+} // FailureDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureType.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureType.java
new file mode 100644
index 0000000..ef396b2
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FailureType.java
@@ -0,0 +1,418 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Failure Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getFailureType()
+ * @model
+ * @generated
+ */
+public enum FailureType implements Enumerator
+{
+  /**
+   * The '<em><b>NO FAILURE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NO_FAILURE_VALUE
+   * @generated
+   * @ordered
+   */
+  NO_FAILURE(0, "NO_FAILURE", "noFailure"),
+
+  /**
+   * The '<em><b>EARLY</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #EARLY_VALUE
+   * @generated
+   * @ordered
+   */
+  EARLY(1, "EARLY", "early"),
+
+  /**
+   * The '<em><b>LATE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #LATE_VALUE
+   * @generated
+   * @ordered
+   */
+  LATE(2, "LATE", "late"),
+
+  /**
+   * The '<em><b>COMMISSION</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #COMMISSION_VALUE
+   * @generated
+   * @ordered
+   */
+  COMMISSION(3, "COMMISSION", "commission"),
+
+  /**
+   * The '<em><b>OMISSION</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #OMISSION_VALUE
+   * @generated
+   * @ordered
+   */
+  OMISSION(4, "OMISSION", "omission"),
+
+  /**
+   * The '<em><b>VALUE SUBTLE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #VALUE_SUBTLE_VALUE
+   * @generated
+   * @ordered
+   */
+  VALUE_SUBTLE(5, "VALUE_SUBTLE", "valueSubtle"),
+
+  /**
+   * The '<em><b>VALUE COARSE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #VALUE_COARSE_VALUE
+   * @generated
+   * @ordered
+   */
+  VALUE_COARSE(6, "VALUE_COARSE", "valueCoarse"),
+
+  /**
+   * The '<em><b>WILDCARD</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #WILDCARD_VALUE
+   * @generated
+   * @ordered
+   */
+  WILDCARD(7, "WILDCARD", "wildcard"),
+
+  /**
+   * The '<em><b>VARIABLE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #VARIABLE_VALUE
+   * @generated
+   * @ordered
+   */
+  VARIABLE(8, "VARIABLE", "variable");
+
+  /**
+   * The '<em><b>NO FAILURE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NO FAILURE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NO_FAILURE
+   * @model literal="noFailure"
+   * @generated
+   * @ordered
+   */
+  public static final int NO_FAILURE_VALUE = 0;
+
+  /**
+   * The '<em><b>EARLY</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>EARLY</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #EARLY
+   * @model literal="early"
+   * @generated
+   * @ordered
+   */
+  public static final int EARLY_VALUE = 1;
+
+  /**
+   * The '<em><b>LATE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>LATE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #LATE
+   * @model literal="late"
+   * @generated
+   * @ordered
+   */
+  public static final int LATE_VALUE = 2;
+
+  /**
+   * The '<em><b>COMMISSION</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>COMMISSION</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #COMMISSION
+   * @model literal="commission"
+   * @generated
+   * @ordered
+   */
+  public static final int COMMISSION_VALUE = 3;
+
+  /**
+   * The '<em><b>OMISSION</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>OMISSION</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #OMISSION
+   * @model literal="omission"
+   * @generated
+   * @ordered
+   */
+  public static final int OMISSION_VALUE = 4;
+
+  /**
+   * The '<em><b>VALUE SUBTLE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>VALUE SUBTLE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #VALUE_SUBTLE
+   * @model literal="valueSubtle"
+   * @generated
+   * @ordered
+   */
+  public static final int VALUE_SUBTLE_VALUE = 5;
+
+  /**
+   * The '<em><b>VALUE COARSE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>VALUE COARSE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #VALUE_COARSE
+   * @model literal="valueCoarse"
+   * @generated
+   * @ordered
+   */
+  public static final int VALUE_COARSE_VALUE = 6;
+
+  /**
+   * The '<em><b>WILDCARD</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>WILDCARD</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #WILDCARD
+   * @model literal="wildcard"
+   * @generated
+   * @ordered
+   */
+  public static final int WILDCARD_VALUE = 7;
+
+  /**
+   * The '<em><b>VARIABLE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>VARIABLE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #VARIABLE
+   * @model literal="variable"
+   * @generated
+   * @ordered
+   */
+  public static final int VARIABLE_VALUE = 8;
+
+  /**
+   * An array of all the '<em><b>Failure Type</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final FailureType[] VALUES_ARRAY =
+    new FailureType[]
+    {
+      NO_FAILURE,
+      EARLY,
+      LATE,
+      COMMISSION,
+      OMISSION,
+      VALUE_SUBTLE,
+      VALUE_COARSE,
+      WILDCARD,
+      VARIABLE,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Failure Type</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<FailureType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Failure Type</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static FailureType get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      FailureType result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Failure Type</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static FailureType getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      FailureType result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Failure Type</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static FailureType get(int value)
+  {
+    switch (value)
+    {
+      case NO_FAILURE_VALUE: return NO_FAILURE;
+      case EARLY_VALUE: return EARLY;
+      case LATE_VALUE: return LATE;
+      case COMMISSION_VALUE: return COMMISSION;
+      case OMISSION_VALUE: return OMISSION;
+      case VALUE_SUBTLE_VALUE: return VALUE_SUBTLE;
+      case VALUE_COARSE_VALUE: return VALUE_COARSE;
+      case WILDCARD_VALUE: return WILDCARD;
+      case VARIABLE_VALUE: return VARIABLE;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private FailureType(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //FailureType
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslFactory.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslFactory.java
new file mode 100644
index 0000000..1bade94
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslFactory.java
@@ -0,0 +1,178 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage
+ * @generated
+ */
+public interface FlaDslFactory extends EFactory
+{
+  /**
+   * The singleton instance of the factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  FlaDslFactory eINSTANCE = org.polarsys.chess.xtext.flaDsl.impl.FlaDslFactoryImpl.init();
+
+  /**
+   * Returns a new object of class '<em>Behaviour</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Behaviour</em>'.
+   * @generated
+   */
+  Behaviour createBehaviour();
+
+  /**
+   * Returns a new object of class '<em>Expression</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Expression</em>'.
+   * @generated
+   */
+  Expression createExpression();
+
+  /**
+   * Returns a new object of class '<em>Lhs</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Lhs</em>'.
+   * @generated
+   */
+  Lhs createLhs();
+
+  /**
+   * Returns a new object of class '<em>Rhs</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Rhs</em>'.
+   * @generated
+   */
+  Rhs createRhs();
+
+  /**
+   * Returns a new object of class '<em>Input Expression</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Input Expression</em>'.
+   * @generated
+   */
+  InputExpression createInputExpression();
+
+  /**
+   * Returns a new object of class '<em>Output Expression</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Output Expression</em>'.
+   * @generated
+   */
+  OutputExpression createOutputExpression();
+
+  /**
+   * Returns a new object of class '<em>In Failure Expr</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>In Failure Expr</em>'.
+   * @generated
+   */
+  InFailureExpr createInFailureExpr();
+
+  /**
+   * Returns a new object of class '<em>Out Failure Expr</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Out Failure Expr</em>'.
+   * @generated
+   */
+  OutFailureExpr createOutFailureExpr();
+
+  /**
+   * Returns a new object of class '<em>Definitions</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Definitions</em>'.
+   * @generated
+   */
+  Definitions createDefinitions();
+
+  /**
+   * Returns a new object of class '<em>Failure Definition</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Failure Definition</em>'.
+   * @generated
+   */
+  FailureDefinition createFailureDefinition();
+
+  /**
+   * Returns a new object of class '<em>No Failure Definition</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>No Failure Definition</em>'.
+   * @generated
+   */
+  NoFailureDefinition createNoFailureDefinition();
+
+  /**
+   * Returns a new object of class '<em>Complex Nofailure Definition</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Complex Nofailure Definition</em>'.
+   * @generated
+   */
+  ComplexNofailureDefinition createComplexNofailureDefinition();
+
+  /**
+   * Returns a new object of class '<em>Wildcard Definition</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Wildcard Definition</em>'.
+   * @generated
+   */
+  WildcardDefinition createWildcardDefinition();
+
+  /**
+   * Returns a new object of class '<em>Variable Definition</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Variable Definition</em>'.
+   * @generated
+   */
+  VariableDefinition createVariableDefinition();
+
+  /**
+   * Returns a new object of class '<em>ACI Davoidable</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>ACI Davoidable</em>'.
+   * @generated
+   */
+  ACIDavoidable createACIDavoidable();
+
+  /**
+   * Returns a new object of class '<em>ACID Mitigation</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>ACID Mitigation</em>'.
+   * @generated
+   */
+  ACIDMitigation createACIDMitigation();
+
+  /**
+   * Returns the package supported by this factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the package supported by this factory.
+   * @generated
+   */
+  FlaDslPackage getFlaDslPackage();
+
+} //FlaDslFactory
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslPackage.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslPackage.java
new file mode 100644
index 0000000..c65a5e3
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/FlaDslPackage.java
@@ -0,0 +1,1624 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface FlaDslPackage extends EPackage
+{
+  /**
+   * The package name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  String eNAME = "flaDsl";
+
+  /**
+   * The package namespace URI.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  String eNS_URI = "http://www.intecs.org/chess/xtext/FlaDsl";
+
+  /**
+   * The package namespace name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  String eNS_PREFIX = "flaDsl";
+
+  /**
+   * The singleton instance of the package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  FlaDslPackage eINSTANCE = org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl.init();
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl <em>Behaviour</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getBehaviour()
+   * @generated
+   */
+  int BEHAVIOUR = 0;
+
+  /**
+   * The feature id for the '<em><b>Rules</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BEHAVIOUR__RULES = 0;
+
+  /**
+   * The number of structural features of the '<em>Behaviour</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BEHAVIOUR_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl <em>Expression</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getExpression()
+   * @generated
+   */
+  int EXPRESSION = 1;
+
+  /**
+   * The feature id for the '<em><b>Lhs</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXPRESSION__LHS = 0;
+
+  /**
+   * The feature id for the '<em><b>Rhs</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXPRESSION__RHS = 1;
+
+  /**
+   * The number of structural features of the '<em>Expression</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXPRESSION_FEATURE_COUNT = 2;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.LhsImpl <em>Lhs</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.LhsImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getLhs()
+   * @generated
+   */
+  int LHS = 2;
+
+  /**
+   * The feature id for the '<em><b>Failures</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int LHS__FAILURES = 0;
+
+  /**
+   * The number of structural features of the '<em>Lhs</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int LHS_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.RhsImpl <em>Rhs</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.RhsImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getRhs()
+   * @generated
+   */
+  int RHS = 3;
+
+  /**
+   * The feature id for the '<em><b>Failures</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int RHS__FAILURES = 0;
+
+  /**
+   * The number of structural features of the '<em>Rhs</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int RHS_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl <em>Input Expression</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getInputExpression()
+   * @generated
+   */
+  int INPUT_EXPRESSION = 4;
+
+  /**
+   * The feature id for the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INPUT_EXPRESSION__REF = 0;
+
+  /**
+   * The feature id for the '<em><b>Failure Expr</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INPUT_EXPRESSION__FAILURE_EXPR = 1;
+
+  /**
+   * The number of structural features of the '<em>Input Expression</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INPUT_EXPRESSION_FEATURE_COUNT = 2;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl <em>Output Expression</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getOutputExpression()
+   * @generated
+   */
+  int OUTPUT_EXPRESSION = 5;
+
+  /**
+   * The feature id for the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OUTPUT_EXPRESSION__REF = 0;
+
+  /**
+   * The feature id for the '<em><b>Failure Expr</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OUTPUT_EXPRESSION__FAILURE_EXPR = 1;
+
+  /**
+   * The number of structural features of the '<em>Output Expression</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OUTPUT_EXPRESSION_FEATURE_COUNT = 2;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl <em>In Failure Expr</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getInFailureExpr()
+   * @generated
+   */
+  int IN_FAILURE_EXPR = 6;
+
+  /**
+   * The feature id for the '<em><b>Failures</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int IN_FAILURE_EXPR__FAILURES = 0;
+
+  /**
+   * The number of structural features of the '<em>In Failure Expr</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int IN_FAILURE_EXPR_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl <em>Out Failure Expr</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getOutFailureExpr()
+   * @generated
+   */
+  int OUT_FAILURE_EXPR = 7;
+
+  /**
+   * The feature id for the '<em><b>Failures</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OUT_FAILURE_EXPR__FAILURES = 0;
+
+  /**
+   * The number of structural features of the '<em>Out Failure Expr</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OUT_FAILURE_EXPR_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.DefinitionsImpl <em>Definitions</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.DefinitionsImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDefinitions()
+   * @generated
+   */
+  int DEFINITIONS = 8;
+
+  /**
+   * The number of structural features of the '<em>Definitions</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DEFINITIONS_FEATURE_COUNT = 0;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl <em>Failure Definition</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getFailureDefinition()
+   * @generated
+   */
+  int FAILURE_DEFINITION = 9;
+
+  /**
+   * The feature id for the '<em><b>Type</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FAILURE_DEFINITION__TYPE = DEFINITIONS_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Acid Avoidable</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FAILURE_DEFINITION__ACID_AVOIDABLE = DEFINITIONS_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Failure Definition</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FAILURE_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl <em>No Failure Definition</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getNoFailureDefinition()
+   * @generated
+   */
+  int NO_FAILURE_DEFINITION = 10;
+
+  /**
+   * The feature id for the '<em><b>Acid Mitigation</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NO_FAILURE_DEFINITION__ACID_MITIGATION = DEFINITIONS_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>No Failure Definition</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NO_FAILURE_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ComplexNofailureDefinitionImpl <em>Complex Nofailure Definition</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.ComplexNofailureDefinitionImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getComplexNofailureDefinition()
+   * @generated
+   */
+  int COMPLEX_NOFAILURE_DEFINITION = 11;
+
+  /**
+   * The number of structural features of the '<em>Complex Nofailure Definition</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int COMPLEX_NOFAILURE_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.WildcardDefinitionImpl <em>Wildcard Definition</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.WildcardDefinitionImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getWildcardDefinition()
+   * @generated
+   */
+  int WILDCARD_DEFINITION = 12;
+
+  /**
+   * The number of structural features of the '<em>Wildcard Definition</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int WILDCARD_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl <em>Variable Definition</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getVariableDefinition()
+   * @generated
+   */
+  int VARIABLE_DEFINITION = 13;
+
+  /**
+   * The feature id for the '<em><b>Variable Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_DEFINITION__VARIABLE_NAME = DEFINITIONS_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>Variable Definition</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_DEFINITION_FEATURE_COUNT = DEFINITIONS_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl <em>ACI Davoidable</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getACIDavoidable()
+   * @generated
+   */
+  int ACI_DAVOIDABLE = 14;
+
+  /**
+   * The feature id for the '<em><b>A</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACI_DAVOIDABLE__A = 0;
+
+  /**
+   * The feature id for the '<em><b>C</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACI_DAVOIDABLE__C = 1;
+
+  /**
+   * The feature id for the '<em><b>I</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACI_DAVOIDABLE__I = 2;
+
+  /**
+   * The feature id for the '<em><b>D</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACI_DAVOIDABLE__D = 3;
+
+  /**
+   * The number of structural features of the '<em>ACI Davoidable</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACI_DAVOIDABLE_FEATURE_COUNT = 4;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl <em>ACID Mitigation</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getACIDMitigation()
+   * @generated
+   */
+  int ACID_MITIGATION = 15;
+
+  /**
+   * The feature id for the '<em><b>A</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACID_MITIGATION__A = 0;
+
+  /**
+   * The feature id for the '<em><b>C</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACID_MITIGATION__C = 1;
+
+  /**
+   * The feature id for the '<em><b>I</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACID_MITIGATION__I = 2;
+
+  /**
+   * The feature id for the '<em><b>D</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACID_MITIGATION__D = 3;
+
+  /**
+   * The number of structural features of the '<em>ACID Mitigation</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int ACID_MITIGATION_FEATURE_COUNT = 4;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.FailureType <em>Failure Type</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.FailureType
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getFailureType()
+   * @generated
+   */
+  int FAILURE_TYPE = 16;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Aavoidable <em>Aavoidable</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getAavoidable()
+   * @generated
+   */
+  int AAVOIDABLE = 17;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Cavoidable <em>Cavoidable</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getCavoidable()
+   * @generated
+   */
+  int CAVOIDABLE = 18;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Iavoidable <em>Iavoidable</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getIavoidable()
+   * @generated
+   */
+  int IAVOIDABLE = 19;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Davoidable <em>Davoidable</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDavoidable()
+   * @generated
+   */
+  int DAVOIDABLE = 20;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Amitigation <em>Amitigation</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getAmitigation()
+   * @generated
+   */
+  int AMITIGATION = 21;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Cmitigation <em>Cmitigation</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getCmitigation()
+   * @generated
+   */
+  int CMITIGATION = 22;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Imitigation <em>Imitigation</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getImitigation()
+   * @generated
+   */
+  int IMITIGATION = 23;
+
+  /**
+   * The meta object id for the '{@link org.polarsys.chess.xtext.flaDsl.Dmitigation <em>Dmitigation</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+   * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDmitigation()
+   * @generated
+   */
+  int DMITIGATION = 24;
+
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Behaviour <em>Behaviour</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Behaviour</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Behaviour
+   * @generated
+   */
+  EClass getBehaviour();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.Behaviour#getRules <em>Rules</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Rules</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Behaviour#getRules()
+   * @see #getBehaviour()
+   * @generated
+   */
+  EReference getBehaviour_Rules();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Expression <em>Expression</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Expression</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Expression
+   * @generated
+   */
+  EClass getExpression();
+
+  /**
+   * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.Expression#getLhs <em>Lhs</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Lhs</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Expression#getLhs()
+   * @see #getExpression()
+   * @generated
+   */
+  EReference getExpression_Lhs();
+
+  /**
+   * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.Expression#getRhs <em>Rhs</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Rhs</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Expression#getRhs()
+   * @see #getExpression()
+   * @generated
+   */
+  EReference getExpression_Rhs();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Lhs <em>Lhs</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Lhs</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Lhs
+   * @generated
+   */
+  EClass getLhs();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.Lhs#getFailures <em>Failures</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Failures</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Lhs#getFailures()
+   * @see #getLhs()
+   * @generated
+   */
+  EReference getLhs_Failures();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Rhs <em>Rhs</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Rhs</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Rhs
+   * @generated
+   */
+  EClass getRhs();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.Rhs#getFailures <em>Failures</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Failures</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Rhs#getFailures()
+   * @see #getRhs()
+   * @generated
+   */
+  EReference getRhs_Failures();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.InputExpression <em>Input Expression</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Input Expression</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.InputExpression
+   * @generated
+   */
+  EClass getInputExpression();
+
+  /**
+   * Returns the meta object for the reference '{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getRef <em>Ref</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Ref</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.InputExpression#getRef()
+   * @see #getInputExpression()
+   * @generated
+   */
+  EReference getInputExpression_Ref();
+
+  /**
+   * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getFailureExpr <em>Failure Expr</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Failure Expr</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.InputExpression#getFailureExpr()
+   * @see #getInputExpression()
+   * @generated
+   */
+  EReference getInputExpression_FailureExpr();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression <em>Output Expression</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Output Expression</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.OutputExpression
+   * @generated
+   */
+  EClass getOutputExpression();
+
+  /**
+   * Returns the meta object for the reference '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getRef <em>Ref</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Ref</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.OutputExpression#getRef()
+   * @see #getOutputExpression()
+   * @generated
+   */
+  EReference getOutputExpression_Ref();
+
+  /**
+   * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getFailureExpr <em>Failure Expr</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Failure Expr</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.OutputExpression#getFailureExpr()
+   * @see #getOutputExpression()
+   * @generated
+   */
+  EReference getOutputExpression_FailureExpr();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.InFailureExpr <em>In Failure Expr</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>In Failure Expr</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.InFailureExpr
+   * @generated
+   */
+  EClass getInFailureExpr();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.InFailureExpr#getFailures <em>Failures</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Failures</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.InFailureExpr#getFailures()
+   * @see #getInFailureExpr()
+   * @generated
+   */
+  EReference getInFailureExpr_Failures();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.OutFailureExpr <em>Out Failure Expr</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Out Failure Expr</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.OutFailureExpr
+   * @generated
+   */
+  EClass getOutFailureExpr();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link org.polarsys.chess.xtext.flaDsl.OutFailureExpr#getFailures <em>Failures</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Failures</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.OutFailureExpr#getFailures()
+   * @see #getOutFailureExpr()
+   * @generated
+   */
+  EReference getOutFailureExpr_Failures();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.Definitions <em>Definitions</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Definitions</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Definitions
+   * @generated
+   */
+  EClass getDefinitions();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition <em>Failure Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Failure Definition</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.FailureDefinition
+   * @generated
+   */
+  EClass getFailureDefinition();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getType <em>Type</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Type</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.FailureDefinition#getType()
+   * @see #getFailureDefinition()
+   * @generated
+   */
+  EAttribute getFailureDefinition_Type();
+
+  /**
+   * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition#getAcidAvoidable <em>Acid Avoidable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Acid Avoidable</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.FailureDefinition#getAcidAvoidable()
+   * @see #getFailureDefinition()
+   * @generated
+   */
+  EReference getFailureDefinition_AcidAvoidable();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition <em>No Failure Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>No Failure Definition</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.NoFailureDefinition
+   * @generated
+   */
+  EClass getNoFailureDefinition();
+
+  /**
+   * Returns the meta object for the containment reference '{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition#getAcidMitigation <em>Acid Mitigation</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Acid Mitigation</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.NoFailureDefinition#getAcidMitigation()
+   * @see #getNoFailureDefinition()
+   * @generated
+   */
+  EReference getNoFailureDefinition_AcidMitigation();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition <em>Complex Nofailure Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Complex Nofailure Definition</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition
+   * @generated
+   */
+  EClass getComplexNofailureDefinition();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.WildcardDefinition <em>Wildcard Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Wildcard Definition</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.WildcardDefinition
+   * @generated
+   */
+  EClass getWildcardDefinition();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition <em>Variable Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Variable Definition</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.VariableDefinition
+   * @generated
+   */
+  EClass getVariableDefinition();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition#getVariableName <em>Variable Name</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Variable Name</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.VariableDefinition#getVariableName()
+   * @see #getVariableDefinition()
+   * @generated
+   */
+  EAttribute getVariableDefinition_VariableName();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable <em>ACI Davoidable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>ACI Davoidable</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable
+   * @generated
+   */
+  EClass getACIDavoidable();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getA <em>A</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>A</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getA()
+   * @see #getACIDavoidable()
+   * @generated
+   */
+  EAttribute getACIDavoidable_A();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getC <em>C</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>C</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getC()
+   * @see #getACIDavoidable()
+   * @generated
+   */
+  EAttribute getACIDavoidable_C();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getI <em>I</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>I</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getI()
+   * @see #getACIDavoidable()
+   * @generated
+   */
+  EAttribute getACIDavoidable_I();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getD <em>D</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>D</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable#getD()
+   * @see #getACIDavoidable()
+   * @generated
+   */
+  EAttribute getACIDavoidable_D();
+
+  /**
+   * Returns the meta object for class '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation <em>ACID Mitigation</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>ACID Mitigation</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation
+   * @generated
+   */
+  EClass getACIDMitigation();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getA <em>A</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>A</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getA()
+   * @see #getACIDMitigation()
+   * @generated
+   */
+  EAttribute getACIDMitigation_A();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getC <em>C</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>C</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getC()
+   * @see #getACIDMitigation()
+   * @generated
+   */
+  EAttribute getACIDMitigation_C();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getI <em>I</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>I</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getI()
+   * @see #getACIDMitigation()
+   * @generated
+   */
+  EAttribute getACIDMitigation_I();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getD <em>D</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>D</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation#getD()
+   * @see #getACIDMitigation()
+   * @generated
+   */
+  EAttribute getACIDMitigation_D();
+
+  /**
+   * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.FailureType <em>Failure Type</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Failure Type</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.FailureType
+   * @generated
+   */
+  EEnum getFailureType();
+
+  /**
+   * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Aavoidable <em>Aavoidable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Aavoidable</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+   * @generated
+   */
+  EEnum getAavoidable();
+
+  /**
+   * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Cavoidable <em>Cavoidable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Cavoidable</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+   * @generated
+   */
+  EEnum getCavoidable();
+
+  /**
+   * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Iavoidable <em>Iavoidable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Iavoidable</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+   * @generated
+   */
+  EEnum getIavoidable();
+
+  /**
+   * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Davoidable <em>Davoidable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Davoidable</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+   * @generated
+   */
+  EEnum getDavoidable();
+
+  /**
+   * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Amitigation <em>Amitigation</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Amitigation</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+   * @generated
+   */
+  EEnum getAmitigation();
+
+  /**
+   * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Cmitigation <em>Cmitigation</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Cmitigation</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+   * @generated
+   */
+  EEnum getCmitigation();
+
+  /**
+   * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Imitigation <em>Imitigation</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Imitigation</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+   * @generated
+   */
+  EEnum getImitigation();
+
+  /**
+   * Returns the meta object for enum '{@link org.polarsys.chess.xtext.flaDsl.Dmitigation <em>Dmitigation</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Dmitigation</em>'.
+   * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+   * @generated
+   */
+  EEnum getDmitigation();
+
+  /**
+   * Returns the factory that creates the instances of the model.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the factory that creates the instances of the model.
+   * @generated
+   */
+  FlaDslFactory getFlaDslFactory();
+
+  /**
+   * <!-- begin-user-doc -->
+   * Defines literals for the meta objects that represent
+   * <ul>
+   *   <li>each class,</li>
+   *   <li>each feature of each class,</li>
+   *   <li>each enum,</li>
+   *   <li>and each data type</li>
+   * </ul>
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  interface Literals
+  {
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl <em>Behaviour</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getBehaviour()
+     * @generated
+     */
+    EClass BEHAVIOUR = eINSTANCE.getBehaviour();
+
+    /**
+     * The meta object literal for the '<em><b>Rules</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference BEHAVIOUR__RULES = eINSTANCE.getBehaviour_Rules();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl <em>Expression</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getExpression()
+     * @generated
+     */
+    EClass EXPRESSION = eINSTANCE.getExpression();
+
+    /**
+     * The meta object literal for the '<em><b>Lhs</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference EXPRESSION__LHS = eINSTANCE.getExpression_Lhs();
+
+    /**
+     * The meta object literal for the '<em><b>Rhs</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference EXPRESSION__RHS = eINSTANCE.getExpression_Rhs();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.LhsImpl <em>Lhs</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.LhsImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getLhs()
+     * @generated
+     */
+    EClass LHS = eINSTANCE.getLhs();
+
+    /**
+     * The meta object literal for the '<em><b>Failures</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference LHS__FAILURES = eINSTANCE.getLhs_Failures();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.RhsImpl <em>Rhs</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.RhsImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getRhs()
+     * @generated
+     */
+    EClass RHS = eINSTANCE.getRhs();
+
+    /**
+     * The meta object literal for the '<em><b>Failures</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference RHS__FAILURES = eINSTANCE.getRhs_Failures();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl <em>Input Expression</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getInputExpression()
+     * @generated
+     */
+    EClass INPUT_EXPRESSION = eINSTANCE.getInputExpression();
+
+    /**
+     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference INPUT_EXPRESSION__REF = eINSTANCE.getInputExpression_Ref();
+
+    /**
+     * The meta object literal for the '<em><b>Failure Expr</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference INPUT_EXPRESSION__FAILURE_EXPR = eINSTANCE.getInputExpression_FailureExpr();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl <em>Output Expression</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getOutputExpression()
+     * @generated
+     */
+    EClass OUTPUT_EXPRESSION = eINSTANCE.getOutputExpression();
+
+    /**
+     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference OUTPUT_EXPRESSION__REF = eINSTANCE.getOutputExpression_Ref();
+
+    /**
+     * The meta object literal for the '<em><b>Failure Expr</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference OUTPUT_EXPRESSION__FAILURE_EXPR = eINSTANCE.getOutputExpression_FailureExpr();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl <em>In Failure Expr</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getInFailureExpr()
+     * @generated
+     */
+    EClass IN_FAILURE_EXPR = eINSTANCE.getInFailureExpr();
+
+    /**
+     * The meta object literal for the '<em><b>Failures</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference IN_FAILURE_EXPR__FAILURES = eINSTANCE.getInFailureExpr_Failures();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl <em>Out Failure Expr</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getOutFailureExpr()
+     * @generated
+     */
+    EClass OUT_FAILURE_EXPR = eINSTANCE.getOutFailureExpr();
+
+    /**
+     * The meta object literal for the '<em><b>Failures</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference OUT_FAILURE_EXPR__FAILURES = eINSTANCE.getOutFailureExpr_Failures();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.DefinitionsImpl <em>Definitions</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.DefinitionsImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDefinitions()
+     * @generated
+     */
+    EClass DEFINITIONS = eINSTANCE.getDefinitions();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl <em>Failure Definition</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getFailureDefinition()
+     * @generated
+     */
+    EClass FAILURE_DEFINITION = eINSTANCE.getFailureDefinition();
+
+    /**
+     * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute FAILURE_DEFINITION__TYPE = eINSTANCE.getFailureDefinition_Type();
+
+    /**
+     * The meta object literal for the '<em><b>Acid Avoidable</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference FAILURE_DEFINITION__ACID_AVOIDABLE = eINSTANCE.getFailureDefinition_AcidAvoidable();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl <em>No Failure Definition</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getNoFailureDefinition()
+     * @generated
+     */
+    EClass NO_FAILURE_DEFINITION = eINSTANCE.getNoFailureDefinition();
+
+    /**
+     * The meta object literal for the '<em><b>Acid Mitigation</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference NO_FAILURE_DEFINITION__ACID_MITIGATION = eINSTANCE.getNoFailureDefinition_AcidMitigation();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ComplexNofailureDefinitionImpl <em>Complex Nofailure Definition</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.ComplexNofailureDefinitionImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getComplexNofailureDefinition()
+     * @generated
+     */
+    EClass COMPLEX_NOFAILURE_DEFINITION = eINSTANCE.getComplexNofailureDefinition();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.WildcardDefinitionImpl <em>Wildcard Definition</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.WildcardDefinitionImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getWildcardDefinition()
+     * @generated
+     */
+    EClass WILDCARD_DEFINITION = eINSTANCE.getWildcardDefinition();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl <em>Variable Definition</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getVariableDefinition()
+     * @generated
+     */
+    EClass VARIABLE_DEFINITION = eINSTANCE.getVariableDefinition();
+
+    /**
+     * The meta object literal for the '<em><b>Variable Name</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute VARIABLE_DEFINITION__VARIABLE_NAME = eINSTANCE.getVariableDefinition_VariableName();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl <em>ACI Davoidable</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getACIDavoidable()
+     * @generated
+     */
+    EClass ACI_DAVOIDABLE = eINSTANCE.getACIDavoidable();
+
+    /**
+     * The meta object literal for the '<em><b>A</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute ACI_DAVOIDABLE__A = eINSTANCE.getACIDavoidable_A();
+
+    /**
+     * The meta object literal for the '<em><b>C</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute ACI_DAVOIDABLE__C = eINSTANCE.getACIDavoidable_C();
+
+    /**
+     * The meta object literal for the '<em><b>I</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute ACI_DAVOIDABLE__I = eINSTANCE.getACIDavoidable_I();
+
+    /**
+     * The meta object literal for the '<em><b>D</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute ACI_DAVOIDABLE__D = eINSTANCE.getACIDavoidable_D();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl <em>ACID Mitigation</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getACIDMitigation()
+     * @generated
+     */
+    EClass ACID_MITIGATION = eINSTANCE.getACIDMitigation();
+
+    /**
+     * The meta object literal for the '<em><b>A</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute ACID_MITIGATION__A = eINSTANCE.getACIDMitigation_A();
+
+    /**
+     * The meta object literal for the '<em><b>C</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute ACID_MITIGATION__C = eINSTANCE.getACIDMitigation_C();
+
+    /**
+     * The meta object literal for the '<em><b>I</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute ACID_MITIGATION__I = eINSTANCE.getACIDMitigation_I();
+
+    /**
+     * The meta object literal for the '<em><b>D</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute ACID_MITIGATION__D = eINSTANCE.getACIDMitigation_D();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.FailureType <em>Failure Type</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.FailureType
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getFailureType()
+     * @generated
+     */
+    EEnum FAILURE_TYPE = eINSTANCE.getFailureType();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Aavoidable <em>Aavoidable</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.Aavoidable
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getAavoidable()
+     * @generated
+     */
+    EEnum AAVOIDABLE = eINSTANCE.getAavoidable();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Cavoidable <em>Cavoidable</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.Cavoidable
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getCavoidable()
+     * @generated
+     */
+    EEnum CAVOIDABLE = eINSTANCE.getCavoidable();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Iavoidable <em>Iavoidable</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.Iavoidable
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getIavoidable()
+     * @generated
+     */
+    EEnum IAVOIDABLE = eINSTANCE.getIavoidable();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Davoidable <em>Davoidable</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.Davoidable
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDavoidable()
+     * @generated
+     */
+    EEnum DAVOIDABLE = eINSTANCE.getDavoidable();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Amitigation <em>Amitigation</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.Amitigation
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getAmitigation()
+     * @generated
+     */
+    EEnum AMITIGATION = eINSTANCE.getAmitigation();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Cmitigation <em>Cmitigation</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.Cmitigation
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getCmitigation()
+     * @generated
+     */
+    EEnum CMITIGATION = eINSTANCE.getCmitigation();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Imitigation <em>Imitigation</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.Imitigation
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getImitigation()
+     * @generated
+     */
+    EEnum IMITIGATION = eINSTANCE.getImitigation();
+
+    /**
+     * The meta object literal for the '{@link org.polarsys.chess.xtext.flaDsl.Dmitigation <em>Dmitigation</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.polarsys.chess.xtext.flaDsl.Dmitigation
+     * @see org.polarsys.chess.xtext.flaDsl.impl.FlaDslPackageImpl#getDmitigation()
+     * @generated
+     */
+    EEnum DMITIGATION = eINSTANCE.getDmitigation();
+
+  }
+
+} //FlaDslPackage
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Iavoidable.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Iavoidable.java
new file mode 100644
index 0000000..b9e242d
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Iavoidable.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Iavoidable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getIavoidable()
+ * @model
+ * @generated
+ */
+public enum Iavoidable implements Enumerator
+{
+  /**
+   * The '<em><b>INTERFERENCE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #INTERFERENCE_VALUE
+   * @generated
+   * @ordered
+   */
+  INTERFERENCE(0, "INTERFERENCE", "interference"),
+
+  /**
+   * The '<em><b>NONE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NONE_VALUE
+   * @generated
+   * @ordered
+   */
+  NONE(1, "NONE", "none"),
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED_VALUE
+   * @generated
+   * @ordered
+   */
+  UNSPECIFIED(2, "UNSPECIFIED", "unspecified");
+
+  /**
+   * The '<em><b>INTERFERENCE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>INTERFERENCE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #INTERFERENCE
+   * @model literal="interference"
+   * @generated
+   * @ordered
+   */
+  public static final int INTERFERENCE_VALUE = 0;
+
+  /**
+   * The '<em><b>NONE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NONE
+   * @model literal="none"
+   * @generated
+   * @ordered
+   */
+  public static final int NONE_VALUE = 1;
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED
+   * @model literal="unspecified"
+   * @generated
+   * @ordered
+   */
+  public static final int UNSPECIFIED_VALUE = 2;
+
+  /**
+   * An array of all the '<em><b>Iavoidable</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final Iavoidable[] VALUES_ARRAY =
+    new Iavoidable[]
+    {
+      INTERFERENCE,
+      NONE,
+      UNSPECIFIED,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Iavoidable</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<Iavoidable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Iavoidable</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Iavoidable get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Iavoidable result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Iavoidable</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Iavoidable getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Iavoidable result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Iavoidable</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Iavoidable get(int value)
+  {
+    switch (value)
+    {
+      case INTERFERENCE_VALUE: return INTERFERENCE;
+      case NONE_VALUE: return NONE;
+      case UNSPECIFIED_VALUE: return UNSPECIFIED;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private Iavoidable(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //Iavoidable
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Imitigation.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Imitigation.java
new file mode 100644
index 0000000..c918e48
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Imitigation.java
@@ -0,0 +1,283 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Imitigation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getImitigation()
+ * @model
+ * @generated
+ */
+public enum Imitigation implements Enumerator
+{
+  /**
+   * The '<em><b>SERIALIZABLE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #SERIALIZABLE_VALUE
+   * @generated
+   * @ordered
+   */
+  SERIALIZABLE(0, "SERIALIZABLE", "serializable"),
+
+  /**
+   * The '<em><b>PORTABLE LEVEL</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #PORTABLE_LEVEL_VALUE
+   * @generated
+   * @ordered
+   */
+  PORTABLE_LEVEL(1, "PORTABLE_LEVEL", "portable_level"),
+
+  /**
+   * The '<em><b>NONE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NONE_VALUE
+   * @generated
+   * @ordered
+   */
+  NONE(2, "NONE", "none"),
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED_VALUE
+   * @generated
+   * @ordered
+   */
+  UNSPECIFIED(3, "UNSPECIFIED", "unspecified");
+
+  /**
+   * The '<em><b>SERIALIZABLE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>SERIALIZABLE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #SERIALIZABLE
+   * @model literal="serializable"
+   * @generated
+   * @ordered
+   */
+  public static final int SERIALIZABLE_VALUE = 0;
+
+  /**
+   * The '<em><b>PORTABLE LEVEL</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>PORTABLE LEVEL</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #PORTABLE_LEVEL
+   * @model literal="portable_level"
+   * @generated
+   * @ordered
+   */
+  public static final int PORTABLE_LEVEL_VALUE = 1;
+
+  /**
+   * The '<em><b>NONE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #NONE
+   * @model literal="none"
+   * @generated
+   * @ordered
+   */
+  public static final int NONE_VALUE = 2;
+
+  /**
+   * The '<em><b>UNSPECIFIED</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @see #UNSPECIFIED
+   * @model literal="unspecified"
+   * @generated
+   * @ordered
+   */
+  public static final int UNSPECIFIED_VALUE = 3;
+
+  /**
+   * An array of all the '<em><b>Imitigation</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final Imitigation[] VALUES_ARRAY =
+    new Imitigation[]
+    {
+      SERIALIZABLE,
+      PORTABLE_LEVEL,
+      NONE,
+      UNSPECIFIED,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Imitigation</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<Imitigation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Imitigation</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Imitigation get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Imitigation result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Imitigation</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Imitigation getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Imitigation result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Imitigation</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Imitigation get(int value)
+  {
+    switch (value)
+    {
+      case SERIALIZABLE_VALUE: return SERIALIZABLE;
+      case PORTABLE_LEVEL_VALUE: return PORTABLE_LEVEL;
+      case NONE_VALUE: return NONE;
+      case UNSPECIFIED_VALUE: return UNSPECIFIED;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private Imitigation(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //Imitigation
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InFailureExpr.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InFailureExpr.java
new file mode 100644
index 0000000..cd9f793
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InFailureExpr.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>In Failure Expr</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.InFailureExpr#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInFailureExpr()
+ * @model
+ * @generated
+ */
+public interface InFailureExpr extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Failures</b></em>' containment reference list.
+   * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.Definitions}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Failures</em>' containment reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Failures</em>' containment reference list.
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInFailureExpr_Failures()
+   * @model containment="true"
+   * @generated
+   */
+  EList<Definitions> getFailures();
+
+} // InFailureExpr
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InputExpression.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InputExpression.java
new file mode 100644
index 0000000..bc84614
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/InputExpression.java
@@ -0,0 +1,80 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Input Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getRef <em>Ref</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getFailureExpr <em>Failure Expr</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInputExpression()
+ * @model
+ * @generated
+ */
+public interface InputExpression extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Ref</em>' reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Ref</em>' reference.
+   * @see #setRef(Port)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInputExpression_Ref()
+   * @model
+   * @generated
+   */
+  Port getRef();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getRef <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Ref</em>' reference.
+   * @see #getRef()
+   * @generated
+   */
+  void setRef(Port value);
+
+  /**
+   * Returns the value of the '<em><b>Failure Expr</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Failure Expr</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Failure Expr</em>' containment reference.
+   * @see #setFailureExpr(InFailureExpr)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getInputExpression_FailureExpr()
+   * @model containment="true"
+   * @generated
+   */
+  InFailureExpr getFailureExpr();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.InputExpression#getFailureExpr <em>Failure Expr</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Failure Expr</em>' containment reference.
+   * @see #getFailureExpr()
+   * @generated
+   */
+  void setFailureExpr(InFailureExpr value);
+
+} // InputExpression
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Lhs.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Lhs.java
new file mode 100644
index 0000000..2027474
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Lhs.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lhs</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.Lhs#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getLhs()
+ * @model
+ * @generated
+ */
+public interface Lhs extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Failures</b></em>' containment reference list.
+   * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.InputExpression}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Failures</em>' containment reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Failures</em>' containment reference list.
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getLhs_Failures()
+   * @model containment="true"
+   * @generated
+   */
+  EList<InputExpression> getFailures();
+
+} // Lhs
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/NoFailureDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/NoFailureDefinition.java
new file mode 100644
index 0000000..29095fd
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/NoFailureDefinition.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>No Failure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition#getAcidMitigation <em>Acid Mitigation</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getNoFailureDefinition()
+ * @model
+ * @generated
+ */
+public interface NoFailureDefinition extends Definitions, ComplexNofailureDefinition
+{
+  /**
+   * Returns the value of the '<em><b>Acid Mitigation</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Acid Mitigation</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Acid Mitigation</em>' containment reference.
+   * @see #setAcidMitigation(ACIDMitigation)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getNoFailureDefinition_AcidMitigation()
+   * @model containment="true"
+   * @generated
+   */
+  ACIDMitigation getAcidMitigation();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition#getAcidMitigation <em>Acid Mitigation</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Acid Mitigation</em>' containment reference.
+   * @see #getAcidMitigation()
+   * @generated
+   */
+  void setAcidMitigation(ACIDMitigation value);
+
+} // NoFailureDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutFailureExpr.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutFailureExpr.java
new file mode 100644
index 0000000..ed776c6
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutFailureExpr.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Out Failure Expr</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.OutFailureExpr#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutFailureExpr()
+ * @model
+ * @generated
+ */
+public interface OutFailureExpr extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Failures</b></em>' containment reference list.
+   * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.Definitions}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Failures</em>' containment reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Failures</em>' containment reference list.
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutFailureExpr_Failures()
+   * @model containment="true"
+   * @generated
+   */
+  EList<Definitions> getFailures();
+
+} // OutFailureExpr
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutputExpression.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutputExpression.java
new file mode 100644
index 0000000..01a45f5
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/OutputExpression.java
@@ -0,0 +1,80 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Output Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getRef <em>Ref</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getFailureExpr <em>Failure Expr</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutputExpression()
+ * @model
+ * @generated
+ */
+public interface OutputExpression extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Ref</em>' reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Ref</em>' reference.
+   * @see #setRef(Port)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutputExpression_Ref()
+   * @model
+   * @generated
+   */
+  Port getRef();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getRef <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Ref</em>' reference.
+   * @see #getRef()
+   * @generated
+   */
+  void setRef(Port value);
+
+  /**
+   * Returns the value of the '<em><b>Failure Expr</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Failure Expr</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Failure Expr</em>' containment reference.
+   * @see #setFailureExpr(OutFailureExpr)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getOutputExpression_FailureExpr()
+   * @model containment="true"
+   * @generated
+   */
+  OutFailureExpr getFailureExpr();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression#getFailureExpr <em>Failure Expr</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Failure Expr</em>' containment reference.
+   * @see #getFailureExpr()
+   * @generated
+   */
+  void setFailureExpr(OutFailureExpr value);
+
+} // OutputExpression
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Rhs.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Rhs.java
new file mode 100644
index 0000000..94a9dac
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/Rhs.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Rhs</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.Rhs#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getRhs()
+ * @model
+ * @generated
+ */
+public interface Rhs extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Failures</b></em>' containment reference list.
+   * The list contents are of type {@link org.polarsys.chess.xtext.flaDsl.OutputExpression}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Failures</em>' containment reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Failures</em>' containment reference list.
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getRhs_Failures()
+   * @model containment="true"
+   * @generated
+   */
+  EList<OutputExpression> getFailures();
+
+} // Rhs
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/VariableDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/VariableDefinition.java
new file mode 100644
index 0000000..507e359
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/VariableDefinition.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition#getVariableName <em>Variable Name</em>}</li>
+ * </ul>
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getVariableDefinition()
+ * @model
+ * @generated
+ */
+public interface VariableDefinition extends Definitions
+{
+  /**
+   * Returns the value of the '<em><b>Variable Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Variable Name</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Variable Name</em>' attribute.
+   * @see #setVariableName(String)
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getVariableDefinition_VariableName()
+   * @model
+   * @generated
+   */
+  String getVariableName();
+
+  /**
+   * Sets the value of the '{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition#getVariableName <em>Variable Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Variable Name</em>' attribute.
+   * @see #getVariableName()
+   * @generated
+   */
+  void setVariableName(String value);
+
+} // VariableDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/WildcardDefinition.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/WildcardDefinition.java
new file mode 100644
index 0000000..f7841d2
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/WildcardDefinition.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Wildcard Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#getWildcardDefinition()
+ * @model
+ * @generated
+ */
+public interface WildcardDefinition extends Definitions
+{
+} // WildcardDefinition
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDMitigationImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDMitigationImpl.java
new file mode 100644
index 0000000..215e3a2
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDMitigationImpl.java
@@ -0,0 +1,349 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDMitigation;
+import org.polarsys.chess.xtext.flaDsl.Amitigation;
+import org.polarsys.chess.xtext.flaDsl.Cmitigation;
+import org.polarsys.chess.xtext.flaDsl.Dmitigation;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.Imitigation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>ACID Mitigation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl#getA <em>A</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl#getC <em>C</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl#getI <em>I</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDMitigationImpl#getD <em>D</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ACIDMitigationImpl extends MinimalEObjectImpl.Container implements ACIDMitigation
+{
+  /**
+   * The default value of the '{@link #getA() <em>A</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getA()
+   * @generated
+   * @ordered
+   */
+  protected static final Amitigation A_EDEFAULT = Amitigation.ALL_OR_NOTHING;
+
+  /**
+   * The cached value of the '{@link #getA() <em>A</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getA()
+   * @generated
+   * @ordered
+   */
+  protected Amitigation a = A_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getC() <em>C</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getC()
+   * @generated
+   * @ordered
+   */
+  protected static final Cmitigation C_EDEFAULT = Cmitigation.FULL_CONSISTENCY;
+
+  /**
+   * The cached value of the '{@link #getC() <em>C</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getC()
+   * @generated
+   * @ordered
+   */
+  protected Cmitigation c = C_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getI() <em>I</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getI()
+   * @generated
+   * @ordered
+   */
+  protected static final Imitigation I_EDEFAULT = Imitigation.SERIALIZABLE;
+
+  /**
+   * The cached value of the '{@link #getI() <em>I</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getI()
+   * @generated
+   * @ordered
+   */
+  protected Imitigation i = I_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getD() <em>D</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getD()
+   * @generated
+   * @ordered
+   */
+  protected static final Dmitigation D_EDEFAULT = Dmitigation.NO_LOSS;
+
+  /**
+   * The cached value of the '{@link #getD() <em>D</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getD()
+   * @generated
+   * @ordered
+   */
+  protected Dmitigation d = D_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ACIDMitigationImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.ACID_MITIGATION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Amitigation getA()
+  {
+    return a;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setA(Amitigation newA)
+  {
+    Amitigation oldA = a;
+    a = newA == null ? A_EDEFAULT : newA;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACID_MITIGATION__A, oldA, a));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Cmitigation getC()
+  {
+    return c;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setC(Cmitigation newC)
+  {
+    Cmitigation oldC = c;
+    c = newC == null ? C_EDEFAULT : newC;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACID_MITIGATION__C, oldC, c));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Imitigation getI()
+  {
+    return i;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setI(Imitigation newI)
+  {
+    Imitigation oldI = i;
+    i = newI == null ? I_EDEFAULT : newI;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACID_MITIGATION__I, oldI, i));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Dmitigation getD()
+  {
+    return d;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setD(Dmitigation newD)
+  {
+    Dmitigation oldD = d;
+    d = newD == null ? D_EDEFAULT : newD;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACID_MITIGATION__D, oldD, d));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.ACID_MITIGATION__A:
+        return getA();
+      case FlaDslPackage.ACID_MITIGATION__C:
+        return getC();
+      case FlaDslPackage.ACID_MITIGATION__I:
+        return getI();
+      case FlaDslPackage.ACID_MITIGATION__D:
+        return getD();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.ACID_MITIGATION__A:
+        setA((Amitigation)newValue);
+        return;
+      case FlaDslPackage.ACID_MITIGATION__C:
+        setC((Cmitigation)newValue);
+        return;
+      case FlaDslPackage.ACID_MITIGATION__I:
+        setI((Imitigation)newValue);
+        return;
+      case FlaDslPackage.ACID_MITIGATION__D:
+        setD((Dmitigation)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.ACID_MITIGATION__A:
+        setA(A_EDEFAULT);
+        return;
+      case FlaDslPackage.ACID_MITIGATION__C:
+        setC(C_EDEFAULT);
+        return;
+      case FlaDslPackage.ACID_MITIGATION__I:
+        setI(I_EDEFAULT);
+        return;
+      case FlaDslPackage.ACID_MITIGATION__D:
+        setD(D_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.ACID_MITIGATION__A:
+        return a != A_EDEFAULT;
+      case FlaDslPackage.ACID_MITIGATION__C:
+        return c != C_EDEFAULT;
+      case FlaDslPackage.ACID_MITIGATION__I:
+        return i != I_EDEFAULT;
+      case FlaDslPackage.ACID_MITIGATION__D:
+        return d != D_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (a: ");
+    result.append(a);
+    result.append(", c: ");
+    result.append(c);
+    result.append(", i: ");
+    result.append(i);
+    result.append(", d: ");
+    result.append(d);
+    result.append(')');
+    return result.toString();
+  }
+
+} //ACIDMitigationImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDavoidableImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDavoidableImpl.java
new file mode 100644
index 0000000..b33a393
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ACIDavoidableImpl.java
@@ -0,0 +1,349 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDavoidable;
+import org.polarsys.chess.xtext.flaDsl.Aavoidable;
+import org.polarsys.chess.xtext.flaDsl.Cavoidable;
+import org.polarsys.chess.xtext.flaDsl.Davoidable;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.Iavoidable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>ACI Davoidable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl#getA <em>A</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl#getC <em>C</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl#getI <em>I</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ACIDavoidableImpl#getD <em>D</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ACIDavoidableImpl extends MinimalEObjectImpl.Container implements ACIDavoidable
+{
+  /**
+   * The default value of the '{@link #getA() <em>A</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getA()
+   * @generated
+   * @ordered
+   */
+  protected static final Aavoidable A_EDEFAULT = Aavoidable.INCOMPLETION;
+
+  /**
+   * The cached value of the '{@link #getA() <em>A</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getA()
+   * @generated
+   * @ordered
+   */
+  protected Aavoidable a = A_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getC() <em>C</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getC()
+   * @generated
+   * @ordered
+   */
+  protected static final Cavoidable C_EDEFAULT = Cavoidable.INCONSISTENCY;
+
+  /**
+   * The cached value of the '{@link #getC() <em>C</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getC()
+   * @generated
+   * @ordered
+   */
+  protected Cavoidable c = C_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getI() <em>I</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getI()
+   * @generated
+   * @ordered
+   */
+  protected static final Iavoidable I_EDEFAULT = Iavoidable.INTERFERENCE;
+
+  /**
+   * The cached value of the '{@link #getI() <em>I</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getI()
+   * @generated
+   * @ordered
+   */
+  protected Iavoidable i = I_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getD() <em>D</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getD()
+   * @generated
+   * @ordered
+   */
+  protected static final Davoidable D_EDEFAULT = Davoidable.IMPERMANENCE;
+
+  /**
+   * The cached value of the '{@link #getD() <em>D</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getD()
+   * @generated
+   * @ordered
+   */
+  protected Davoidable d = D_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ACIDavoidableImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.ACI_DAVOIDABLE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Aavoidable getA()
+  {
+    return a;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setA(Aavoidable newA)
+  {
+    Aavoidable oldA = a;
+    a = newA == null ? A_EDEFAULT : newA;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACI_DAVOIDABLE__A, oldA, a));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Cavoidable getC()
+  {
+    return c;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setC(Cavoidable newC)
+  {
+    Cavoidable oldC = c;
+    c = newC == null ? C_EDEFAULT : newC;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACI_DAVOIDABLE__C, oldC, c));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Iavoidable getI()
+  {
+    return i;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setI(Iavoidable newI)
+  {
+    Iavoidable oldI = i;
+    i = newI == null ? I_EDEFAULT : newI;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACI_DAVOIDABLE__I, oldI, i));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Davoidable getD()
+  {
+    return d;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setD(Davoidable newD)
+  {
+    Davoidable oldD = d;
+    d = newD == null ? D_EDEFAULT : newD;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.ACI_DAVOIDABLE__D, oldD, d));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.ACI_DAVOIDABLE__A:
+        return getA();
+      case FlaDslPackage.ACI_DAVOIDABLE__C:
+        return getC();
+      case FlaDslPackage.ACI_DAVOIDABLE__I:
+        return getI();
+      case FlaDslPackage.ACI_DAVOIDABLE__D:
+        return getD();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.ACI_DAVOIDABLE__A:
+        setA((Aavoidable)newValue);
+        return;
+      case FlaDslPackage.ACI_DAVOIDABLE__C:
+        setC((Cavoidable)newValue);
+        return;
+      case FlaDslPackage.ACI_DAVOIDABLE__I:
+        setI((Iavoidable)newValue);
+        return;
+      case FlaDslPackage.ACI_DAVOIDABLE__D:
+        setD((Davoidable)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.ACI_DAVOIDABLE__A:
+        setA(A_EDEFAULT);
+        return;
+      case FlaDslPackage.ACI_DAVOIDABLE__C:
+        setC(C_EDEFAULT);
+        return;
+      case FlaDslPackage.ACI_DAVOIDABLE__I:
+        setI(I_EDEFAULT);
+        return;
+      case FlaDslPackage.ACI_DAVOIDABLE__D:
+        setD(D_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.ACI_DAVOIDABLE__A:
+        return a != A_EDEFAULT;
+      case FlaDslPackage.ACI_DAVOIDABLE__C:
+        return c != C_EDEFAULT;
+      case FlaDslPackage.ACI_DAVOIDABLE__I:
+        return i != I_EDEFAULT;
+      case FlaDslPackage.ACI_DAVOIDABLE__D:
+        return d != D_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (a: ");
+    result.append(a);
+    result.append(", c: ");
+    result.append(c);
+    result.append(", i: ");
+    result.append(i);
+    result.append(", d: ");
+    result.append(d);
+    result.append(')');
+    return result.toString();
+  }
+
+} //ACIDavoidableImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/BehaviourImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/BehaviourImpl.java
new file mode 100644
index 0000000..d81ff2e
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/BehaviourImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.Behaviour;
+import org.polarsys.chess.xtext.flaDsl.Expression;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Behaviour</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.BehaviourImpl#getRules <em>Rules</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BehaviourImpl extends MinimalEObjectImpl.Container implements Behaviour
+{
+  /**
+   * The cached value of the '{@link #getRules() <em>Rules</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRules()
+   * @generated
+   * @ordered
+   */
+  protected EList<Expression> rules;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected BehaviourImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.BEHAVIOUR;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Expression> getRules()
+  {
+    if (rules == null)
+    {
+      rules = new EObjectContainmentEList<Expression>(Expression.class, this, FlaDslPackage.BEHAVIOUR__RULES);
+    }
+    return rules;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.BEHAVIOUR__RULES:
+        return ((InternalEList<?>)getRules()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.BEHAVIOUR__RULES:
+        return getRules();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.BEHAVIOUR__RULES:
+        getRules().clear();
+        getRules().addAll((Collection<? extends Expression>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.BEHAVIOUR__RULES:
+        getRules().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.BEHAVIOUR__RULES:
+        return rules != null && !rules.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //BehaviourImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ComplexNofailureDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ComplexNofailureDefinitionImpl.java
new file mode 100644
index 0000000..91737e4
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ComplexNofailureDefinitionImpl.java
@@ -0,0 +1,40 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Complex Nofailure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ComplexNofailureDefinitionImpl extends DefinitionsImpl implements ComplexNofailureDefinition
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ComplexNofailureDefinitionImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.COMPLEX_NOFAILURE_DEFINITION;
+  }
+
+} //ComplexNofailureDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/DefinitionsImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/DefinitionsImpl.java
new file mode 100644
index 0000000..4166a3f
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/DefinitionsImpl.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.polarsys.chess.xtext.flaDsl.Definitions;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Definitions</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DefinitionsImpl extends MinimalEObjectImpl.Container implements Definitions
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected DefinitionsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.DEFINITIONS;
+  }
+
+} //DefinitionsImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ExpressionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ExpressionImpl.java
new file mode 100644
index 0000000..3f2b608
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/ExpressionImpl.java
@@ -0,0 +1,266 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.polarsys.chess.xtext.flaDsl.Expression;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.Lhs;
+import org.polarsys.chess.xtext.flaDsl.Rhs;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl#getLhs <em>Lhs</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.ExpressionImpl#getRhs <em>Rhs</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExpressionImpl extends MinimalEObjectImpl.Container implements Expression
+{
+  /**
+   * The cached value of the '{@link #getLhs() <em>Lhs</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getLhs()
+   * @generated
+   * @ordered
+   */
+  protected Lhs lhs;
+
+  /**
+   * The cached value of the '{@link #getRhs() <em>Rhs</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRhs()
+   * @generated
+   * @ordered
+   */
+  protected Rhs rhs;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ExpressionImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.EXPRESSION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Lhs getLhs()
+  {
+    return lhs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetLhs(Lhs newLhs, NotificationChain msgs)
+  {
+    Lhs oldLhs = lhs;
+    lhs = newLhs;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.EXPRESSION__LHS, oldLhs, newLhs);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setLhs(Lhs newLhs)
+  {
+    if (newLhs != lhs)
+    {
+      NotificationChain msgs = null;
+      if (lhs != null)
+        msgs = ((InternalEObject)lhs).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.EXPRESSION__LHS, null, msgs);
+      if (newLhs != null)
+        msgs = ((InternalEObject)newLhs).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.EXPRESSION__LHS, null, msgs);
+      msgs = basicSetLhs(newLhs, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.EXPRESSION__LHS, newLhs, newLhs));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Rhs getRhs()
+  {
+    return rhs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetRhs(Rhs newRhs, NotificationChain msgs)
+  {
+    Rhs oldRhs = rhs;
+    rhs = newRhs;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.EXPRESSION__RHS, oldRhs, newRhs);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setRhs(Rhs newRhs)
+  {
+    if (newRhs != rhs)
+    {
+      NotificationChain msgs = null;
+      if (rhs != null)
+        msgs = ((InternalEObject)rhs).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.EXPRESSION__RHS, null, msgs);
+      if (newRhs != null)
+        msgs = ((InternalEObject)newRhs).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.EXPRESSION__RHS, null, msgs);
+      msgs = basicSetRhs(newRhs, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.EXPRESSION__RHS, newRhs, newRhs));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.EXPRESSION__LHS:
+        return basicSetLhs(null, msgs);
+      case FlaDslPackage.EXPRESSION__RHS:
+        return basicSetRhs(null, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.EXPRESSION__LHS:
+        return getLhs();
+      case FlaDslPackage.EXPRESSION__RHS:
+        return getRhs();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.EXPRESSION__LHS:
+        setLhs((Lhs)newValue);
+        return;
+      case FlaDslPackage.EXPRESSION__RHS:
+        setRhs((Rhs)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.EXPRESSION__LHS:
+        setLhs((Lhs)null);
+        return;
+      case FlaDslPackage.EXPRESSION__RHS:
+        setRhs((Rhs)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.EXPRESSION__LHS:
+        return lhs != null;
+      case FlaDslPackage.EXPRESSION__RHS:
+        return rhs != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //ExpressionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FailureDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FailureDefinitionImpl.java
new file mode 100644
index 0000000..fe7ed2c
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FailureDefinitionImpl.java
@@ -0,0 +1,265 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDavoidable;
+import org.polarsys.chess.xtext.flaDsl.FailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.FailureType;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Failure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.FailureDefinitionImpl#getAcidAvoidable <em>Acid Avoidable</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FailureDefinitionImpl extends DefinitionsImpl implements FailureDefinition
+{
+  /**
+   * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getType()
+   * @generated
+   * @ordered
+   */
+  protected static final FailureType TYPE_EDEFAULT = FailureType.NO_FAILURE;
+
+  /**
+   * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getType()
+   * @generated
+   * @ordered
+   */
+  protected FailureType type = TYPE_EDEFAULT;
+
+  /**
+   * The cached value of the '{@link #getAcidAvoidable() <em>Acid Avoidable</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getAcidAvoidable()
+   * @generated
+   * @ordered
+   */
+  protected ACIDavoidable acidAvoidable;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected FailureDefinitionImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.FAILURE_DEFINITION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FailureType getType()
+  {
+    return type;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setType(FailureType newType)
+  {
+    FailureType oldType = type;
+    type = newType == null ? TYPE_EDEFAULT : newType;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.FAILURE_DEFINITION__TYPE, oldType, type));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public ACIDavoidable getAcidAvoidable()
+  {
+    return acidAvoidable;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetAcidAvoidable(ACIDavoidable newAcidAvoidable, NotificationChain msgs)
+  {
+    ACIDavoidable oldAcidAvoidable = acidAvoidable;
+    acidAvoidable = newAcidAvoidable;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE, oldAcidAvoidable, newAcidAvoidable);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setAcidAvoidable(ACIDavoidable newAcidAvoidable)
+  {
+    if (newAcidAvoidable != acidAvoidable)
+    {
+      NotificationChain msgs = null;
+      if (acidAvoidable != null)
+        msgs = ((InternalEObject)acidAvoidable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE, null, msgs);
+      if (newAcidAvoidable != null)
+        msgs = ((InternalEObject)newAcidAvoidable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE, null, msgs);
+      msgs = basicSetAcidAvoidable(newAcidAvoidable, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE, newAcidAvoidable, newAcidAvoidable));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+        return basicSetAcidAvoidable(null, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.FAILURE_DEFINITION__TYPE:
+        return getType();
+      case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+        return getAcidAvoidable();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.FAILURE_DEFINITION__TYPE:
+        setType((FailureType)newValue);
+        return;
+      case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+        setAcidAvoidable((ACIDavoidable)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.FAILURE_DEFINITION__TYPE:
+        setType(TYPE_EDEFAULT);
+        return;
+      case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+        setAcidAvoidable((ACIDavoidable)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.FAILURE_DEFINITION__TYPE:
+        return type != TYPE_EDEFAULT;
+      case FlaDslPackage.FAILURE_DEFINITION__ACID_AVOIDABLE:
+        return acidAvoidable != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (type: ");
+    result.append(type);
+    result.append(')');
+    return result.toString();
+  }
+
+} //FailureDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslFactoryImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslFactoryImpl.java
new file mode 100644
index 0000000..fecc9d3
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslFactoryImpl.java
@@ -0,0 +1,551 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.polarsys.chess.xtext.flaDsl.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FlaDslFactoryImpl extends EFactoryImpl implements FlaDslFactory
+{
+  /**
+   * Creates the default factory implementation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static FlaDslFactory init()
+  {
+    try
+    {
+      FlaDslFactory theFlaDslFactory = (FlaDslFactory)EPackage.Registry.INSTANCE.getEFactory(FlaDslPackage.eNS_URI);
+      if (theFlaDslFactory != null)
+      {
+        return theFlaDslFactory;
+      }
+    }
+    catch (Exception exception)
+    {
+      EcorePlugin.INSTANCE.log(exception);
+    }
+    return new FlaDslFactoryImpl();
+  }
+
+  /**
+   * Creates an instance of the factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FlaDslFactoryImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EObject create(EClass eClass)
+  {
+    switch (eClass.getClassifierID())
+    {
+      case FlaDslPackage.BEHAVIOUR: return createBehaviour();
+      case FlaDslPackage.EXPRESSION: return createExpression();
+      case FlaDslPackage.LHS: return createLhs();
+      case FlaDslPackage.RHS: return createRhs();
+      case FlaDslPackage.INPUT_EXPRESSION: return createInputExpression();
+      case FlaDslPackage.OUTPUT_EXPRESSION: return createOutputExpression();
+      case FlaDslPackage.IN_FAILURE_EXPR: return createInFailureExpr();
+      case FlaDslPackage.OUT_FAILURE_EXPR: return createOutFailureExpr();
+      case FlaDslPackage.DEFINITIONS: return createDefinitions();
+      case FlaDslPackage.FAILURE_DEFINITION: return createFailureDefinition();
+      case FlaDslPackage.NO_FAILURE_DEFINITION: return createNoFailureDefinition();
+      case FlaDslPackage.COMPLEX_NOFAILURE_DEFINITION: return createComplexNofailureDefinition();
+      case FlaDslPackage.WILDCARD_DEFINITION: return createWildcardDefinition();
+      case FlaDslPackage.VARIABLE_DEFINITION: return createVariableDefinition();
+      case FlaDslPackage.ACI_DAVOIDABLE: return createACIDavoidable();
+      case FlaDslPackage.ACID_MITIGATION: return createACIDMitigation();
+      default:
+        throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+    }
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object createFromString(EDataType eDataType, String initialValue)
+  {
+    switch (eDataType.getClassifierID())
+    {
+      case FlaDslPackage.FAILURE_TYPE:
+        return createFailureTypeFromString(eDataType, initialValue);
+      case FlaDslPackage.AAVOIDABLE:
+        return createAavoidableFromString(eDataType, initialValue);
+      case FlaDslPackage.CAVOIDABLE:
+        return createCavoidableFromString(eDataType, initialValue);
+      case FlaDslPackage.IAVOIDABLE:
+        return createIavoidableFromString(eDataType, initialValue);
+      case FlaDslPackage.DAVOIDABLE:
+        return createDavoidableFromString(eDataType, initialValue);
+      case FlaDslPackage.AMITIGATION:
+        return createAmitigationFromString(eDataType, initialValue);
+      case FlaDslPackage.CMITIGATION:
+        return createCmitigationFromString(eDataType, initialValue);
+      case FlaDslPackage.IMITIGATION:
+        return createImitigationFromString(eDataType, initialValue);
+      case FlaDslPackage.DMITIGATION:
+        return createDmitigationFromString(eDataType, initialValue);
+      default:
+        throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+    }
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String convertToString(EDataType eDataType, Object instanceValue)
+  {
+    switch (eDataType.getClassifierID())
+    {
+      case FlaDslPackage.FAILURE_TYPE:
+        return convertFailureTypeToString(eDataType, instanceValue);
+      case FlaDslPackage.AAVOIDABLE:
+        return convertAavoidableToString(eDataType, instanceValue);
+      case FlaDslPackage.CAVOIDABLE:
+        return convertCavoidableToString(eDataType, instanceValue);
+      case FlaDslPackage.IAVOIDABLE:
+        return convertIavoidableToString(eDataType, instanceValue);
+      case FlaDslPackage.DAVOIDABLE:
+        return convertDavoidableToString(eDataType, instanceValue);
+      case FlaDslPackage.AMITIGATION:
+        return convertAmitigationToString(eDataType, instanceValue);
+      case FlaDslPackage.CMITIGATION:
+        return convertCmitigationToString(eDataType, instanceValue);
+      case FlaDslPackage.IMITIGATION:
+        return convertImitigationToString(eDataType, instanceValue);
+      case FlaDslPackage.DMITIGATION:
+        return convertDmitigationToString(eDataType, instanceValue);
+      default:
+        throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+    }
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Behaviour createBehaviour()
+  {
+    BehaviourImpl behaviour = new BehaviourImpl();
+    return behaviour;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Expression createExpression()
+  {
+    ExpressionImpl expression = new ExpressionImpl();
+    return expression;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Lhs createLhs()
+  {
+    LhsImpl lhs = new LhsImpl();
+    return lhs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Rhs createRhs()
+  {
+    RhsImpl rhs = new RhsImpl();
+    return rhs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public InputExpression createInputExpression()
+  {
+    InputExpressionImpl inputExpression = new InputExpressionImpl();
+    return inputExpression;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public OutputExpression createOutputExpression()
+  {
+    OutputExpressionImpl outputExpression = new OutputExpressionImpl();
+    return outputExpression;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public InFailureExpr createInFailureExpr()
+  {
+    InFailureExprImpl inFailureExpr = new InFailureExprImpl();
+    return inFailureExpr;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public OutFailureExpr createOutFailureExpr()
+  {
+    OutFailureExprImpl outFailureExpr = new OutFailureExprImpl();
+    return outFailureExpr;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Definitions createDefinitions()
+  {
+    DefinitionsImpl definitions = new DefinitionsImpl();
+    return definitions;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FailureDefinition createFailureDefinition()
+  {
+    FailureDefinitionImpl failureDefinition = new FailureDefinitionImpl();
+    return failureDefinition;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NoFailureDefinition createNoFailureDefinition()
+  {
+    NoFailureDefinitionImpl noFailureDefinition = new NoFailureDefinitionImpl();
+    return noFailureDefinition;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public ComplexNofailureDefinition createComplexNofailureDefinition()
+  {
+    ComplexNofailureDefinitionImpl complexNofailureDefinition = new ComplexNofailureDefinitionImpl();
+    return complexNofailureDefinition;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public WildcardDefinition createWildcardDefinition()
+  {
+    WildcardDefinitionImpl wildcardDefinition = new WildcardDefinitionImpl();
+    return wildcardDefinition;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public VariableDefinition createVariableDefinition()
+  {
+    VariableDefinitionImpl variableDefinition = new VariableDefinitionImpl();
+    return variableDefinition;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public ACIDavoidable createACIDavoidable()
+  {
+    ACIDavoidableImpl aciDavoidable = new ACIDavoidableImpl();
+    return aciDavoidable;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public ACIDMitigation createACIDMitigation()
+  {
+    ACIDMitigationImpl acidMitigation = new ACIDMitigationImpl();
+    return acidMitigation;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FailureType createFailureTypeFromString(EDataType eDataType, String initialValue)
+  {
+    FailureType result = FailureType.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertFailureTypeToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Aavoidable createAavoidableFromString(EDataType eDataType, String initialValue)
+  {
+    Aavoidable result = Aavoidable.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertAavoidableToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Cavoidable createCavoidableFromString(EDataType eDataType, String initialValue)
+  {
+    Cavoidable result = Cavoidable.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertCavoidableToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Iavoidable createIavoidableFromString(EDataType eDataType, String initialValue)
+  {
+    Iavoidable result = Iavoidable.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertIavoidableToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Davoidable createDavoidableFromString(EDataType eDataType, String initialValue)
+  {
+    Davoidable result = Davoidable.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertDavoidableToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Amitigation createAmitigationFromString(EDataType eDataType, String initialValue)
+  {
+    Amitigation result = Amitigation.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertAmitigationToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Cmitigation createCmitigationFromString(EDataType eDataType, String initialValue)
+  {
+    Cmitigation result = Cmitigation.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertCmitigationToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Imitigation createImitigationFromString(EDataType eDataType, String initialValue)
+  {
+    Imitigation result = Imitigation.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertImitigationToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Dmitigation createDmitigationFromString(EDataType eDataType, String initialValue)
+  {
+    Dmitigation result = Dmitigation.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertDmitigationToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FlaDslPackage getFlaDslPackage()
+  {
+    return (FlaDslPackage)getEPackage();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @deprecated
+   * @generated
+   */
+  @Deprecated
+  public static FlaDslPackage getPackage()
+  {
+    return FlaDslPackage.eINSTANCE;
+  }
+
+} //FlaDslFactoryImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslPackageImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslPackageImpl.java
new file mode 100644
index 0000000..74c51e6
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/FlaDslPackageImpl.java
@@ -0,0 +1,1026 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDMitigation;
+import org.polarsys.chess.xtext.flaDsl.ACIDavoidable;
+import org.polarsys.chess.xtext.flaDsl.Aavoidable;
+import org.polarsys.chess.xtext.flaDsl.Amitigation;
+import org.polarsys.chess.xtext.flaDsl.Behaviour;
+import org.polarsys.chess.xtext.flaDsl.Cavoidable;
+import org.polarsys.chess.xtext.flaDsl.Cmitigation;
+import org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.Davoidable;
+import org.polarsys.chess.xtext.flaDsl.Definitions;
+import org.polarsys.chess.xtext.flaDsl.Dmitigation;
+import org.polarsys.chess.xtext.flaDsl.Expression;
+import org.polarsys.chess.xtext.flaDsl.FailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.FailureType;
+import org.polarsys.chess.xtext.flaDsl.FlaDslFactory;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.Iavoidable;
+import org.polarsys.chess.xtext.flaDsl.Imitigation;
+import org.polarsys.chess.xtext.flaDsl.InFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.InputExpression;
+import org.polarsys.chess.xtext.flaDsl.Lhs;
+import org.polarsys.chess.xtext.flaDsl.NoFailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.OutFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.OutputExpression;
+import org.polarsys.chess.xtext.flaDsl.Rhs;
+import org.polarsys.chess.xtext.flaDsl.VariableDefinition;
+import org.polarsys.chess.xtext.flaDsl.WildcardDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FlaDslPackageImpl extends EPackageImpl implements FlaDslPackage
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass behaviourEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass expressionEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass lhsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass rhsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass inputExpressionEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass outputExpressionEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass inFailureExprEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass outFailureExprEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass definitionsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass failureDefinitionEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass noFailureDefinitionEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass complexNofailureDefinitionEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass wildcardDefinitionEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass variableDefinitionEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass aciDavoidableEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass acidMitigationEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum failureTypeEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum aavoidableEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum cavoidableEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum iavoidableEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum davoidableEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum amitigationEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum cmitigationEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum imitigationEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum dmitigationEEnum = null;
+
+  /**
+   * Creates an instance of the model <b>Package</b>, registered with
+   * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+   * package URI value.
+   * <p>Note: the correct way to create the package is via the static
+   * factory method {@link #init init()}, which also performs
+   * initialization of the package, or returns the registered package,
+   * if one already exists.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.eclipse.emf.ecore.EPackage.Registry
+   * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage#eNS_URI
+   * @see #init()
+   * @generated
+   */
+  private FlaDslPackageImpl()
+  {
+    super(eNS_URI, FlaDslFactory.eINSTANCE);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static boolean isInited = false;
+
+  /**
+   * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+   * 
+   * <p>This method is used to initialize {@link FlaDslPackage#eINSTANCE} when that field is accessed.
+   * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #eNS_URI
+   * @see #createPackageContents()
+   * @see #initializePackageContents()
+   * @generated
+   */
+  public static FlaDslPackage init()
+  {
+    if (isInited) return (FlaDslPackage)EPackage.Registry.INSTANCE.getEPackage(FlaDslPackage.eNS_URI);
+
+    // Obtain or create and register package
+    FlaDslPackageImpl theFlaDslPackage = (FlaDslPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FlaDslPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FlaDslPackageImpl());
+
+    isInited = true;
+
+    // Initialize simple dependencies
+    UMLPackage.eINSTANCE.eClass();
+
+    // Create package meta-data objects
+    theFlaDslPackage.createPackageContents();
+
+    // Initialize created meta-data
+    theFlaDslPackage.initializePackageContents();
+
+    // Mark meta-data to indicate it can't be changed
+    theFlaDslPackage.freeze();
+
+  
+    // Update the registry and return the package
+    EPackage.Registry.INSTANCE.put(FlaDslPackage.eNS_URI, theFlaDslPackage);
+    return theFlaDslPackage;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getBehaviour()
+  {
+    return behaviourEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getBehaviour_Rules()
+  {
+    return (EReference)behaviourEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getExpression()
+  {
+    return expressionEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getExpression_Lhs()
+  {
+    return (EReference)expressionEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getExpression_Rhs()
+  {
+    return (EReference)expressionEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getLhs()
+  {
+    return lhsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getLhs_Failures()
+  {
+    return (EReference)lhsEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getRhs()
+  {
+    return rhsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getRhs_Failures()
+  {
+    return (EReference)rhsEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getInputExpression()
+  {
+    return inputExpressionEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getInputExpression_Ref()
+  {
+    return (EReference)inputExpressionEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getInputExpression_FailureExpr()
+  {
+    return (EReference)inputExpressionEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getOutputExpression()
+  {
+    return outputExpressionEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getOutputExpression_Ref()
+  {
+    return (EReference)outputExpressionEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getOutputExpression_FailureExpr()
+  {
+    return (EReference)outputExpressionEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getInFailureExpr()
+  {
+    return inFailureExprEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getInFailureExpr_Failures()
+  {
+    return (EReference)inFailureExprEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getOutFailureExpr()
+  {
+    return outFailureExprEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getOutFailureExpr_Failures()
+  {
+    return (EReference)outFailureExprEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getDefinitions()
+  {
+    return definitionsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getFailureDefinition()
+  {
+    return failureDefinitionEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getFailureDefinition_Type()
+  {
+    return (EAttribute)failureDefinitionEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getFailureDefinition_AcidAvoidable()
+  {
+    return (EReference)failureDefinitionEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getNoFailureDefinition()
+  {
+    return noFailureDefinitionEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getNoFailureDefinition_AcidMitigation()
+  {
+    return (EReference)noFailureDefinitionEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getComplexNofailureDefinition()
+  {
+    return complexNofailureDefinitionEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getWildcardDefinition()
+  {
+    return wildcardDefinitionEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getVariableDefinition()
+  {
+    return variableDefinitionEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getVariableDefinition_VariableName()
+  {
+    return (EAttribute)variableDefinitionEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getACIDavoidable()
+  {
+    return aciDavoidableEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getACIDavoidable_A()
+  {
+    return (EAttribute)aciDavoidableEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getACIDavoidable_C()
+  {
+    return (EAttribute)aciDavoidableEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getACIDavoidable_I()
+  {
+    return (EAttribute)aciDavoidableEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getACIDavoidable_D()
+  {
+    return (EAttribute)aciDavoidableEClass.getEStructuralFeatures().get(3);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getACIDMitigation()
+  {
+    return acidMitigationEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getACIDMitigation_A()
+  {
+    return (EAttribute)acidMitigationEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getACIDMitigation_C()
+  {
+    return (EAttribute)acidMitigationEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getACIDMitigation_I()
+  {
+    return (EAttribute)acidMitigationEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getACIDMitigation_D()
+  {
+    return (EAttribute)acidMitigationEClass.getEStructuralFeatures().get(3);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EEnum getFailureType()
+  {
+    return failureTypeEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EEnum getAavoidable()
+  {
+    return aavoidableEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EEnum getCavoidable()
+  {
+    return cavoidableEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EEnum getIavoidable()
+  {
+    return iavoidableEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EEnum getDavoidable()
+  {
+    return davoidableEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EEnum getAmitigation()
+  {
+    return amitigationEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EEnum getCmitigation()
+  {
+    return cmitigationEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EEnum getImitigation()
+  {
+    return imitigationEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EEnum getDmitigation()
+  {
+    return dmitigationEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FlaDslFactory getFlaDslFactory()
+  {
+    return (FlaDslFactory)getEFactoryInstance();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private boolean isCreated = false;
+
+  /**
+   * Creates the meta-model objects for the package.  This method is
+   * guarded to have no affect on any invocation but its first.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void createPackageContents()
+  {
+    if (isCreated) return;
+    isCreated = true;
+
+    // Create classes and their features
+    behaviourEClass = createEClass(BEHAVIOUR);
+    createEReference(behaviourEClass, BEHAVIOUR__RULES);
+
+    expressionEClass = createEClass(EXPRESSION);
+    createEReference(expressionEClass, EXPRESSION__LHS);
+    createEReference(expressionEClass, EXPRESSION__RHS);
+
+    lhsEClass = createEClass(LHS);
+    createEReference(lhsEClass, LHS__FAILURES);
+
+    rhsEClass = createEClass(RHS);
+    createEReference(rhsEClass, RHS__FAILURES);
+
+    inputExpressionEClass = createEClass(INPUT_EXPRESSION);
+    createEReference(inputExpressionEClass, INPUT_EXPRESSION__REF);
+    createEReference(inputExpressionEClass, INPUT_EXPRESSION__FAILURE_EXPR);
+
+    outputExpressionEClass = createEClass(OUTPUT_EXPRESSION);
+    createEReference(outputExpressionEClass, OUTPUT_EXPRESSION__REF);
+    createEReference(outputExpressionEClass, OUTPUT_EXPRESSION__FAILURE_EXPR);
+
+    inFailureExprEClass = createEClass(IN_FAILURE_EXPR);
+    createEReference(inFailureExprEClass, IN_FAILURE_EXPR__FAILURES);
+
+    outFailureExprEClass = createEClass(OUT_FAILURE_EXPR);
+    createEReference(outFailureExprEClass, OUT_FAILURE_EXPR__FAILURES);
+
+    definitionsEClass = createEClass(DEFINITIONS);
+
+    failureDefinitionEClass = createEClass(FAILURE_DEFINITION);
+    createEAttribute(failureDefinitionEClass, FAILURE_DEFINITION__TYPE);
+    createEReference(failureDefinitionEClass, FAILURE_DEFINITION__ACID_AVOIDABLE);
+
+    noFailureDefinitionEClass = createEClass(NO_FAILURE_DEFINITION);
+    createEReference(noFailureDefinitionEClass, NO_FAILURE_DEFINITION__ACID_MITIGATION);
+
+    complexNofailureDefinitionEClass = createEClass(COMPLEX_NOFAILURE_DEFINITION);
+
+    wildcardDefinitionEClass = createEClass(WILDCARD_DEFINITION);
+
+    variableDefinitionEClass = createEClass(VARIABLE_DEFINITION);
+    createEAttribute(variableDefinitionEClass, VARIABLE_DEFINITION__VARIABLE_NAME);
+
+    aciDavoidableEClass = createEClass(ACI_DAVOIDABLE);
+    createEAttribute(aciDavoidableEClass, ACI_DAVOIDABLE__A);
+    createEAttribute(aciDavoidableEClass, ACI_DAVOIDABLE__C);
+    createEAttribute(aciDavoidableEClass, ACI_DAVOIDABLE__I);
+    createEAttribute(aciDavoidableEClass, ACI_DAVOIDABLE__D);
+
+    acidMitigationEClass = createEClass(ACID_MITIGATION);
+    createEAttribute(acidMitigationEClass, ACID_MITIGATION__A);
+    createEAttribute(acidMitigationEClass, ACID_MITIGATION__C);
+    createEAttribute(acidMitigationEClass, ACID_MITIGATION__I);
+    createEAttribute(acidMitigationEClass, ACID_MITIGATION__D);
+
+    // Create enums
+    failureTypeEEnum = createEEnum(FAILURE_TYPE);
+    aavoidableEEnum = createEEnum(AAVOIDABLE);
+    cavoidableEEnum = createEEnum(CAVOIDABLE);
+    iavoidableEEnum = createEEnum(IAVOIDABLE);
+    davoidableEEnum = createEEnum(DAVOIDABLE);
+    amitigationEEnum = createEEnum(AMITIGATION);
+    cmitigationEEnum = createEEnum(CMITIGATION);
+    imitigationEEnum = createEEnum(IMITIGATION);
+    dmitigationEEnum = createEEnum(DMITIGATION);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private boolean isInitialized = false;
+
+  /**
+   * Complete the initialization of the package and its meta-model.  This
+   * method is guarded to have no affect on any invocation but its first.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void initializePackageContents()
+  {
+    if (isInitialized) return;
+    isInitialized = true;
+
+    // Initialize package
+    setName(eNAME);
+    setNsPrefix(eNS_PREFIX);
+    setNsURI(eNS_URI);
+
+    // Obtain other dependent packages
+    UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+    EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+
+    // Create type parameters
+
+    // Set bounds for type parameters
+
+    // Add supertypes to classes
+    failureDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+    noFailureDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+    noFailureDefinitionEClass.getESuperTypes().add(this.getComplexNofailureDefinition());
+    complexNofailureDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+    wildcardDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+    variableDefinitionEClass.getESuperTypes().add(this.getDefinitions());
+
+    // Initialize classes and features; add operations and parameters
+    initEClass(behaviourEClass, Behaviour.class, "Behaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getBehaviour_Rules(), this.getExpression(), null, "rules", null, 0, -1, Behaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getExpression_Lhs(), this.getLhs(), null, "lhs", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getExpression_Rhs(), this.getRhs(), null, "rhs", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(lhsEClass, Lhs.class, "Lhs", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getLhs_Failures(), this.getInputExpression(), null, "failures", null, 0, -1, Lhs.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(rhsEClass, Rhs.class, "Rhs", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getRhs_Failures(), this.getOutputExpression(), null, "failures", null, 0, -1, Rhs.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(inputExpressionEClass, InputExpression.class, "InputExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getInputExpression_Ref(), theUMLPackage.getPort(), null, "ref", null, 0, 1, InputExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getInputExpression_FailureExpr(), this.getInFailureExpr(), null, "failureExpr", null, 0, 1, InputExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(outputExpressionEClass, OutputExpression.class, "OutputExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getOutputExpression_Ref(), theUMLPackage.getPort(), null, "ref", null, 0, 1, OutputExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getOutputExpression_FailureExpr(), this.getOutFailureExpr(), null, "failureExpr", null, 0, 1, OutputExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(inFailureExprEClass, InFailureExpr.class, "InFailureExpr", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getInFailureExpr_Failures(), this.getDefinitions(), null, "failures", null, 0, -1, InFailureExpr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(outFailureExprEClass, OutFailureExpr.class, "OutFailureExpr", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getOutFailureExpr_Failures(), this.getDefinitions(), null, "failures", null, 0, -1, OutFailureExpr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(definitionsEClass, Definitions.class, "Definitions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(failureDefinitionEClass, FailureDefinition.class, "FailureDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getFailureDefinition_Type(), this.getFailureType(), "type", null, 0, 1, FailureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getFailureDefinition_AcidAvoidable(), this.getACIDavoidable(), null, "acidAvoidable", null, 0, 1, FailureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(noFailureDefinitionEClass, NoFailureDefinition.class, "NoFailureDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getNoFailureDefinition_AcidMitigation(), this.getACIDMitigation(), null, "acidMitigation", null, 0, 1, NoFailureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(complexNofailureDefinitionEClass, ComplexNofailureDefinition.class, "ComplexNofailureDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(wildcardDefinitionEClass, WildcardDefinition.class, "WildcardDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(variableDefinitionEClass, VariableDefinition.class, "VariableDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getVariableDefinition_VariableName(), theEcorePackage.getEString(), "variableName", null, 0, 1, VariableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(aciDavoidableEClass, ACIDavoidable.class, "ACIDavoidable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getACIDavoidable_A(), this.getAavoidable(), "a", null, 0, 1, ACIDavoidable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getACIDavoidable_C(), this.getCavoidable(), "c", null, 0, 1, ACIDavoidable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getACIDavoidable_I(), this.getIavoidable(), "i", null, 0, 1, ACIDavoidable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getACIDavoidable_D(), this.getDavoidable(), "d", null, 0, 1, ACIDavoidable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(acidMitigationEClass, ACIDMitigation.class, "ACIDMitigation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getACIDMitigation_A(), this.getAmitigation(), "a", null, 0, 1, ACIDMitigation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getACIDMitigation_C(), this.getCmitigation(), "c", null, 0, 1, ACIDMitigation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getACIDMitigation_I(), this.getImitigation(), "i", null, 0, 1, ACIDMitigation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getACIDMitigation_D(), this.getDmitigation(), "d", null, 0, 1, ACIDMitigation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    // Initialize enums and add enum literals
+    initEEnum(failureTypeEEnum, FailureType.class, "FailureType");
+    addEEnumLiteral(failureTypeEEnum, FailureType.NO_FAILURE);
+    addEEnumLiteral(failureTypeEEnum, FailureType.EARLY);
+    addEEnumLiteral(failureTypeEEnum, FailureType.LATE);
+    addEEnumLiteral(failureTypeEEnum, FailureType.COMMISSION);
+    addEEnumLiteral(failureTypeEEnum, FailureType.OMISSION);
+    addEEnumLiteral(failureTypeEEnum, FailureType.VALUE_SUBTLE);
+    addEEnumLiteral(failureTypeEEnum, FailureType.VALUE_COARSE);
+    addEEnumLiteral(failureTypeEEnum, FailureType.WILDCARD);
+    addEEnumLiteral(failureTypeEEnum, FailureType.VARIABLE);
+
+    initEEnum(aavoidableEEnum, Aavoidable.class, "Aavoidable");
+    addEEnumLiteral(aavoidableEEnum, Aavoidable.INCOMPLETION);
+    addEEnumLiteral(aavoidableEEnum, Aavoidable.NONE);
+    addEEnumLiteral(aavoidableEEnum, Aavoidable.UNSPECIFIED);
+
+    initEEnum(cavoidableEEnum, Cavoidable.class, "Cavoidable");
+    addEEnumLiteral(cavoidableEEnum, Cavoidable.INCONSISTENCY);
+    addEEnumLiteral(cavoidableEEnum, Cavoidable.NONE);
+    addEEnumLiteral(cavoidableEEnum, Cavoidable.UNSPECIFIED);
+
+    initEEnum(iavoidableEEnum, Iavoidable.class, "Iavoidable");
+    addEEnumLiteral(iavoidableEEnum, Iavoidable.INTERFERENCE);
+    addEEnumLiteral(iavoidableEEnum, Iavoidable.NONE);
+    addEEnumLiteral(iavoidableEEnum, Iavoidable.UNSPECIFIED);
+
+    initEEnum(davoidableEEnum, Davoidable.class, "Davoidable");
+    addEEnumLiteral(davoidableEEnum, Davoidable.IMPERMANENCE);
+    addEEnumLiteral(davoidableEEnum, Davoidable.NONE);
+    addEEnumLiteral(davoidableEEnum, Davoidable.UNSPECIFIED);
+
+    initEEnum(amitigationEEnum, Amitigation.class, "Amitigation");
+    addEEnumLiteral(amitigationEEnum, Amitigation.ALL_OR_NOTHING);
+    addEEnumLiteral(amitigationEEnum, Amitigation.ALL_OR_COMPENSATION);
+    addEEnumLiteral(amitigationEEnum, Amitigation.NONE);
+    addEEnumLiteral(amitigationEEnum, Amitigation.UNSPECIFIED);
+
+    initEEnum(cmitigationEEnum, Cmitigation.class, "Cmitigation");
+    addEEnumLiteral(cmitigationEEnum, Cmitigation.FULL_CONSISTENCY);
+    addEEnumLiteral(cmitigationEEnum, Cmitigation.RANGE_VIOLATION_ALLOWED);
+    addEEnumLiteral(cmitigationEEnum, Cmitigation.NONE);
+    addEEnumLiteral(cmitigationEEnum, Cmitigation.UNSPECIFIED);
+
+    initEEnum(imitigationEEnum, Imitigation.class, "Imitigation");
+    addEEnumLiteral(imitigationEEnum, Imitigation.SERIALIZABLE);
+    addEEnumLiteral(imitigationEEnum, Imitigation.PORTABLE_LEVEL);
+    addEEnumLiteral(imitigationEEnum, Imitigation.NONE);
+    addEEnumLiteral(imitigationEEnum, Imitigation.UNSPECIFIED);
+
+    initEEnum(dmitigationEEnum, Dmitigation.class, "Dmitigation");
+    addEEnumLiteral(dmitigationEEnum, Dmitigation.NO_LOSS);
+    addEEnumLiteral(dmitigationEEnum, Dmitigation.PARTIAL_LOSS_ALLOWED);
+    addEEnumLiteral(dmitigationEEnum, Dmitigation.NONE);
+    addEEnumLiteral(dmitigationEEnum, Dmitigation.UNSPECIFIED);
+
+    // Create resource
+    createResource(eNS_URI);
+  }
+
+} //FlaDslPackageImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InFailureExprImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InFailureExprImpl.java
new file mode 100644
index 0000000..5474b94
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InFailureExprImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.Definitions;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.InFailureExpr;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>In Failure Expr</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.InFailureExprImpl#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InFailureExprImpl extends MinimalEObjectImpl.Container implements InFailureExpr
+{
+  /**
+   * The cached value of the '{@link #getFailures() <em>Failures</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFailures()
+   * @generated
+   * @ordered
+   */
+  protected EList<Definitions> failures;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected InFailureExprImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.IN_FAILURE_EXPR;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Definitions> getFailures()
+  {
+    if (failures == null)
+    {
+      failures = new EObjectContainmentEList<Definitions>(Definitions.class, this, FlaDslPackage.IN_FAILURE_EXPR__FAILURES);
+    }
+    return failures;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+        return ((InternalEList<?>)getFailures()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+        return getFailures();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+        getFailures().clear();
+        getFailures().addAll((Collection<? extends Definitions>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+        getFailures().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.IN_FAILURE_EXPR__FAILURES:
+        return failures != null && !failures.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //InFailureExprImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InputExpressionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InputExpressionImpl.java
new file mode 100644
index 0000000..bd85868
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/InputExpressionImpl.java
@@ -0,0 +1,261 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.uml2.uml.Port;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.InFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.InputExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Input Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl#getRef <em>Ref</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.InputExpressionImpl#getFailureExpr <em>Failure Expr</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InputExpressionImpl extends MinimalEObjectImpl.Container implements InputExpression
+{
+  /**
+   * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRef()
+   * @generated
+   * @ordered
+   */
+  protected Port ref;
+
+  /**
+   * The cached value of the '{@link #getFailureExpr() <em>Failure Expr</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFailureExpr()
+   * @generated
+   * @ordered
+   */
+  protected InFailureExpr failureExpr;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected InputExpressionImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.INPUT_EXPRESSION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Port getRef()
+  {
+    if (ref != null && ref.eIsProxy())
+    {
+      InternalEObject oldRef = (InternalEObject)ref;
+      ref = (Port)eResolveProxy(oldRef);
+      if (ref != oldRef)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, FlaDslPackage.INPUT_EXPRESSION__REF, oldRef, ref));
+      }
+    }
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Port basicGetRef()
+  {
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setRef(Port newRef)
+  {
+    Port oldRef = ref;
+    ref = newRef;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.INPUT_EXPRESSION__REF, oldRef, ref));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public InFailureExpr getFailureExpr()
+  {
+    return failureExpr;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetFailureExpr(InFailureExpr newFailureExpr, NotificationChain msgs)
+  {
+    InFailureExpr oldFailureExpr = failureExpr;
+    failureExpr = newFailureExpr;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR, oldFailureExpr, newFailureExpr);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setFailureExpr(InFailureExpr newFailureExpr)
+  {
+    if (newFailureExpr != failureExpr)
+    {
+      NotificationChain msgs = null;
+      if (failureExpr != null)
+        msgs = ((InternalEObject)failureExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR, null, msgs);
+      if (newFailureExpr != null)
+        msgs = ((InternalEObject)newFailureExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR, null, msgs);
+      msgs = basicSetFailureExpr(newFailureExpr, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR, newFailureExpr, newFailureExpr));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+        return basicSetFailureExpr(null, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.INPUT_EXPRESSION__REF:
+        if (resolve) return getRef();
+        return basicGetRef();
+      case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+        return getFailureExpr();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.INPUT_EXPRESSION__REF:
+        setRef((Port)newValue);
+        return;
+      case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+        setFailureExpr((InFailureExpr)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.INPUT_EXPRESSION__REF:
+        setRef((Port)null);
+        return;
+      case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+        setFailureExpr((InFailureExpr)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.INPUT_EXPRESSION__REF:
+        return ref != null;
+      case FlaDslPackage.INPUT_EXPRESSION__FAILURE_EXPR:
+        return failureExpr != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //InputExpressionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/LhsImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/LhsImpl.java
new file mode 100644
index 0000000..6486299
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/LhsImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.InputExpression;
+import org.polarsys.chess.xtext.flaDsl.Lhs;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lhs</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.LhsImpl#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LhsImpl extends MinimalEObjectImpl.Container implements Lhs
+{
+  /**
+   * The cached value of the '{@link #getFailures() <em>Failures</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFailures()
+   * @generated
+   * @ordered
+   */
+  protected EList<InputExpression> failures;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected LhsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.LHS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<InputExpression> getFailures()
+  {
+    if (failures == null)
+    {
+      failures = new EObjectContainmentEList<InputExpression>(InputExpression.class, this, FlaDslPackage.LHS__FAILURES);
+    }
+    return failures;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.LHS__FAILURES:
+        return ((InternalEList<?>)getFailures()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.LHS__FAILURES:
+        return getFailures();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.LHS__FAILURES:
+        getFailures().clear();
+        getFailures().addAll((Collection<? extends InputExpression>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.LHS__FAILURES:
+        getFailures().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.LHS__FAILURES:
+        return failures != null && !failures.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //LhsImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/NoFailureDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/NoFailureDefinitionImpl.java
new file mode 100644
index 0000000..6f0455c
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/NoFailureDefinitionImpl.java
@@ -0,0 +1,193 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.polarsys.chess.xtext.flaDsl.ACIDMitigation;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.NoFailureDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>No Failure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.NoFailureDefinitionImpl#getAcidMitigation <em>Acid Mitigation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NoFailureDefinitionImpl extends DefinitionsImpl implements NoFailureDefinition
+{
+  /**
+   * The cached value of the '{@link #getAcidMitigation() <em>Acid Mitigation</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getAcidMitigation()
+   * @generated
+   * @ordered
+   */
+  protected ACIDMitigation acidMitigation;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected NoFailureDefinitionImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.NO_FAILURE_DEFINITION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public ACIDMitigation getAcidMitigation()
+  {
+    return acidMitigation;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetAcidMitigation(ACIDMitigation newAcidMitigation, NotificationChain msgs)
+  {
+    ACIDMitigation oldAcidMitigation = acidMitigation;
+    acidMitigation = newAcidMitigation;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION, oldAcidMitigation, newAcidMitigation);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setAcidMitigation(ACIDMitigation newAcidMitigation)
+  {
+    if (newAcidMitigation != acidMitigation)
+    {
+      NotificationChain msgs = null;
+      if (acidMitigation != null)
+        msgs = ((InternalEObject)acidMitigation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION, null, msgs);
+      if (newAcidMitigation != null)
+        msgs = ((InternalEObject)newAcidMitigation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION, null, msgs);
+      msgs = basicSetAcidMitigation(newAcidMitigation, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION, newAcidMitigation, newAcidMitigation));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+        return basicSetAcidMitigation(null, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+        return getAcidMitigation();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+        setAcidMitigation((ACIDMitigation)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+        setAcidMitigation((ACIDMitigation)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.NO_FAILURE_DEFINITION__ACID_MITIGATION:
+        return acidMitigation != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //NoFailureDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutFailureExprImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutFailureExprImpl.java
new file mode 100644
index 0000000..0ae9b3b
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutFailureExprImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.Definitions;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.OutFailureExpr;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Out Failure Expr</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.OutFailureExprImpl#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OutFailureExprImpl extends MinimalEObjectImpl.Container implements OutFailureExpr
+{
+  /**
+   * The cached value of the '{@link #getFailures() <em>Failures</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFailures()
+   * @generated
+   * @ordered
+   */
+  protected EList<Definitions> failures;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected OutFailureExprImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.OUT_FAILURE_EXPR;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Definitions> getFailures()
+  {
+    if (failures == null)
+    {
+      failures = new EObjectContainmentEList<Definitions>(Definitions.class, this, FlaDslPackage.OUT_FAILURE_EXPR__FAILURES);
+    }
+    return failures;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+        return ((InternalEList<?>)getFailures()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+        return getFailures();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+        getFailures().clear();
+        getFailures().addAll((Collection<? extends Definitions>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+        getFailures().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUT_FAILURE_EXPR__FAILURES:
+        return failures != null && !failures.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //OutFailureExprImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutputExpressionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutputExpressionImpl.java
new file mode 100644
index 0000000..53627ed
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/OutputExpressionImpl.java
@@ -0,0 +1,261 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.uml2.uml.Port;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.OutFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.OutputExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Output Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl#getRef <em>Ref</em>}</li>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.OutputExpressionImpl#getFailureExpr <em>Failure Expr</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OutputExpressionImpl extends MinimalEObjectImpl.Container implements OutputExpression
+{
+  /**
+   * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRef()
+   * @generated
+   * @ordered
+   */
+  protected Port ref;
+
+  /**
+   * The cached value of the '{@link #getFailureExpr() <em>Failure Expr</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFailureExpr()
+   * @generated
+   * @ordered
+   */
+  protected OutFailureExpr failureExpr;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected OutputExpressionImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.OUTPUT_EXPRESSION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Port getRef()
+  {
+    if (ref != null && ref.eIsProxy())
+    {
+      InternalEObject oldRef = (InternalEObject)ref;
+      ref = (Port)eResolveProxy(oldRef);
+      if (ref != oldRef)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, FlaDslPackage.OUTPUT_EXPRESSION__REF, oldRef, ref));
+      }
+    }
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Port basicGetRef()
+  {
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setRef(Port newRef)
+  {
+    Port oldRef = ref;
+    ref = newRef;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.OUTPUT_EXPRESSION__REF, oldRef, ref));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public OutFailureExpr getFailureExpr()
+  {
+    return failureExpr;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetFailureExpr(OutFailureExpr newFailureExpr, NotificationChain msgs)
+  {
+    OutFailureExpr oldFailureExpr = failureExpr;
+    failureExpr = newFailureExpr;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR, oldFailureExpr, newFailureExpr);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setFailureExpr(OutFailureExpr newFailureExpr)
+  {
+    if (newFailureExpr != failureExpr)
+    {
+      NotificationChain msgs = null;
+      if (failureExpr != null)
+        msgs = ((InternalEObject)failureExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR, null, msgs);
+      if (newFailureExpr != null)
+        msgs = ((InternalEObject)newFailureExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR, null, msgs);
+      msgs = basicSetFailureExpr(newFailureExpr, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR, newFailureExpr, newFailureExpr));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+        return basicSetFailureExpr(null, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUTPUT_EXPRESSION__REF:
+        if (resolve) return getRef();
+        return basicGetRef();
+      case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+        return getFailureExpr();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUTPUT_EXPRESSION__REF:
+        setRef((Port)newValue);
+        return;
+      case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+        setFailureExpr((OutFailureExpr)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUTPUT_EXPRESSION__REF:
+        setRef((Port)null);
+        return;
+      case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+        setFailureExpr((OutFailureExpr)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.OUTPUT_EXPRESSION__REF:
+        return ref != null;
+      case FlaDslPackage.OUTPUT_EXPRESSION__FAILURE_EXPR:
+        return failureExpr != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //OutputExpressionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/RhsImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/RhsImpl.java
new file mode 100644
index 0000000..dbfaf4d
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/RhsImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.OutputExpression;
+import org.polarsys.chess.xtext.flaDsl.Rhs;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Rhs</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.RhsImpl#getFailures <em>Failures</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RhsImpl extends MinimalEObjectImpl.Container implements Rhs
+{
+  /**
+   * The cached value of the '{@link #getFailures() <em>Failures</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFailures()
+   * @generated
+   * @ordered
+   */
+  protected EList<OutputExpression> failures;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected RhsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.RHS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<OutputExpression> getFailures()
+  {
+    if (failures == null)
+    {
+      failures = new EObjectContainmentEList<OutputExpression>(OutputExpression.class, this, FlaDslPackage.RHS__FAILURES);
+    }
+    return failures;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.RHS__FAILURES:
+        return ((InternalEList<?>)getFailures()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.RHS__FAILURES:
+        return getFailures();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.RHS__FAILURES:
+        getFailures().clear();
+        getFailures().addAll((Collection<? extends OutputExpression>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.RHS__FAILURES:
+        getFailures().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.RHS__FAILURES:
+        return failures != null && !failures.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //RhsImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/VariableDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/VariableDefinitionImpl.java
new file mode 100644
index 0000000..df7d5fb
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/VariableDefinitionImpl.java
@@ -0,0 +1,176 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.VariableDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.polarsys.chess.xtext.flaDsl.impl.VariableDefinitionImpl#getVariableName <em>Variable Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VariableDefinitionImpl extends DefinitionsImpl implements VariableDefinition
+{
+  /**
+   * The default value of the '{@link #getVariableName() <em>Variable Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getVariableName()
+   * @generated
+   * @ordered
+   */
+  protected static final String VARIABLE_NAME_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getVariableName() <em>Variable Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getVariableName()
+   * @generated
+   * @ordered
+   */
+  protected String variableName = VARIABLE_NAME_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected VariableDefinitionImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.VARIABLE_DEFINITION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getVariableName()
+  {
+    return variableName;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setVariableName(String newVariableName)
+  {
+    String oldVariableName = variableName;
+    variableName = newVariableName;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME, oldVariableName, variableName));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME:
+        return getVariableName();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME:
+        setVariableName((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME:
+        setVariableName(VARIABLE_NAME_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case FlaDslPackage.VARIABLE_DEFINITION__VARIABLE_NAME:
+        return VARIABLE_NAME_EDEFAULT == null ? variableName != null : !VARIABLE_NAME_EDEFAULT.equals(variableName);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (variableName: ");
+    result.append(variableName);
+    result.append(')');
+    return result.toString();
+  }
+
+} //VariableDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/WildcardDefinitionImpl.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/WildcardDefinitionImpl.java
new file mode 100644
index 0000000..352a227
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/impl/WildcardDefinitionImpl.java
@@ -0,0 +1,40 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.WildcardDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Wildcard Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class WildcardDefinitionImpl extends DefinitionsImpl implements WildcardDefinition
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected WildcardDefinitionImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return FlaDslPackage.Literals.WILDCARD_DEFINITION;
+  }
+
+} //WildcardDefinitionImpl
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslAdapterFactory.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslAdapterFactory.java
new file mode 100644
index 0000000..0ec323c
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslAdapterFactory.java
@@ -0,0 +1,432 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.polarsys.chess.xtext.flaDsl.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage
+ * @generated
+ */
+public class FlaDslAdapterFactory extends AdapterFactoryImpl
+{
+  /**
+   * The cached model package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected static FlaDslPackage modelPackage;
+
+  /**
+   * Creates an instance of the adapter factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FlaDslAdapterFactory()
+  {
+    if (modelPackage == null)
+    {
+      modelPackage = FlaDslPackage.eINSTANCE;
+    }
+  }
+
+  /**
+   * Returns whether this factory is applicable for the type of the object.
+   * <!-- begin-user-doc -->
+   * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+   * <!-- end-user-doc -->
+   * @return whether this factory is applicable for the type of the object.
+   * @generated
+   */
+  @Override
+  public boolean isFactoryForType(Object object)
+  {
+    if (object == modelPackage)
+    {
+      return true;
+    }
+    if (object instanceof EObject)
+    {
+      return ((EObject)object).eClass().getEPackage() == modelPackage;
+    }
+    return false;
+  }
+
+  /**
+   * The switch that delegates to the <code>createXXX</code> methods.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected FlaDslSwitch<Adapter> modelSwitch =
+    new FlaDslSwitch<Adapter>()
+    {
+      @Override
+      public Adapter caseBehaviour(Behaviour object)
+      {
+        return createBehaviourAdapter();
+      }
+      @Override
+      public Adapter caseExpression(Expression object)
+      {
+        return createExpressionAdapter();
+      }
+      @Override
+      public Adapter caseLhs(Lhs object)
+      {
+        return createLhsAdapter();
+      }
+      @Override
+      public Adapter caseRhs(Rhs object)
+      {
+        return createRhsAdapter();
+      }
+      @Override
+      public Adapter caseInputExpression(InputExpression object)
+      {
+        return createInputExpressionAdapter();
+      }
+      @Override
+      public Adapter caseOutputExpression(OutputExpression object)
+      {
+        return createOutputExpressionAdapter();
+      }
+      @Override
+      public Adapter caseInFailureExpr(InFailureExpr object)
+      {
+        return createInFailureExprAdapter();
+      }
+      @Override
+      public Adapter caseOutFailureExpr(OutFailureExpr object)
+      {
+        return createOutFailureExprAdapter();
+      }
+      @Override
+      public Adapter caseDefinitions(Definitions object)
+      {
+        return createDefinitionsAdapter();
+      }
+      @Override
+      public Adapter caseFailureDefinition(FailureDefinition object)
+      {
+        return createFailureDefinitionAdapter();
+      }
+      @Override
+      public Adapter caseNoFailureDefinition(NoFailureDefinition object)
+      {
+        return createNoFailureDefinitionAdapter();
+      }
+      @Override
+      public Adapter caseComplexNofailureDefinition(ComplexNofailureDefinition object)
+      {
+        return createComplexNofailureDefinitionAdapter();
+      }
+      @Override
+      public Adapter caseWildcardDefinition(WildcardDefinition object)
+      {
+        return createWildcardDefinitionAdapter();
+      }
+      @Override
+      public Adapter caseVariableDefinition(VariableDefinition object)
+      {
+        return createVariableDefinitionAdapter();
+      }
+      @Override
+      public Adapter caseACIDavoidable(ACIDavoidable object)
+      {
+        return createACIDavoidableAdapter();
+      }
+      @Override
+      public Adapter caseACIDMitigation(ACIDMitigation object)
+      {
+        return createACIDMitigationAdapter();
+      }
+      @Override
+      public Adapter defaultCase(EObject object)
+      {
+        return createEObjectAdapter();
+      }
+    };
+
+  /**
+   * Creates an adapter for the <code>target</code>.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param target the object to adapt.
+   * @return the adapter for the <code>target</code>.
+   * @generated
+   */
+  @Override
+  public Adapter createAdapter(Notifier target)
+  {
+    return modelSwitch.doSwitch((EObject)target);
+  }
+
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Behaviour <em>Behaviour</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.Behaviour
+   * @generated
+   */
+  public Adapter createBehaviourAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Expression <em>Expression</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.Expression
+   * @generated
+   */
+  public Adapter createExpressionAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Lhs <em>Lhs</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.Lhs
+   * @generated
+   */
+  public Adapter createLhsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Rhs <em>Rhs</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.Rhs
+   * @generated
+   */
+  public Adapter createRhsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.InputExpression <em>Input Expression</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.InputExpression
+   * @generated
+   */
+  public Adapter createInputExpressionAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.OutputExpression <em>Output Expression</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.OutputExpression
+   * @generated
+   */
+  public Adapter createOutputExpressionAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.InFailureExpr <em>In Failure Expr</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.InFailureExpr
+   * @generated
+   */
+  public Adapter createInFailureExprAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.OutFailureExpr <em>Out Failure Expr</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.OutFailureExpr
+   * @generated
+   */
+  public Adapter createOutFailureExprAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.Definitions <em>Definitions</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.Definitions
+   * @generated
+   */
+  public Adapter createDefinitionsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.FailureDefinition <em>Failure Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.FailureDefinition
+   * @generated
+   */
+  public Adapter createFailureDefinitionAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.NoFailureDefinition <em>No Failure Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.NoFailureDefinition
+   * @generated
+   */
+  public Adapter createNoFailureDefinitionAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition <em>Complex Nofailure Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.ComplexNofailureDefinition
+   * @generated
+   */
+  public Adapter createComplexNofailureDefinitionAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.WildcardDefinition <em>Wildcard Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.WildcardDefinition
+   * @generated
+   */
+  public Adapter createWildcardDefinitionAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.VariableDefinition <em>Variable Definition</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.VariableDefinition
+   * @generated
+   */
+  public Adapter createVariableDefinitionAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.ACIDavoidable <em>ACI Davoidable</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDavoidable
+   * @generated
+   */
+  public Adapter createACIDavoidableAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.polarsys.chess.xtext.flaDsl.ACIDMitigation <em>ACID Mitigation</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see org.polarsys.chess.xtext.flaDsl.ACIDMitigation
+   * @generated
+   */
+  public Adapter createACIDMitigationAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for the default case.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @generated
+   */
+  public Adapter createEObjectAdapter()
+  {
+    return null;
+  }
+
+} //FlaDslAdapterFactory
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslSwitch.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslSwitch.java
new file mode 100644
index 0000000..c1b0a58
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/flaDsl/util/FlaDslSwitch.java
@@ -0,0 +1,470 @@
+/**
+ */
+package org.polarsys.chess.xtext.flaDsl.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.polarsys.chess.xtext.flaDsl.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.polarsys.chess.xtext.flaDsl.FlaDslPackage
+ * @generated
+ */
+public class FlaDslSwitch<T> extends Switch<T>
+{
+  /**
+   * The cached model package
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected static FlaDslPackage modelPackage;
+
+  /**
+   * Creates an instance of the switch.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FlaDslSwitch()
+  {
+    if (modelPackage == null)
+    {
+      modelPackage = FlaDslPackage.eINSTANCE;
+    }
+  }
+
+  /**
+   * Checks whether this is a switch for the given package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param ePackage the package in question.
+   * @return whether this is a switch for the given package.
+   * @generated
+   */
+  @Override
+  protected boolean isSwitchFor(EPackage ePackage)
+  {
+    return ePackage == modelPackage;
+  }
+
+  /**
+   * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the first non-null result returned by a <code>caseXXX</code> call.
+   * @generated
+   */
+  @Override
+  protected T doSwitch(int classifierID, EObject theEObject)
+  {
+    switch (classifierID)
+    {
+      case FlaDslPackage.BEHAVIOUR:
+      {
+        Behaviour behaviour = (Behaviour)theEObject;
+        T result = caseBehaviour(behaviour);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.EXPRESSION:
+      {
+        Expression expression = (Expression)theEObject;
+        T result = caseExpression(expression);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.LHS:
+      {
+        Lhs lhs = (Lhs)theEObject;
+        T result = caseLhs(lhs);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.RHS:
+      {
+        Rhs rhs = (Rhs)theEObject;
+        T result = caseRhs(rhs);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.INPUT_EXPRESSION:
+      {
+        InputExpression inputExpression = (InputExpression)theEObject;
+        T result = caseInputExpression(inputExpression);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.OUTPUT_EXPRESSION:
+      {
+        OutputExpression outputExpression = (OutputExpression)theEObject;
+        T result = caseOutputExpression(outputExpression);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.IN_FAILURE_EXPR:
+      {
+        InFailureExpr inFailureExpr = (InFailureExpr)theEObject;
+        T result = caseInFailureExpr(inFailureExpr);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.OUT_FAILURE_EXPR:
+      {
+        OutFailureExpr outFailureExpr = (OutFailureExpr)theEObject;
+        T result = caseOutFailureExpr(outFailureExpr);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.DEFINITIONS:
+      {
+        Definitions definitions = (Definitions)theEObject;
+        T result = caseDefinitions(definitions);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.FAILURE_DEFINITION:
+      {
+        FailureDefinition failureDefinition = (FailureDefinition)theEObject;
+        T result = caseFailureDefinition(failureDefinition);
+        if (result == null) result = caseDefinitions(failureDefinition);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.NO_FAILURE_DEFINITION:
+      {
+        NoFailureDefinition noFailureDefinition = (NoFailureDefinition)theEObject;
+        T result = caseNoFailureDefinition(noFailureDefinition);
+        if (result == null) result = caseComplexNofailureDefinition(noFailureDefinition);
+        if (result == null) result = caseDefinitions(noFailureDefinition);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.COMPLEX_NOFAILURE_DEFINITION:
+      {
+        ComplexNofailureDefinition complexNofailureDefinition = (ComplexNofailureDefinition)theEObject;
+        T result = caseComplexNofailureDefinition(complexNofailureDefinition);
+        if (result == null) result = caseDefinitions(complexNofailureDefinition);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.WILDCARD_DEFINITION:
+      {
+        WildcardDefinition wildcardDefinition = (WildcardDefinition)theEObject;
+        T result = caseWildcardDefinition(wildcardDefinition);
+        if (result == null) result = caseDefinitions(wildcardDefinition);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.VARIABLE_DEFINITION:
+      {
+        VariableDefinition variableDefinition = (VariableDefinition)theEObject;
+        T result = caseVariableDefinition(variableDefinition);
+        if (result == null) result = caseDefinitions(variableDefinition);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.ACI_DAVOIDABLE:
+      {
+        ACIDavoidable aciDavoidable = (ACIDavoidable)theEObject;
+        T result = caseACIDavoidable(aciDavoidable);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case FlaDslPackage.ACID_MITIGATION:
+      {
+        ACIDMitigation acidMitigation = (ACIDMitigation)theEObject;
+        T result = caseACIDMitigation(acidMitigation);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      default: return defaultCase(theEObject);
+    }
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Behaviour</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Behaviour</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseBehaviour(Behaviour object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Expression</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Expression</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseExpression(Expression object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Lhs</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Lhs</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseLhs(Lhs object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Rhs</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Rhs</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseRhs(Rhs object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Input Expression</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Input Expression</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseInputExpression(InputExpression object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Output Expression</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Output Expression</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseOutputExpression(OutputExpression object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>In Failure Expr</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>In Failure Expr</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseInFailureExpr(InFailureExpr object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Out Failure Expr</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Out Failure Expr</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseOutFailureExpr(OutFailureExpr object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Definitions</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Definitions</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseDefinitions(Definitions object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Failure Definition</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Failure Definition</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseFailureDefinition(FailureDefinition object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>No Failure Definition</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>No Failure Definition</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseNoFailureDefinition(NoFailureDefinition object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Complex Nofailure Definition</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Complex Nofailure Definition</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseComplexNofailureDefinition(ComplexNofailureDefinition object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Wildcard Definition</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Wildcard Definition</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseWildcardDefinition(WildcardDefinition object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Variable Definition</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Variable Definition</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseVariableDefinition(VariableDefinition object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>ACI Davoidable</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>ACI Davoidable</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseACIDavoidable(ACIDavoidable object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>ACID Mitigation</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>ACID Mitigation</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseACIDMitigation(ACIDMitigation object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch, but this is the last case anyway.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+   * @generated
+   */
+  @Override
+  public T defaultCase(EObject object)
+  {
+    return null;
+  }
+
+} //FlaDslSwitch
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslAntlrTokenFileProvider.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslAntlrTokenFileProvider.java
new file mode 100644
index 0000000..df0e137
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslAntlrTokenFileProvider.java
@@ -0,0 +1,16 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class FlaDslAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+	
+	@Override
+	public InputStream getAntlrTokenFile() {
+		ClassLoader classLoader = getClass().getClassLoader();
+    	return classLoader.getResourceAsStream("org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.tokens");
+	}
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslParser.java
new file mode 100644
index 0000000..0bd9883
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/FlaDslParser.java
@@ -0,0 +1,39 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+public class FlaDslParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+	
+	@Inject
+	private FlaDslGrammarAccess grammarAccess;
+	
+	@Override
+	protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+		tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+	}
+	
+	@Override
+	protected org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslParser createParser(XtextTokenStream stream) {
+		return new org.polarsys.chess.xtext.parser.antlr.internal.InternalFlaDslParser(stream, getGrammarAccess());
+	}
+	
+	@Override 
+	protected String getDefaultRuleName() {
+		return "Behaviour";
+	}
+	
+	public FlaDslGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+	
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.g b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.g
new file mode 100644
index 0000000..b0b1b62
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.g
@@ -0,0 +1,1437 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalFlaDsl;
+
+options {
+	superClass=AbstractInternalAntlrParser;
+	
+}
+
+@lexer::header {
+package org.polarsys.chess.xtext.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.polarsys.chess.xtext.parser.antlr.internal; 
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+}
+
+@parser::members {
+
+ 	private FlaDslGrammarAccess grammarAccess;
+ 	
+    public InternalFlaDslParser(TokenStream input, FlaDslGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+    
+    @Override
+    protected String getFirstRuleName() {
+    	return "Behaviour";	
+   	}
+   	
+   	@Override
+   	protected FlaDslGrammarAccess getGrammarAccess() {
+   		return grammarAccess;
+   	}
+}
+
+@rulecatch { 
+    catch (RecognitionException re) { 
+        recover(input,re); 
+        appendSkippedTokens();
+    } 
+}
+
+
+
+
+// Entry rule entryRuleBehaviour
+entryRuleBehaviour returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getBehaviourRule()); }
+	 iv_ruleBehaviour=ruleBehaviour 
+	 { $current=$iv_ruleBehaviour.current; } 
+	 EOF 
+;
+
+// Rule Behaviour
+ruleBehaviour returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); 
+	    }
+		lv_rules_0_0=ruleExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBehaviourRule());
+	        }
+       		add(
+       			$current, 
+       			"rules",
+        		lv_rules_0_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Expression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)+
+;
+
+
+
+
+
+// Entry rule entryRuleExpression
+entryRuleExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getExpressionRule()); }
+	 iv_ruleExpression=ruleExpression 
+	 { $current=$iv_ruleExpression.current; } 
+	 EOF 
+;
+
+// Rule Expression
+ruleExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='FLA:' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getExpressionAccess().getFLAKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); 
+	    }
+		lv_lhs_1_0=ruleLhs		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"lhs",
+        		lv_lhs_1_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Lhs");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='->' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); 
+	    }
+		lv_rhs_3_0=ruleRhs		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"rhs",
+        		lv_rhs_3_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Rhs");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=';' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getExpressionAccess().getSemicolonKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLhs
+entryRuleLhs returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getLhsRule()); }
+	 iv_ruleLhs=ruleLhs 
+	 { $current=$iv_ruleLhs.current; } 
+	 EOF 
+;
+
+// Rule Lhs
+ruleLhs returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); 
+	    }
+		lv_failures_0_0=ruleInputExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getLhsRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_0_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.InputExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1=',' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getLhsAccess().getCommaKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); 
+	    }
+		lv_failures_2_0=ruleInputExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getLhsRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_2_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.InputExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleRhs
+entryRuleRhs returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getRhsRule()); }
+	 iv_ruleRhs=ruleRhs 
+	 { $current=$iv_ruleRhs.current; } 
+	 EOF 
+;
+
+// Rule Rhs
+ruleRhs returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); 
+	    }
+		lv_failures_0_0=ruleOutputExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getRhsRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_0_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1=',' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getRhsAccess().getCommaKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); 
+	    }
+		lv_failures_2_0=ruleOutputExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getRhsRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_2_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleInputExpression
+entryRuleInputExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getInputExpressionRule()); }
+	 iv_ruleInputExpression=ruleInputExpression 
+	 { $current=$iv_ruleInputExpression.current; } 
+	 EOF 
+;
+
+// Rule InputExpression
+ruleInputExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getInputExpressionRule());
+	        }
+        }
+	otherlv_0=RULE_ID
+	{
+		newLeafNode(otherlv_0, grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); 
+	}
+
+)
+)
+    |	otherlv_1='undefined' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1());
+    }
+)	otherlv_2='.' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getInputExpressionAccess().getFullStopKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); 
+	    }
+		lv_failureExpr_3_0=ruleInFailureExpr		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInputExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"failureExpr",
+        		lv_failureExpr_3_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.InFailureExpr");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleOutputExpression
+entryRuleOutputExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOutputExpressionRule()); }
+	 iv_ruleOutputExpression=ruleOutputExpression 
+	 { $current=$iv_ruleOutputExpression.current; } 
+	 EOF 
+;
+
+// Rule OutputExpression
+ruleOutputExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getOutputExpressionRule());
+	        }
+        }
+	otherlv_0=RULE_ID
+	{
+		newLeafNode(otherlv_0, grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); 
+	}
+
+)
+)
+    |	otherlv_1='undefined' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1());
+    }
+)	otherlv_2='.' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); 
+	    }
+		lv_failureExpr_3_0=ruleOutFailureExpr		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOutputExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"failureExpr",
+        		lv_failureExpr_3_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.OutFailureExpr");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleInFailureExpr
+entryRuleInFailureExpr returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getInFailureExprRule()); }
+	 iv_ruleInFailureExpr=ruleInFailureExpr 
+	 { $current=$iv_ruleInFailureExpr.current; } 
+	 EOF 
+;
+
+// Rule InFailureExpr
+ruleInFailureExpr returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); 
+	    }
+		lv_failures_0_0=ruleWildcardDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_0_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.WildcardDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); 
+	    }
+		lv_failures_1_0=ruleNoFailureDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_1_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
+	    }
+		lv_failures_2_0=ruleFailureDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_2_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(	otherlv_3='{' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
+	    }
+		lv_failures_4_0=ruleFailureDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_4_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5=',' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
+	    }
+		lv_failures_6_0=ruleFailureDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_6_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))+	otherlv_7='}' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+    }
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
+	    }
+		lv_failures_8_0=ruleVariableDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_8_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleOutFailureExpr
+entryRuleOutFailureExpr returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOutFailureExprRule()); }
+	 iv_ruleOutFailureExpr=ruleOutFailureExpr 
+	 { $current=$iv_ruleOutFailureExpr.current; } 
+	 EOF 
+;
+
+// Rule OutFailureExpr
+ruleOutFailureExpr returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); 
+	    }
+		lv_failures_0_0=ruleNoFailureDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_0_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); 
+	    }
+		lv_failures_1_0=ruleComplexNofailureDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_1_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.ComplexNofailureDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
+	    }
+		lv_failures_2_0=ruleFailureDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_2_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(	otherlv_3='{' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
+	    }
+		lv_failures_4_0=ruleFailureDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_4_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5=',' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
+	    }
+		lv_failures_6_0=ruleFailureDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_6_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))+	otherlv_7='}' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+    }
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
+	    }
+		lv_failures_8_0=ruleVariableDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+	        }
+       		add(
+       			$current, 
+       			"failures",
+        		lv_failures_8_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleFailureDefinition
+entryRuleFailureDefinition returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getFailureDefinitionRule()); }
+	 iv_ruleFailureDefinition=ruleFailureDefinition 
+	 { $current=$iv_ruleFailureDefinition.current; } 
+	 EOF 
+;
+
+// Rule FailureDefinition
+ruleFailureDefinition returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0(),
+            $current);
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); 
+	    }
+		lv_type_1_0=ruleActualFailureType		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFailureDefinitionRule());
+	        }
+       		set(
+       			$current, 
+       			"type",
+        		lv_type_1_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.ActualFailureType");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='.' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); 
+	    }
+		lv_acidAvoidable_3_0=ruleACIDavoidable		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFailureDefinitionRule());
+	        }
+       		set(
+       			$current, 
+       			"acidAvoidable",
+        		lv_acidAvoidable_3_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.ACIDavoidable");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleNoFailureDefinition
+entryRuleNoFailureDefinition returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getNoFailureDefinitionRule()); }
+	 iv_ruleNoFailureDefinition=ruleNoFailureDefinition 
+	 { $current=$iv_ruleNoFailureDefinition.current; } 
+	 EOF 
+;
+
+// Rule NoFailureDefinition
+ruleNoFailureDefinition returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0(),
+            $current);
+    }
+)	otherlv_1='noFailure' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleComplexNofailureDefinition
+entryRuleComplexNofailureDefinition returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getComplexNofailureDefinitionRule()); }
+	 iv_ruleComplexNofailureDefinition=ruleComplexNofailureDefinition 
+	 { $current=$iv_ruleComplexNofailureDefinition.current; } 
+	 EOF 
+;
+
+// Rule ComplexNofailureDefinition
+ruleComplexNofailureDefinition returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0(),
+            $current);
+    }
+)	otherlv_1='noFailure' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1());
+    }
+	otherlv_2='.' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); 
+	    }
+		lv_acidMitigation_3_0=ruleACIDMitigation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getComplexNofailureDefinitionRule());
+	        }
+       		set(
+       			$current, 
+       			"acidMitigation",
+        		lv_acidMitigation_3_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.ACIDMitigation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleWildcardDefinition
+entryRuleWildcardDefinition returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getWildcardDefinitionRule()); }
+	 iv_ruleWildcardDefinition=ruleWildcardDefinition 
+	 { $current=$iv_ruleWildcardDefinition.current; } 
+	 EOF 
+;
+
+// Rule WildcardDefinition
+ruleWildcardDefinition returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0(),
+            $current);
+    }
+)	otherlv_1='wildcard' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleVariableDefinition
+entryRuleVariableDefinition returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getVariableDefinitionRule()); }
+	 iv_ruleVariableDefinition=ruleVariableDefinition 
+	 { $current=$iv_ruleVariableDefinition.current; } 
+	 EOF 
+;
+
+// Rule VariableDefinition
+ruleVariableDefinition returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0(),
+            $current);
+    }
+)(
+(
+		lv_variableName_1_0=RULE_ID
+		{
+			newLeafNode(lv_variableName_1_0, grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getVariableDefinitionRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"variableName",
+        		lv_variableName_1_0, 
+        		"org.eclipse.xtext.common.Terminals.ID");
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleACIDavoidable
+entryRuleACIDavoidable returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getACIDavoidableRule()); }
+	 iv_ruleACIDavoidable=ruleACIDavoidable 
+	 { $current=$iv_ruleACIDavoidable.current; } 
+	 EOF 
+;
+
+// Rule ACIDavoidable
+ruleACIDavoidable returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); 
+	    }
+		lv_a_0_0=ruleAavoidable		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+	        }
+       		set(
+       			$current, 
+       			"a",
+        		lv_a_0_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Aavoidable");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_1='.' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); 
+	    }
+		lv_c_2_0=ruleCavoidable		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+	        }
+       		set(
+       			$current, 
+       			"c",
+        		lv_c_2_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Cavoidable");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3='.' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); 
+	    }
+		lv_i_4_0=ruleIavoidable		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+	        }
+       		set(
+       			$current, 
+       			"i",
+        		lv_i_4_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Iavoidable");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='.' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); 
+	    }
+		lv_d_6_0=ruleDavoidable		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+	        }
+       		set(
+       			$current, 
+       			"d",
+        		lv_d_6_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Davoidable");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleACIDMitigation
+entryRuleACIDMitigation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getACIDMitigationRule()); }
+	 iv_ruleACIDMitigation=ruleACIDMitigation 
+	 { $current=$iv_ruleACIDMitigation.current; } 
+	 EOF 
+;
+
+// Rule ACIDMitigation
+ruleACIDMitigation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); 
+	    }
+		lv_a_0_0=ruleAmitigation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+	        }
+       		set(
+       			$current, 
+       			"a",
+        		lv_a_0_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Amitigation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_1='.' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); 
+	    }
+		lv_c_2_0=ruleCmitigation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+	        }
+       		set(
+       			$current, 
+       			"c",
+        		lv_c_2_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Cmitigation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3='.' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); 
+	    }
+		lv_i_4_0=ruleImitigation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+	        }
+       		set(
+       			$current, 
+       			"i",
+        		lv_i_4_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Imitigation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='.' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); 
+	    }
+		lv_d_6_0=ruleDmitigation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+	        }
+       		set(
+       			$current, 
+       			"d",
+        		lv_d_6_0, 
+        		"org.polarsys.chess.xtext.FlaDsl.Dmitigation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+
+
+
+
+// Rule ActualFailureType
+ruleActualFailureType returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='early' 
+	{
+        $current = grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='late' 
+	{
+        $current = grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='commission' 
+	{
+        $current = grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='omission' 
+	{
+        $current = grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); 
+    }
+)
+    |(	enumLiteral_4='valueSubtle' 
+	{
+        $current = grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_4, grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); 
+    }
+)
+    |(	enumLiteral_5='valueCoarse' 
+	{
+        $current = grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_5, grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); 
+    }
+));
+
+
+
+
+
+
+
+// Rule Aavoidable
+ruleAavoidable returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='incompletion' 
+	{
+        $current = grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='none' 
+	{
+        $current = grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='unspecified' 
+	{
+        $current = grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+    }
+));
+
+
+
+// Rule Cavoidable
+ruleCavoidable returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='inconsistency' 
+	{
+        $current = grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='none' 
+	{
+        $current = grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='unspecified' 
+	{
+        $current = grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+    }
+));
+
+
+
+// Rule Iavoidable
+ruleIavoidable returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='interference' 
+	{
+        $current = grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='none' 
+	{
+        $current = grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='unspecified' 
+	{
+        $current = grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+    }
+));
+
+
+
+// Rule Davoidable
+ruleDavoidable returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='impermanence' 
+	{
+        $current = grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='none' 
+	{
+        $current = grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='unspecified' 
+	{
+        $current = grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+    }
+));
+
+
+
+// Rule Amitigation
+ruleAmitigation returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='all_or_nothing' 
+	{
+        $current = grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='all_or_compensation' 
+	{
+        $current = grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='none' 
+	{
+        $current = grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='unspecified' 
+	{
+        $current = grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+    }
+));
+
+
+
+// Rule Cmitigation
+ruleCmitigation returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='full_consistency' 
+	{
+        $current = grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='range_violation_allowed' 
+	{
+        $current = grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='none' 
+	{
+        $current = grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='unspecified' 
+	{
+        $current = grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+    }
+));
+
+
+
+// Rule Imitigation
+ruleImitigation returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='serializable' 
+	{
+        $current = grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='portable_level' 
+	{
+        $current = grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='none' 
+	{
+        $current = grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='unspecified' 
+	{
+        $current = grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+    }
+));
+
+
+
+// Rule Dmitigation
+ruleDmitigation returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='no_loss' 
+	{
+        $current = grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='partial_loss_allowed' 
+	{
+        $current = grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='none' 
+	{
+        $current = grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='unspecified' 
+	{
+        $current = grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+    }
+));
+
+
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.tokens b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.tokens
new file mode 100644
index 0000000..9ed7021
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDsl.tokens
@@ -0,0 +1,67 @@
+','=14
+'->'=12
+'.'=16
+';'=13
+'FLA:'=11
+'all_or_compensation'=34
+'all_or_nothing'=33
+'commission'=23
+'early'=21
+'full_consistency'=35
+'impermanence'=32
+'incompletion'=27
+'inconsistency'=30
+'interference'=31
+'late'=22
+'noFailure'=19
+'no_loss'=39
+'none'=28
+'omission'=24
+'partial_loss_allowed'=40
+'portable_level'=38
+'range_violation_allowed'=36
+'serializable'=37
+'undefined'=15
+'unspecified'=29
+'valueCoarse'=26
+'valueSubtle'=25
+'wildcard'=20
+'{'=17
+'}'=18
+RULE_ANY_OTHER=10
+RULE_ID=4
+RULE_INT=5
+RULE_ML_COMMENT=7
+RULE_SL_COMMENT=8
+RULE_STRING=6
+RULE_WS=9
+T__11=11
+T__12=12
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslLexer.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslLexer.java
new file mode 100644
index 0000000..43a9ccc
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslLexer.java
@@ -0,0 +1,1897 @@
+package org.polarsys.chess.xtext.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFlaDslLexer extends Lexer {
+    public static final int RULE_STRING=6;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__37=37;
+    public static final int T__16=16;
+    public static final int T__38=38;
+    public static final int T__17=17;
+    public static final int T__39=39;
+    public static final int T__18=18;
+    public static final int T__11=11;
+    public static final int T__33=33;
+    public static final int T__12=12;
+    public static final int T__34=34;
+    public static final int T__13=13;
+    public static final int T__35=35;
+    public static final int T__14=14;
+    public static final int T__36=36;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_ID=4;
+    public static final int RULE_WS=9;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int RULE_INT=5;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__40=40;
+    public static final int T__20=20;
+    public static final int T__21=21;
+
+    // delegates
+    // delegators
+
+    public InternalFlaDslLexer() {;} 
+    public InternalFlaDslLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalFlaDslLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "InternalFlaDsl.g"; }
+
+    // $ANTLR start "T__11"
+    public final void mT__11() throws RecognitionException {
+        try {
+            int _type = T__11;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:11:7: ( 'FLA:' )
+            // InternalFlaDsl.g:11:9: 'FLA:'
+            {
+            match("FLA:"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__11"
+
+    // $ANTLR start "T__12"
+    public final void mT__12() throws RecognitionException {
+        try {
+            int _type = T__12;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:12:7: ( '->' )
+            // InternalFlaDsl.g:12:9: '->'
+            {
+            match("->"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__12"
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:13:7: ( ';' )
+            // InternalFlaDsl.g:13:9: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__13"
+
+    // $ANTLR start "T__14"
+    public final void mT__14() throws RecognitionException {
+        try {
+            int _type = T__14;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:14:7: ( ',' )
+            // InternalFlaDsl.g:14:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:15:7: ( 'undefined' )
+            // InternalFlaDsl.g:15:9: 'undefined'
+            {
+            match("undefined"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:16:7: ( '.' )
+            // InternalFlaDsl.g:16:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__16"
+
+    // $ANTLR start "T__17"
+    public final void mT__17() throws RecognitionException {
+        try {
+            int _type = T__17;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:17:7: ( '{' )
+            // InternalFlaDsl.g:17:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__17"
+
+    // $ANTLR start "T__18"
+    public final void mT__18() throws RecognitionException {
+        try {
+            int _type = T__18;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:18:7: ( '}' )
+            // InternalFlaDsl.g:18:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__18"
+
+    // $ANTLR start "T__19"
+    public final void mT__19() throws RecognitionException {
+        try {
+            int _type = T__19;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:19:7: ( 'noFailure' )
+            // InternalFlaDsl.g:19:9: 'noFailure'
+            {
+            match("noFailure"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:20:7: ( 'wildcard' )
+            // InternalFlaDsl.g:20:9: 'wildcard'
+            {
+            match("wildcard"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:21:7: ( 'early' )
+            // InternalFlaDsl.g:21:9: 'early'
+            {
+            match("early"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:22:7: ( 'late' )
+            // InternalFlaDsl.g:22:9: 'late'
+            {
+            match("late"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__22"
+
+    // $ANTLR start "T__23"
+    public final void mT__23() throws RecognitionException {
+        try {
+            int _type = T__23;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:23:7: ( 'commission' )
+            // InternalFlaDsl.g:23:9: 'commission'
+            {
+            match("commission"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:24:7: ( 'omission' )
+            // InternalFlaDsl.g:24:9: 'omission'
+            {
+            match("omission"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__24"
+
+    // $ANTLR start "T__25"
+    public final void mT__25() throws RecognitionException {
+        try {
+            int _type = T__25;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:25:7: ( 'valueSubtle' )
+            // InternalFlaDsl.g:25:9: 'valueSubtle'
+            {
+            match("valueSubtle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__25"
+
+    // $ANTLR start "T__26"
+    public final void mT__26() throws RecognitionException {
+        try {
+            int _type = T__26;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:26:7: ( 'valueCoarse' )
+            // InternalFlaDsl.g:26:9: 'valueCoarse'
+            {
+            match("valueCoarse"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__26"
+
+    // $ANTLR start "T__27"
+    public final void mT__27() throws RecognitionException {
+        try {
+            int _type = T__27;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:27:7: ( 'incompletion' )
+            // InternalFlaDsl.g:27:9: 'incompletion'
+            {
+            match("incompletion"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__27"
+
+    // $ANTLR start "T__28"
+    public final void mT__28() throws RecognitionException {
+        try {
+            int _type = T__28;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:28:7: ( 'none' )
+            // InternalFlaDsl.g:28:9: 'none'
+            {
+            match("none"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__28"
+
+    // $ANTLR start "T__29"
+    public final void mT__29() throws RecognitionException {
+        try {
+            int _type = T__29;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:29:7: ( 'unspecified' )
+            // InternalFlaDsl.g:29:9: 'unspecified'
+            {
+            match("unspecified"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__29"
+
+    // $ANTLR start "T__30"
+    public final void mT__30() throws RecognitionException {
+        try {
+            int _type = T__30;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:30:7: ( 'inconsistency' )
+            // InternalFlaDsl.g:30:9: 'inconsistency'
+            {
+            match("inconsistency"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__30"
+
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:31:7: ( 'interference' )
+            // InternalFlaDsl.g:31:9: 'interference'
+            {
+            match("interference"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
+    // $ANTLR start "T__32"
+    public final void mT__32() throws RecognitionException {
+        try {
+            int _type = T__32;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:32:7: ( 'impermanence' )
+            // InternalFlaDsl.g:32:9: 'impermanence'
+            {
+            match("impermanence"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__32"
+
+    // $ANTLR start "T__33"
+    public final void mT__33() throws RecognitionException {
+        try {
+            int _type = T__33;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:33:7: ( 'all_or_nothing' )
+            // InternalFlaDsl.g:33:9: 'all_or_nothing'
+            {
+            match("all_or_nothing"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:34:7: ( 'all_or_compensation' )
+            // InternalFlaDsl.g:34:9: 'all_or_compensation'
+            {
+            match("all_or_compensation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__34"
+
+    // $ANTLR start "T__35"
+    public final void mT__35() throws RecognitionException {
+        try {
+            int _type = T__35;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:35:7: ( 'full_consistency' )
+            // InternalFlaDsl.g:35:9: 'full_consistency'
+            {
+            match("full_consistency"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__35"
+
+    // $ANTLR start "T__36"
+    public final void mT__36() throws RecognitionException {
+        try {
+            int _type = T__36;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:36:7: ( 'range_violation_allowed' )
+            // InternalFlaDsl.g:36:9: 'range_violation_allowed'
+            {
+            match("range_violation_allowed"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__36"
+
+    // $ANTLR start "T__37"
+    public final void mT__37() throws RecognitionException {
+        try {
+            int _type = T__37;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:37:7: ( 'serializable' )
+            // InternalFlaDsl.g:37:9: 'serializable'
+            {
+            match("serializable"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__37"
+
+    // $ANTLR start "T__38"
+    public final void mT__38() throws RecognitionException {
+        try {
+            int _type = T__38;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:38:7: ( 'portable_level' )
+            // InternalFlaDsl.g:38:9: 'portable_level'
+            {
+            match("portable_level"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__38"
+
+    // $ANTLR start "T__39"
+    public final void mT__39() throws RecognitionException {
+        try {
+            int _type = T__39;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:39:7: ( 'no_loss' )
+            // InternalFlaDsl.g:39:9: 'no_loss'
+            {
+            match("no_loss"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__39"
+
+    // $ANTLR start "T__40"
+    public final void mT__40() throws RecognitionException {
+        try {
+            int _type = T__40;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:40:7: ( 'partial_loss_allowed' )
+            // InternalFlaDsl.g:40:9: 'partial_loss_allowed'
+            {
+            match("partial_loss_allowed"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__40"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:1423:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalFlaDsl.g:1423:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            {
+            // InternalFlaDsl.g:1423:11: ( '^' )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='^') ) {
+                alt1=1;
+            }
+            switch (alt1) {
+                case 1 :
+                    // InternalFlaDsl.g:1423:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // InternalFlaDsl.g:1423:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // InternalFlaDsl.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ID"
+
+    // $ANTLR start "RULE_INT"
+    public final void mRULE_INT() throws RecognitionException {
+        try {
+            int _type = RULE_INT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:1425:10: ( ( '0' .. '9' )+ )
+            // InternalFlaDsl.g:1425:12: ( '0' .. '9' )+
+            {
+            // InternalFlaDsl.g:1425:12: ( '0' .. '9' )+
+            int cnt3=0;
+            loop3:
+            do {
+                int alt3=2;
+                int LA3_0 = input.LA(1);
+
+                if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+                    alt3=1;
+                }
+
+
+                switch (alt3) {
+            	case 1 :
+            	    // InternalFlaDsl.g:1425:13: '0' .. '9'
+            	    {
+            	    matchRange('0','9'); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt3 >= 1 ) break loop3;
+                        EarlyExitException eee =
+                            new EarlyExitException(3, input);
+                        throw eee;
+                }
+                cnt3++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_INT"
+
+    // $ANTLR start "RULE_STRING"
+    public final void mRULE_STRING() throws RecognitionException {
+        try {
+            int _type = RULE_STRING;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:1427:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // InternalFlaDsl.g:1427:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            {
+            // InternalFlaDsl.g:1427:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+
+            if ( (LA6_0=='\"') ) {
+                alt6=1;
+            }
+            else if ( (LA6_0=='\'') ) {
+                alt6=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 6, 0, input);
+
+                throw nvae;
+            }
+            switch (alt6) {
+                case 1 :
+                    // InternalFlaDsl.g:1427:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // InternalFlaDsl.g:1427:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    loop4:
+                    do {
+                        int alt4=3;
+                        int LA4_0 = input.LA(1);
+
+                        if ( (LA4_0=='\\') ) {
+                            alt4=1;
+                        }
+                        else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+                            alt4=2;
+                        }
+
+
+                        switch (alt4) {
+                    	case 1 :
+                    	    // InternalFlaDsl.g:1427:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalFlaDsl.g:1427:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop4;
+                        }
+                    } while (true);
+
+                    match('\"'); 
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1427:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // InternalFlaDsl.g:1427:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    loop5:
+                    do {
+                        int alt5=3;
+                        int LA5_0 = input.LA(1);
+
+                        if ( (LA5_0=='\\') ) {
+                            alt5=1;
+                        }
+                        else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+                            alt5=2;
+                        }
+
+
+                        switch (alt5) {
+                    	case 1 :
+                    	    // InternalFlaDsl.g:1427:54: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalFlaDsl.g:1427:61: ~ ( ( '\\\\' | '\\'' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop5;
+                        }
+                    } while (true);
+
+                    match('\''); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_STRING"
+
+    // $ANTLR start "RULE_ML_COMMENT"
+    public final void mRULE_ML_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_ML_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:1429:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalFlaDsl.g:1429:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // InternalFlaDsl.g:1429:24: ( options {greedy=false; } : . )*
+            loop7:
+            do {
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+
+                if ( (LA7_0=='*') ) {
+                    int LA7_1 = input.LA(2);
+
+                    if ( (LA7_1=='/') ) {
+                        alt7=2;
+                    }
+                    else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+                        alt7=1;
+                    }
+
+
+                }
+                else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+                    alt7=1;
+                }
+
+
+                switch (alt7) {
+            	case 1 :
+            	    // InternalFlaDsl.g:1429:52: .
+            	    {
+            	    matchAny(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop7;
+                }
+            } while (true);
+
+            match("*/"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ML_COMMENT"
+
+    // $ANTLR start "RULE_SL_COMMENT"
+    public final void mRULE_SL_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_SL_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:1431:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalFlaDsl.g:1431:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // InternalFlaDsl.g:1431:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            loop8:
+            do {
+                int alt8=2;
+                int LA8_0 = input.LA(1);
+
+                if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+                    alt8=1;
+                }
+
+
+                switch (alt8) {
+            	case 1 :
+            	    // InternalFlaDsl.g:1431:24: ~ ( ( '\\n' | '\\r' ) )
+            	    {
+            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop8;
+                }
+            } while (true);
+
+            // InternalFlaDsl.g:1431:40: ( ( '\\r' )? '\\n' )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+                alt10=1;
+            }
+            switch (alt10) {
+                case 1 :
+                    // InternalFlaDsl.g:1431:41: ( '\\r' )? '\\n'
+                    {
+                    // InternalFlaDsl.g:1431:41: ( '\\r' )?
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
+
+                    if ( (LA9_0=='\r') ) {
+                        alt9=1;
+                    }
+                    switch (alt9) {
+                        case 1 :
+                            // InternalFlaDsl.g:1431:41: '\\r'
+                            {
+                            match('\r'); 
+
+                            }
+                            break;
+
+                    }
+
+                    match('\n'); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_SL_COMMENT"
+
+    // $ANTLR start "RULE_WS"
+    public final void mRULE_WS() throws RecognitionException {
+        try {
+            int _type = RULE_WS;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:1433:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalFlaDsl.g:1433:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // InternalFlaDsl.g:1433:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            int cnt11=0;
+            loop11:
+            do {
+                int alt11=2;
+                int LA11_0 = input.LA(1);
+
+                if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+                    alt11=1;
+                }
+
+
+                switch (alt11) {
+            	case 1 :
+            	    // InternalFlaDsl.g:
+            	    {
+            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt11 >= 1 ) break loop11;
+                        EarlyExitException eee =
+                            new EarlyExitException(11, input);
+                        throw eee;
+                }
+                cnt11++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_WS"
+
+    // $ANTLR start "RULE_ANY_OTHER"
+    public final void mRULE_ANY_OTHER() throws RecognitionException {
+        try {
+            int _type = RULE_ANY_OTHER;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalFlaDsl.g:1435:16: ( . )
+            // InternalFlaDsl.g:1435:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // InternalFlaDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=37;
+        alt12 = dfa12.predict(input);
+        switch (alt12) {
+            case 1 :
+                // InternalFlaDsl.g:1:10: T__11
+                {
+                mT__11(); 
+
+                }
+                break;
+            case 2 :
+                // InternalFlaDsl.g:1:16: T__12
+                {
+                mT__12(); 
+
+                }
+                break;
+            case 3 :
+                // InternalFlaDsl.g:1:22: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 4 :
+                // InternalFlaDsl.g:1:28: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 5 :
+                // InternalFlaDsl.g:1:34: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 6 :
+                // InternalFlaDsl.g:1:40: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 7 :
+                // InternalFlaDsl.g:1:46: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 8 :
+                // InternalFlaDsl.g:1:52: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 9 :
+                // InternalFlaDsl.g:1:58: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 10 :
+                // InternalFlaDsl.g:1:64: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 11 :
+                // InternalFlaDsl.g:1:70: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 12 :
+                // InternalFlaDsl.g:1:76: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 13 :
+                // InternalFlaDsl.g:1:82: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 14 :
+                // InternalFlaDsl.g:1:88: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 15 :
+                // InternalFlaDsl.g:1:94: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 16 :
+                // InternalFlaDsl.g:1:100: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 17 :
+                // InternalFlaDsl.g:1:106: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 18 :
+                // InternalFlaDsl.g:1:112: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 19 :
+                // InternalFlaDsl.g:1:118: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 20 :
+                // InternalFlaDsl.g:1:124: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 21 :
+                // InternalFlaDsl.g:1:130: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 22 :
+                // InternalFlaDsl.g:1:136: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 23 :
+                // InternalFlaDsl.g:1:142: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 24 :
+                // InternalFlaDsl.g:1:148: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 25 :
+                // InternalFlaDsl.g:1:154: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 26 :
+                // InternalFlaDsl.g:1:160: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 27 :
+                // InternalFlaDsl.g:1:166: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 28 :
+                // InternalFlaDsl.g:1:172: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 29 :
+                // InternalFlaDsl.g:1:178: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 30 :
+                // InternalFlaDsl.g:1:184: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 31 :
+                // InternalFlaDsl.g:1:190: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 32 :
+                // InternalFlaDsl.g:1:198: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 33 :
+                // InternalFlaDsl.g:1:207: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 34 :
+                // InternalFlaDsl.g:1:219: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 35 :
+                // InternalFlaDsl.g:1:235: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 36 :
+                // InternalFlaDsl.g:1:251: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 37 :
+                // InternalFlaDsl.g:1:259: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String DFA12_eotS =
+        "\1\uffff\1\37\1\35\2\uffff\1\37\3\uffff\15\37\1\35\2\uffff\3\35\2\uffff\1\37\4\uffff\1\37\3\uffff\17\37\5\uffff\25\37\1\uffff\3\37\1\150\3\37\1\154\17\37\1\uffff\2\37\1\177\1\uffff\22\37\1\uffff\21\37\1\u00a4\22\37\1\uffff\1\u00b8\1\37\1\u00ba\15\37\1\u00c8\1\37\1\u00ca\1\uffff\1\37\1\uffff\15\37\1\uffff\1\37\1\uffff\1\u00da\15\37\1\u00e8\1\uffff\1\u00e9\1\u00ea\13\37\3\uffff\1\u00f6\1\37\1\u00f8\1\u00f9\4\37\1\u00fe\2\37\1\uffff\1\u0101\2\uffff\4\37\1\uffff\2\37\1\uffff\1\u0108\3\37\1\u010c\1\37\1\uffff\3\37\1\uffff\2\37\1\u0113\3\37\1\uffff\5\37\1\u011c\2\37\1\uffff\1\37\1\u0120\1\37\1\uffff\1\37\1\u0123\1\uffff";
+    static final String DFA12_eofS =
+        "\u0124\uffff";
+    static final String DFA12_minS =
+        "\1\0\1\114\1\76\2\uffff\1\156\3\uffff\1\157\1\151\2\141\1\157\1\155\1\141\1\155\1\154\1\165\1\141\1\145\1\141\1\101\2\uffff\2\0\1\52\2\uffff\1\101\4\uffff\1\144\3\uffff\1\106\1\154\1\162\1\164\1\155\1\151\1\154\1\143\1\160\2\154\1\156\3\162\5\uffff\1\72\1\145\1\160\1\141\1\145\1\154\1\144\1\154\1\145\1\155\1\163\1\165\1\157\2\145\1\137\1\154\1\147\1\151\2\164\1\uffff\1\146\1\145\1\151\1\60\1\157\1\143\1\171\1\60\1\151\1\163\1\145\1\155\2\162\1\157\1\137\1\145\2\141\2\151\1\143\1\154\1\uffff\1\163\1\141\1\60\1\uffff\1\163\1\151\1\103\1\160\1\163\1\146\1\155\1\162\1\143\1\137\1\154\1\142\1\141\1\156\1\151\1\165\1\163\1\162\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\137\1\157\1\166\1\151\2\154\1\145\1\146\1\162\1\60\1\144\1\151\1\156\1\142\1\141\1\145\1\163\1\162\1\156\1\143\1\156\1\151\1\172\1\145\1\137\1\144\1\151\1\145\1\uffff\1\60\1\157\1\60\1\164\1\162\2\164\2\145\2\157\1\163\1\157\1\141\1\137\1\154\1\60\1\145\1\60\1\uffff\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\164\1\155\1\151\1\154\1\142\1\154\1\157\1\uffff\1\144\1\uffff\1\60\2\145\1\157\1\156\2\143\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\60\1\uffff\2\60\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\60\1\171\2\60\2\156\1\145\1\151\1\60\1\145\1\137\1\uffff\1\60\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\60\1\141\1\143\1\156\1\60\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\60\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\60\1\157\1\144\1\uffff\1\167\1\60\1\145\1\uffff\1\144\1\60\1\uffff";
+    static final String DFA12_maxS =
+        "\1\uffff\1\114\1\76\2\uffff\1\156\3\uffff\1\157\1\151\2\141\1\157\1\155\1\141\1\156\1\154\1\165\1\141\1\145\1\157\1\172\2\uffff\2\uffff\1\57\2\uffff\1\101\4\uffff\1\163\3\uffff\1\156\1\154\1\162\1\164\1\155\1\151\1\154\1\164\1\160\2\154\1\156\3\162\5\uffff\1\72\1\145\1\160\1\141\1\145\1\154\1\144\1\154\1\145\1\155\1\163\1\165\1\157\2\145\1\137\1\154\1\147\1\151\2\164\1\uffff\1\146\1\145\1\151\1\172\1\157\1\143\1\171\1\172\1\151\1\163\1\145\1\156\2\162\1\157\1\137\1\145\2\141\2\151\1\143\1\154\1\uffff\1\163\1\141\1\172\1\uffff\1\163\1\151\1\123\1\160\1\163\1\146\1\155\1\162\1\143\1\137\1\154\1\142\1\141\1\156\1\151\1\165\1\163\1\162\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\137\1\157\1\166\1\151\2\154\1\145\1\146\1\162\1\172\1\144\1\151\1\156\1\142\1\141\1\145\1\163\1\162\3\156\1\151\1\172\1\145\1\137\1\144\1\151\1\145\1\uffff\1\172\1\157\1\172\1\164\1\162\2\164\2\145\2\157\1\163\1\157\1\141\1\137\1\154\1\172\1\145\1\172\1\uffff\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\164\1\155\1\151\1\154\1\142\1\154\1\157\1\uffff\1\144\1\uffff\1\172\2\145\1\157\1\156\2\143\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\172\1\uffff\2\172\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\172\1\171\2\172\2\156\1\145\1\151\1\172\1\145\1\137\1\uffff\1\172\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\172\1\141\1\143\1\156\1\172\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\172\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\172\1\157\1\144\1\uffff\1\167\1\172\1\145\1\uffff\1\144\1\172\1\uffff";
+    static final String DFA12_acceptS =
+        "\3\uffff\1\3\1\4\1\uffff\1\6\1\7\1\10\16\uffff\1\37\1\40\3\uffff\1\44\1\45\1\uffff\1\37\1\2\1\3\1\4\1\uffff\1\6\1\7\1\10\17\uffff\1\40\1\41\1\42\1\43\1\44\25\uffff\1\1\27\uffff\1\22\3\uffff\1\14\22\uffff\1\13\44\uffff\1\35\23\uffff\1\12\1\uffff\1\16\15\uffff\1\5\1\uffff\1\11\17\uffff\1\15\15\uffff\1\23\1\17\1\20\13\uffff\1\21\1\uffff\1\25\1\26\4\uffff\1\33\2\uffff\1\24\6\uffff\1\27\3\uffff\1\34\6\uffff\1\31\10\uffff\1\30\3\uffff\1\36\2\uffff\1\32";
+    static final String DFA12_specialS =
+        "\1\1\30\uffff\1\0\1\2\u0109\uffff}>";
+    static final String[] DFA12_transitionS = {
+            "\11\35\2\34\2\35\1\34\22\35\1\34\1\35\1\31\4\35\1\32\4\35\1\4\1\2\1\6\1\33\12\30\1\35\1\3\5\35\5\27\1\1\24\27\3\35\1\26\1\27\1\35\1\21\1\27\1\15\1\27\1\13\1\22\2\27\1\20\2\27\1\14\1\27\1\11\1\16\1\25\1\27\1\23\1\24\1\27\1\5\1\17\1\12\3\27\1\7\1\35\1\10\uff82\35",
+            "\1\36",
+            "\1\40",
+            "",
+            "",
+            "\1\43",
+            "",
+            "",
+            "",
+            "\1\47",
+            "\1\50",
+            "\1\51",
+            "\1\52",
+            "\1\53",
+            "\1\54",
+            "\1\55",
+            "\1\57\1\56",
+            "\1\60",
+            "\1\61",
+            "\1\62",
+            "\1\63",
+            "\1\65\15\uffff\1\64",
+            "\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "",
+            "\0\67",
+            "\0\67",
+            "\1\70\4\uffff\1\71",
+            "",
+            "",
+            "\1\73",
+            "",
+            "",
+            "",
+            "",
+            "\1\74\16\uffff\1\75",
+            "",
+            "",
+            "",
+            "\1\76\30\uffff\1\100\16\uffff\1\77",
+            "\1\101",
+            "\1\102",
+            "\1\103",
+            "\1\104",
+            "\1\105",
+            "\1\106",
+            "\1\107\20\uffff\1\110",
+            "\1\111",
+            "\1\112",
+            "\1\113",
+            "\1\114",
+            "\1\115",
+            "\1\116",
+            "\1\117",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\120",
+            "\1\121",
+            "\1\122",
+            "\1\123",
+            "\1\124",
+            "\1\125",
+            "\1\126",
+            "\1\127",
+            "\1\130",
+            "\1\131",
+            "\1\132",
+            "\1\133",
+            "\1\134",
+            "\1\135",
+            "\1\136",
+            "\1\137",
+            "\1\140",
+            "\1\141",
+            "\1\142",
+            "\1\143",
+            "\1\144",
+            "",
+            "\1\145",
+            "\1\146",
+            "\1\147",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\151",
+            "\1\152",
+            "\1\153",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\155",
+            "\1\156",
+            "\1\157",
+            "\1\160\1\161",
+            "\1\162",
+            "\1\163",
+            "\1\164",
+            "\1\165",
+            "\1\166",
+            "\1\167",
+            "\1\170",
+            "\1\171",
+            "\1\172",
+            "\1\173",
+            "\1\174",
+            "",
+            "\1\175",
+            "\1\176",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\1\u0080",
+            "\1\u0081",
+            "\1\u0083\17\uffff\1\u0082",
+            "\1\u0084",
+            "\1\u0085",
+            "\1\u0086",
+            "\1\u0087",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a",
+            "\1\u008b",
+            "\1\u008c",
+            "\1\u008d",
+            "\1\u008e",
+            "\1\u008f",
+            "\1\u0090",
+            "\1\u0091",
+            "\1\u0092",
+            "",
+            "\1\u0093",
+            "\1\u0094",
+            "\1\u0095",
+            "\1\u0096",
+            "\1\u0097",
+            "\1\u0098",
+            "\1\u0099",
+            "\1\u009a",
+            "\1\u009b",
+            "\1\u009c",
+            "\1\u009d",
+            "\1\u009e",
+            "\1\u009f",
+            "\1\u00a0",
+            "\1\u00a1",
+            "\1\u00a2",
+            "\1\u00a3",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00a5",
+            "\1\u00a6",
+            "\1\u00a7",
+            "\1\u00a8",
+            "\1\u00a9",
+            "\1\u00aa",
+            "\1\u00ab",
+            "\1\u00ac",
+            "\1\u00ad",
+            "\1\u00af\12\uffff\1\u00ae",
+            "\1\u00b0",
+            "\1\u00b1",
+            "\1\u00b2",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00b9",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\1\u00c3",
+            "\1\u00c4",
+            "\1\u00c5",
+            "\1\u00c6",
+            "\1\u00c7",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00c9",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\1\u00cb",
+            "",
+            "\1\u00cc",
+            "\1\u00cd",
+            "\1\u00ce",
+            "\1\u00cf",
+            "\1\u00d0",
+            "\1\u00d1",
+            "\1\u00d2",
+            "\1\u00d3",
+            "\1\u00d4",
+            "\1\u00d5",
+            "\1\u00d6",
+            "\1\u00d7",
+            "\1\u00d8",
+            "",
+            "\1\u00d9",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00db",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\1\u00e4",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00eb",
+            "\1\u00ec",
+            "\1\u00ed",
+            "\1\u00ee",
+            "\1\u00ef",
+            "\1\u00f0",
+            "\1\u00f1",
+            "\1\u00f2",
+            "\1\u00f3",
+            "\1\u00f4",
+            "\1\u00f5",
+            "",
+            "",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00f7",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00fa",
+            "\1\u00fb",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u00ff",
+            "\1\u0100",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "",
+            "\1\u0106",
+            "\1\u0107",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u010d",
+            "",
+            "\1\u010e",
+            "\1\u010f",
+            "\1\u0110",
+            "",
+            "\1\u0111",
+            "\1\u0112",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011a",
+            "\1\u011b",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u011d",
+            "\1\u011e",
+            "",
+            "\1\u011f",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u0121",
+            "",
+            "\1\u0122",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            ""
+    };
+
+    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+    static final short[][] DFA12_transition;
+
+    static {
+        int numStates = DFA12_transitionS.length;
+        DFA12_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+        }
+    }
+
+    class DFA12 extends DFA {
+
+        public DFA12(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 12;
+            this.eot = DFA12_eot;
+            this.eof = DFA12_eof;
+            this.min = DFA12_min;
+            this.max = DFA12_max;
+            this.accept = DFA12_accept;
+            this.special = DFA12_special;
+            this.transition = DFA12_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            IntStream input = _input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA12_25 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 55;}
+
+                        else s = 29;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA12_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA12_0=='F') ) {s = 1;}
+
+                        else if ( (LA12_0=='-') ) {s = 2;}
+
+                        else if ( (LA12_0==';') ) {s = 3;}
+
+                        else if ( (LA12_0==',') ) {s = 4;}
+
+                        else if ( (LA12_0=='u') ) {s = 5;}
+
+                        else if ( (LA12_0=='.') ) {s = 6;}
+
+                        else if ( (LA12_0=='{') ) {s = 7;}
+
+                        else if ( (LA12_0=='}') ) {s = 8;}
+
+                        else if ( (LA12_0=='n') ) {s = 9;}
+
+                        else if ( (LA12_0=='w') ) {s = 10;}
+
+                        else if ( (LA12_0=='e') ) {s = 11;}
+
+                        else if ( (LA12_0=='l') ) {s = 12;}
+
+                        else if ( (LA12_0=='c') ) {s = 13;}
+
+                        else if ( (LA12_0=='o') ) {s = 14;}
+
+                        else if ( (LA12_0=='v') ) {s = 15;}
+
+                        else if ( (LA12_0=='i') ) {s = 16;}
+
+                        else if ( (LA12_0=='a') ) {s = 17;}
+
+                        else if ( (LA12_0=='f') ) {s = 18;}
+
+                        else if ( (LA12_0=='r') ) {s = 19;}
+
+                        else if ( (LA12_0=='s') ) {s = 20;}
+
+                        else if ( (LA12_0=='p') ) {s = 21;}
+
+                        else if ( (LA12_0=='^') ) {s = 22;}
+
+                        else if ( ((LA12_0>='A' && LA12_0<='E')||(LA12_0>='G' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||LA12_0=='m'||LA12_0=='q'||LA12_0=='t'||(LA12_0>='x' && LA12_0<='z')) ) {s = 23;}
+
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 24;}
+
+                        else if ( (LA12_0=='\"') ) {s = 25;}
+
+                        else if ( (LA12_0=='\'') ) {s = 26;}
+
+                        else if ( (LA12_0=='/') ) {s = 27;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 28;}
+
+                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='+')||LA12_0==':'||(LA12_0>='<' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 29;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_26 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_26>='\u0000' && LA12_26<='\uFFFF')) ) {s = 55;}
+
+                        else s = 29;
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 12, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslParser.java
new file mode 100644
index 0000000..55652f5
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/parser/antlr/internal/InternalFlaDslParser.java
@@ -0,0 +1,4027 @@
+package org.polarsys.chess.xtext.parser.antlr.internal; 
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFlaDslParser extends AbstractInternalAntlrParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'FLA:'", "'->'", "';'", "','", "'undefined'", "'.'", "'{'", "'}'", "'noFailure'", "'wildcard'", "'early'", "'late'", "'commission'", "'omission'", "'valueSubtle'", "'valueCoarse'", "'incompletion'", "'none'", "'unspecified'", "'inconsistency'", "'interference'", "'impermanence'", "'all_or_nothing'", "'all_or_compensation'", "'full_consistency'", "'range_violation_allowed'", "'serializable'", "'portable_level'", "'no_loss'", "'partial_loss_allowed'"
+    };
+    public static final int RULE_STRING=6;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__37=37;
+    public static final int T__16=16;
+    public static final int T__38=38;
+    public static final int T__17=17;
+    public static final int T__39=39;
+    public static final int T__18=18;
+    public static final int T__11=11;
+    public static final int T__33=33;
+    public static final int T__12=12;
+    public static final int T__34=34;
+    public static final int T__13=13;
+    public static final int T__35=35;
+    public static final int T__14=14;
+    public static final int T__36=36;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_ID=4;
+    public static final int RULE_WS=9;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int RULE_INT=5;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__40=40;
+    public static final int T__20=20;
+    public static final int T__21=21;
+
+    // delegates
+    // delegators
+
+
+        public InternalFlaDslParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalFlaDslParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalFlaDslParser.tokenNames; }
+    public String getGrammarFileName() { return "InternalFlaDsl.g"; }
+
+
+
+     	private FlaDslGrammarAccess grammarAccess;
+     	
+        public InternalFlaDslParser(TokenStream input, FlaDslGrammarAccess grammarAccess) {
+            this(input);
+            this.grammarAccess = grammarAccess;
+            registerRules(grammarAccess.getGrammar());
+        }
+        
+        @Override
+        protected String getFirstRuleName() {
+        	return "Behaviour";	
+       	}
+       	
+       	@Override
+       	protected FlaDslGrammarAccess getGrammarAccess() {
+       		return grammarAccess;
+       	}
+
+
+
+    // $ANTLR start "entryRuleBehaviour"
+    // InternalFlaDsl.g:68:1: entryRuleBehaviour returns [EObject current=null] : iv_ruleBehaviour= ruleBehaviour EOF ;
+    public final EObject entryRuleBehaviour() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBehaviour = null;
+
+
+        try {
+            // InternalFlaDsl.g:69:2: (iv_ruleBehaviour= ruleBehaviour EOF )
+            // InternalFlaDsl.g:70:2: iv_ruleBehaviour= ruleBehaviour EOF
+            {
+             newCompositeNode(grammarAccess.getBehaviourRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleBehaviour=ruleBehaviour();
+
+            state._fsp--;
+
+             current =iv_ruleBehaviour; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBehaviour"
+
+
+    // $ANTLR start "ruleBehaviour"
+    // InternalFlaDsl.g:77:1: ruleBehaviour returns [EObject current=null] : ( (lv_rules_0_0= ruleExpression ) )+ ;
+    public final EObject ruleBehaviour() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_rules_0_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:80:28: ( ( (lv_rules_0_0= ruleExpression ) )+ )
+            // InternalFlaDsl.g:81:1: ( (lv_rules_0_0= ruleExpression ) )+
+            {
+            // InternalFlaDsl.g:81:1: ( (lv_rules_0_0= ruleExpression ) )+
+            int cnt1=0;
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==11) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // InternalFlaDsl.g:82:1: (lv_rules_0_0= ruleExpression )
+            	    {
+            	    // InternalFlaDsl.g:82:1: (lv_rules_0_0= ruleExpression )
+            	    // InternalFlaDsl.g:83:3: lv_rules_0_0= ruleExpression
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); 
+            	    	    
+            	    pushFollow(FOLLOW_3);
+            	    lv_rules_0_0=ruleExpression();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getBehaviourRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"rules",
+            	            		lv_rules_0_0, 
+            	            		"org.polarsys.chess.xtext.FlaDsl.Expression");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt1 >= 1 ) break loop1;
+                        EarlyExitException eee =
+                            new EarlyExitException(1, input);
+                        throw eee;
+                }
+                cnt1++;
+            } while (true);
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBehaviour"
+
+
+    // $ANTLR start "entryRuleExpression"
+    // InternalFlaDsl.g:107:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ;
+    public final EObject entryRuleExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleExpression = null;
+
+
+        try {
+            // InternalFlaDsl.g:108:2: (iv_ruleExpression= ruleExpression EOF )
+            // InternalFlaDsl.g:109:2: iv_ruleExpression= ruleExpression EOF
+            {
+             newCompositeNode(grammarAccess.getExpressionRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleExpression=ruleExpression();
+
+            state._fsp--;
+
+             current =iv_ruleExpression; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleExpression"
+
+
+    // $ANTLR start "ruleExpression"
+    // InternalFlaDsl.g:116:1: ruleExpression returns [EObject current=null] : (otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';' ) ;
+    public final EObject ruleExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_lhs_1_0 = null;
+
+        EObject lv_rhs_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:119:28: ( (otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';' ) )
+            // InternalFlaDsl.g:120:1: (otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';' )
+            {
+            // InternalFlaDsl.g:120:1: (otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';' )
+            // InternalFlaDsl.g:120:3: otherlv_0= 'FLA:' ( (lv_lhs_1_0= ruleLhs ) ) otherlv_2= '->' ( (lv_rhs_3_0= ruleRhs ) ) otherlv_4= ';'
+            {
+            otherlv_0=(Token)match(input,11,FOLLOW_4); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getExpressionAccess().getFLAKeyword_0());
+                
+            // InternalFlaDsl.g:124:1: ( (lv_lhs_1_0= ruleLhs ) )
+            // InternalFlaDsl.g:125:1: (lv_lhs_1_0= ruleLhs )
+            {
+            // InternalFlaDsl.g:125:1: (lv_lhs_1_0= ruleLhs )
+            // InternalFlaDsl.g:126:3: lv_lhs_1_0= ruleLhs
+            {
+             
+            	        newCompositeNode(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); 
+            	    
+            pushFollow(FOLLOW_5);
+            lv_lhs_1_0=ruleLhs();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getExpressionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"lhs",
+                    		lv_lhs_1_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Lhs");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,12,FOLLOW_4); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2());
+                
+            // InternalFlaDsl.g:146:1: ( (lv_rhs_3_0= ruleRhs ) )
+            // InternalFlaDsl.g:147:1: (lv_rhs_3_0= ruleRhs )
+            {
+            // InternalFlaDsl.g:147:1: (lv_rhs_3_0= ruleRhs )
+            // InternalFlaDsl.g:148:3: lv_rhs_3_0= ruleRhs
+            {
+             
+            	        newCompositeNode(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); 
+            	    
+            pushFollow(FOLLOW_6);
+            lv_rhs_3_0=ruleRhs();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getExpressionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"rhs",
+                    		lv_rhs_3_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Rhs");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,13,FOLLOW_2); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getExpressionAccess().getSemicolonKeyword_4());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleExpression"
+
+
+    // $ANTLR start "entryRuleLhs"
+    // InternalFlaDsl.g:176:1: entryRuleLhs returns [EObject current=null] : iv_ruleLhs= ruleLhs EOF ;
+    public final EObject entryRuleLhs() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleLhs = null;
+
+
+        try {
+            // InternalFlaDsl.g:177:2: (iv_ruleLhs= ruleLhs EOF )
+            // InternalFlaDsl.g:178:2: iv_ruleLhs= ruleLhs EOF
+            {
+             newCompositeNode(grammarAccess.getLhsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleLhs=ruleLhs();
+
+            state._fsp--;
+
+             current =iv_ruleLhs; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleLhs"
+
+
+    // $ANTLR start "ruleLhs"
+    // InternalFlaDsl.g:185:1: ruleLhs returns [EObject current=null] : ( ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )* ) ;
+    public final EObject ruleLhs() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        EObject lv_failures_0_0 = null;
+
+        EObject lv_failures_2_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:188:28: ( ( ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )* ) )
+            // InternalFlaDsl.g:189:1: ( ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )* )
+            {
+            // InternalFlaDsl.g:189:1: ( ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )* )
+            // InternalFlaDsl.g:189:2: ( (lv_failures_0_0= ruleInputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )*
+            {
+            // InternalFlaDsl.g:189:2: ( (lv_failures_0_0= ruleInputExpression ) )
+            // InternalFlaDsl.g:190:1: (lv_failures_0_0= ruleInputExpression )
+            {
+            // InternalFlaDsl.g:190:1: (lv_failures_0_0= ruleInputExpression )
+            // InternalFlaDsl.g:191:3: lv_failures_0_0= ruleInputExpression
+            {
+             
+            	        newCompositeNode(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); 
+            	    
+            pushFollow(FOLLOW_7);
+            lv_failures_0_0=ruleInputExpression();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getLhsRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"failures",
+                    		lv_failures_0_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.InputExpression");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // InternalFlaDsl.g:207:2: (otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) ) )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0==14) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // InternalFlaDsl.g:207:4: otherlv_1= ',' ( (lv_failures_2_0= ruleInputExpression ) )
+            	    {
+            	    otherlv_1=(Token)match(input,14,FOLLOW_4); 
+
+            	        	newLeafNode(otherlv_1, grammarAccess.getLhsAccess().getCommaKeyword_1_0());
+            	        
+            	    // InternalFlaDsl.g:211:1: ( (lv_failures_2_0= ruleInputExpression ) )
+            	    // InternalFlaDsl.g:212:1: (lv_failures_2_0= ruleInputExpression )
+            	    {
+            	    // InternalFlaDsl.g:212:1: (lv_failures_2_0= ruleInputExpression )
+            	    // InternalFlaDsl.g:213:3: lv_failures_2_0= ruleInputExpression
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); 
+            	    	    
+            	    pushFollow(FOLLOW_7);
+            	    lv_failures_2_0=ruleInputExpression();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getLhsRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"failures",
+            	            		lv_failures_2_0, 
+            	            		"org.polarsys.chess.xtext.FlaDsl.InputExpression");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleLhs"
+
+
+    // $ANTLR start "entryRuleRhs"
+    // InternalFlaDsl.g:237:1: entryRuleRhs returns [EObject current=null] : iv_ruleRhs= ruleRhs EOF ;
+    public final EObject entryRuleRhs() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleRhs = null;
+
+
+        try {
+            // InternalFlaDsl.g:238:2: (iv_ruleRhs= ruleRhs EOF )
+            // InternalFlaDsl.g:239:2: iv_ruleRhs= ruleRhs EOF
+            {
+             newCompositeNode(grammarAccess.getRhsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleRhs=ruleRhs();
+
+            state._fsp--;
+
+             current =iv_ruleRhs; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleRhs"
+
+
+    // $ANTLR start "ruleRhs"
+    // InternalFlaDsl.g:246:1: ruleRhs returns [EObject current=null] : ( ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )* ) ;
+    public final EObject ruleRhs() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        EObject lv_failures_0_0 = null;
+
+        EObject lv_failures_2_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:249:28: ( ( ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )* ) )
+            // InternalFlaDsl.g:250:1: ( ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )* )
+            {
+            // InternalFlaDsl.g:250:1: ( ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )* )
+            // InternalFlaDsl.g:250:2: ( (lv_failures_0_0= ruleOutputExpression ) ) (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )*
+            {
+            // InternalFlaDsl.g:250:2: ( (lv_failures_0_0= ruleOutputExpression ) )
+            // InternalFlaDsl.g:251:1: (lv_failures_0_0= ruleOutputExpression )
+            {
+            // InternalFlaDsl.g:251:1: (lv_failures_0_0= ruleOutputExpression )
+            // InternalFlaDsl.g:252:3: lv_failures_0_0= ruleOutputExpression
+            {
+             
+            	        newCompositeNode(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); 
+            	    
+            pushFollow(FOLLOW_7);
+            lv_failures_0_0=ruleOutputExpression();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getRhsRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"failures",
+                    		lv_failures_0_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // InternalFlaDsl.g:268:2: (otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) ) )*
+            loop3:
+            do {
+                int alt3=2;
+                int LA3_0 = input.LA(1);
+
+                if ( (LA3_0==14) ) {
+                    alt3=1;
+                }
+
+
+                switch (alt3) {
+            	case 1 :
+            	    // InternalFlaDsl.g:268:4: otherlv_1= ',' ( (lv_failures_2_0= ruleOutputExpression ) )
+            	    {
+            	    otherlv_1=(Token)match(input,14,FOLLOW_4); 
+
+            	        	newLeafNode(otherlv_1, grammarAccess.getRhsAccess().getCommaKeyword_1_0());
+            	        
+            	    // InternalFlaDsl.g:272:1: ( (lv_failures_2_0= ruleOutputExpression ) )
+            	    // InternalFlaDsl.g:273:1: (lv_failures_2_0= ruleOutputExpression )
+            	    {
+            	    // InternalFlaDsl.g:273:1: (lv_failures_2_0= ruleOutputExpression )
+            	    // InternalFlaDsl.g:274:3: lv_failures_2_0= ruleOutputExpression
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); 
+            	    	    
+            	    pushFollow(FOLLOW_7);
+            	    lv_failures_2_0=ruleOutputExpression();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getRhsRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"failures",
+            	            		lv_failures_2_0, 
+            	            		"org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop3;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleRhs"
+
+
+    // $ANTLR start "entryRuleInputExpression"
+    // InternalFlaDsl.g:298:1: entryRuleInputExpression returns [EObject current=null] : iv_ruleInputExpression= ruleInputExpression EOF ;
+    public final EObject entryRuleInputExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleInputExpression = null;
+
+
+        try {
+            // InternalFlaDsl.g:299:2: (iv_ruleInputExpression= ruleInputExpression EOF )
+            // InternalFlaDsl.g:300:2: iv_ruleInputExpression= ruleInputExpression EOF
+            {
+             newCompositeNode(grammarAccess.getInputExpressionRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleInputExpression=ruleInputExpression();
+
+            state._fsp--;
+
+             current =iv_ruleInputExpression; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleInputExpression"
+
+
+    // $ANTLR start "ruleInputExpression"
+    // InternalFlaDsl.g:307:1: ruleInputExpression returns [EObject current=null] : ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) ) ) ;
+    public final EObject ruleInputExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        EObject lv_failureExpr_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:310:28: ( ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) ) ) )
+            // InternalFlaDsl.g:311:1: ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) ) )
+            {
+            // InternalFlaDsl.g:311:1: ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) ) )
+            // InternalFlaDsl.g:311:2: ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleInFailureExpr ) )
+            {
+            // InternalFlaDsl.g:311:2: ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==RULE_ID) ) {
+                alt4=1;
+            }
+            else if ( (LA4_0==15) ) {
+                alt4=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 4, 0, input);
+
+                throw nvae;
+            }
+            switch (alt4) {
+                case 1 :
+                    // InternalFlaDsl.g:311:3: ( (otherlv_0= RULE_ID ) )
+                    {
+                    // InternalFlaDsl.g:311:3: ( (otherlv_0= RULE_ID ) )
+                    // InternalFlaDsl.g:312:1: (otherlv_0= RULE_ID )
+                    {
+                    // InternalFlaDsl.g:312:1: (otherlv_0= RULE_ID )
+                    // InternalFlaDsl.g:313:3: otherlv_0= RULE_ID
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getInputExpressionRule());
+                    	        }
+                            
+                    otherlv_0=(Token)match(input,RULE_ID,FOLLOW_8); 
+
+                    		newLeafNode(otherlv_0, grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); 
+                    	
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:325:7: otherlv_1= 'undefined'
+                    {
+                    otherlv_1=(Token)match(input,15,FOLLOW_8); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_2=(Token)match(input,16,FOLLOW_9); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getInputExpressionAccess().getFullStopKeyword_1());
+                
+            // InternalFlaDsl.g:333:1: ( (lv_failureExpr_3_0= ruleInFailureExpr ) )
+            // InternalFlaDsl.g:334:1: (lv_failureExpr_3_0= ruleInFailureExpr )
+            {
+            // InternalFlaDsl.g:334:1: (lv_failureExpr_3_0= ruleInFailureExpr )
+            // InternalFlaDsl.g:335:3: lv_failureExpr_3_0= ruleInFailureExpr
+            {
+             
+            	        newCompositeNode(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); 
+            	    
+            pushFollow(FOLLOW_2);
+            lv_failureExpr_3_0=ruleInFailureExpr();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getInputExpressionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"failureExpr",
+                    		lv_failureExpr_3_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.InFailureExpr");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleInputExpression"
+
+
+    // $ANTLR start "entryRuleOutputExpression"
+    // InternalFlaDsl.g:359:1: entryRuleOutputExpression returns [EObject current=null] : iv_ruleOutputExpression= ruleOutputExpression EOF ;
+    public final EObject entryRuleOutputExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleOutputExpression = null;
+
+
+        try {
+            // InternalFlaDsl.g:360:2: (iv_ruleOutputExpression= ruleOutputExpression EOF )
+            // InternalFlaDsl.g:361:2: iv_ruleOutputExpression= ruleOutputExpression EOF
+            {
+             newCompositeNode(grammarAccess.getOutputExpressionRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleOutputExpression=ruleOutputExpression();
+
+            state._fsp--;
+
+             current =iv_ruleOutputExpression; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOutputExpression"
+
+
+    // $ANTLR start "ruleOutputExpression"
+    // InternalFlaDsl.g:368:1: ruleOutputExpression returns [EObject current=null] : ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) ) ) ;
+    public final EObject ruleOutputExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        EObject lv_failureExpr_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:371:28: ( ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) ) ) )
+            // InternalFlaDsl.g:372:1: ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) ) )
+            {
+            // InternalFlaDsl.g:372:1: ( ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) ) )
+            // InternalFlaDsl.g:372:2: ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' ) otherlv_2= '.' ( (lv_failureExpr_3_0= ruleOutFailureExpr ) )
+            {
+            // InternalFlaDsl.g:372:2: ( ( (otherlv_0= RULE_ID ) ) | otherlv_1= 'undefined' )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==RULE_ID) ) {
+                alt5=1;
+            }
+            else if ( (LA5_0==15) ) {
+                alt5=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+            switch (alt5) {
+                case 1 :
+                    // InternalFlaDsl.g:372:3: ( (otherlv_0= RULE_ID ) )
+                    {
+                    // InternalFlaDsl.g:372:3: ( (otherlv_0= RULE_ID ) )
+                    // InternalFlaDsl.g:373:1: (otherlv_0= RULE_ID )
+                    {
+                    // InternalFlaDsl.g:373:1: (otherlv_0= RULE_ID )
+                    // InternalFlaDsl.g:374:3: otherlv_0= RULE_ID
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getOutputExpressionRule());
+                    	        }
+                            
+                    otherlv_0=(Token)match(input,RULE_ID,FOLLOW_8); 
+
+                    		newLeafNode(otherlv_0, grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); 
+                    	
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:386:7: otherlv_1= 'undefined'
+                    {
+                    otherlv_1=(Token)match(input,15,FOLLOW_8); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_2=(Token)match(input,16,FOLLOW_9); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1());
+                
+            // InternalFlaDsl.g:394:1: ( (lv_failureExpr_3_0= ruleOutFailureExpr ) )
+            // InternalFlaDsl.g:395:1: (lv_failureExpr_3_0= ruleOutFailureExpr )
+            {
+            // InternalFlaDsl.g:395:1: (lv_failureExpr_3_0= ruleOutFailureExpr )
+            // InternalFlaDsl.g:396:3: lv_failureExpr_3_0= ruleOutFailureExpr
+            {
+             
+            	        newCompositeNode(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); 
+            	    
+            pushFollow(FOLLOW_2);
+            lv_failureExpr_3_0=ruleOutFailureExpr();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getOutputExpressionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"failureExpr",
+                    		lv_failureExpr_3_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.OutFailureExpr");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOutputExpression"
+
+
+    // $ANTLR start "entryRuleInFailureExpr"
+    // InternalFlaDsl.g:420:1: entryRuleInFailureExpr returns [EObject current=null] : iv_ruleInFailureExpr= ruleInFailureExpr EOF ;
+    public final EObject entryRuleInFailureExpr() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleInFailureExpr = null;
+
+
+        try {
+            // InternalFlaDsl.g:421:2: (iv_ruleInFailureExpr= ruleInFailureExpr EOF )
+            // InternalFlaDsl.g:422:2: iv_ruleInFailureExpr= ruleInFailureExpr EOF
+            {
+             newCompositeNode(grammarAccess.getInFailureExprRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleInFailureExpr=ruleInFailureExpr();
+
+            state._fsp--;
+
+             current =iv_ruleInFailureExpr; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleInFailureExpr"
+
+
+    // $ANTLR start "ruleInFailureExpr"
+    // InternalFlaDsl.g:429:1: ruleInFailureExpr returns [EObject current=null] : ( ( (lv_failures_0_0= ruleWildcardDefinition ) ) | ( (lv_failures_1_0= ruleNoFailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) ) ;
+    public final EObject ruleInFailureExpr() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        EObject lv_failures_0_0 = null;
+
+        EObject lv_failures_1_0 = null;
+
+        EObject lv_failures_2_0 = null;
+
+        EObject lv_failures_4_0 = null;
+
+        EObject lv_failures_6_0 = null;
+
+        EObject lv_failures_8_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:432:28: ( ( ( (lv_failures_0_0= ruleWildcardDefinition ) ) | ( (lv_failures_1_0= ruleNoFailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) ) )
+            // InternalFlaDsl.g:433:1: ( ( (lv_failures_0_0= ruleWildcardDefinition ) ) | ( (lv_failures_1_0= ruleNoFailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) )
+            {
+            // InternalFlaDsl.g:433:1: ( ( (lv_failures_0_0= ruleWildcardDefinition ) ) | ( (lv_failures_1_0= ruleNoFailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) )
+            int alt7=5;
+            switch ( input.LA(1) ) {
+            case 20:
+                {
+                alt7=1;
+                }
+                break;
+            case 19:
+                {
+                alt7=2;
+                }
+                break;
+            case 21:
+            case 22:
+            case 23:
+            case 24:
+            case 25:
+            case 26:
+                {
+                alt7=3;
+                }
+                break;
+            case 17:
+                {
+                alt7=4;
+                }
+                break;
+            case RULE_ID:
+                {
+                alt7=5;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt7) {
+                case 1 :
+                    // InternalFlaDsl.g:433:2: ( (lv_failures_0_0= ruleWildcardDefinition ) )
+                    {
+                    // InternalFlaDsl.g:433:2: ( (lv_failures_0_0= ruleWildcardDefinition ) )
+                    // InternalFlaDsl.g:434:1: (lv_failures_0_0= ruleWildcardDefinition )
+                    {
+                    // InternalFlaDsl.g:434:1: (lv_failures_0_0= ruleWildcardDefinition )
+                    // InternalFlaDsl.g:435:3: lv_failures_0_0= ruleWildcardDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); 
+                    	    
+                    pushFollow(FOLLOW_2);
+                    lv_failures_0_0=ruleWildcardDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_0_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.WildcardDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:452:6: ( (lv_failures_1_0= ruleNoFailureDefinition ) )
+                    {
+                    // InternalFlaDsl.g:452:6: ( (lv_failures_1_0= ruleNoFailureDefinition ) )
+                    // InternalFlaDsl.g:453:1: (lv_failures_1_0= ruleNoFailureDefinition )
+                    {
+                    // InternalFlaDsl.g:453:1: (lv_failures_1_0= ruleNoFailureDefinition )
+                    // InternalFlaDsl.g:454:3: lv_failures_1_0= ruleNoFailureDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); 
+                    	    
+                    pushFollow(FOLLOW_2);
+                    lv_failures_1_0=ruleNoFailureDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_1_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:471:6: ( (lv_failures_2_0= ruleFailureDefinition ) )
+                    {
+                    // InternalFlaDsl.g:471:6: ( (lv_failures_2_0= ruleFailureDefinition ) )
+                    // InternalFlaDsl.g:472:1: (lv_failures_2_0= ruleFailureDefinition )
+                    {
+                    // InternalFlaDsl.g:472:1: (lv_failures_2_0= ruleFailureDefinition )
+                    // InternalFlaDsl.g:473:3: lv_failures_2_0= ruleFailureDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
+                    	    
+                    pushFollow(FOLLOW_2);
+                    lv_failures_2_0=ruleFailureDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_2_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:490:6: (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' )
+                    {
+                    // InternalFlaDsl.g:490:6: (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' )
+                    // InternalFlaDsl.g:490:8: otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}'
+                    {
+                    otherlv_3=(Token)match(input,17,FOLLOW_10); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+                        
+                    // InternalFlaDsl.g:494:1: ( (lv_failures_4_0= ruleFailureDefinition ) )
+                    // InternalFlaDsl.g:495:1: (lv_failures_4_0= ruleFailureDefinition )
+                    {
+                    // InternalFlaDsl.g:495:1: (lv_failures_4_0= ruleFailureDefinition )
+                    // InternalFlaDsl.g:496:3: lv_failures_4_0= ruleFailureDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
+                    	    
+                    pushFollow(FOLLOW_11);
+                    lv_failures_4_0=ruleFailureDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_4_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // InternalFlaDsl.g:512:2: (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+
+                    int cnt6=0;
+                    loop6:
+                    do {
+                        int alt6=2;
+                        int LA6_0 = input.LA(1);
+
+                        if ( (LA6_0==14) ) {
+                            alt6=1;
+                        }
+
+
+                        switch (alt6) {
+                    	case 1 :
+                    	    // InternalFlaDsl.g:512:4: otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) )
+                    	    {
+                    	    otherlv_5=(Token)match(input,14,FOLLOW_10); 
+
+                    	        	newLeafNode(otherlv_5, grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0());
+                    	        
+                    	    // InternalFlaDsl.g:516:1: ( (lv_failures_6_0= ruleFailureDefinition ) )
+                    	    // InternalFlaDsl.g:517:1: (lv_failures_6_0= ruleFailureDefinition )
+                    	    {
+                    	    // InternalFlaDsl.g:517:1: (lv_failures_6_0= ruleFailureDefinition )
+                    	    // InternalFlaDsl.g:518:3: lv_failures_6_0= ruleFailureDefinition
+                    	    {
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
+                    	    	    
+                    	    pushFollow(FOLLOW_12);
+                    	    lv_failures_6_0=ruleFailureDefinition();
+
+                    	    state._fsp--;
+
+
+                    	    	        if (current==null) {
+                    	    	            current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+                    	    	        }
+                    	           		add(
+                    	           			current, 
+                    	           			"failures",
+                    	            		lv_failures_6_0, 
+                    	            		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt6 >= 1 ) break loop6;
+                                EarlyExitException eee =
+                                    new EarlyExitException(6, input);
+                                throw eee;
+                        }
+                        cnt6++;
+                    } while (true);
+
+                    otherlv_7=(Token)match(input,18,FOLLOW_2); 
+
+                        	newLeafNode(otherlv_7, grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalFlaDsl.g:539:6: ( (lv_failures_8_0= ruleVariableDefinition ) )
+                    {
+                    // InternalFlaDsl.g:539:6: ( (lv_failures_8_0= ruleVariableDefinition ) )
+                    // InternalFlaDsl.g:540:1: (lv_failures_8_0= ruleVariableDefinition )
+                    {
+                    // InternalFlaDsl.g:540:1: (lv_failures_8_0= ruleVariableDefinition )
+                    // InternalFlaDsl.g:541:3: lv_failures_8_0= ruleVariableDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
+                    	    
+                    pushFollow(FOLLOW_2);
+                    lv_failures_8_0=ruleVariableDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getInFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_8_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleInFailureExpr"
+
+
+    // $ANTLR start "entryRuleOutFailureExpr"
+    // InternalFlaDsl.g:565:1: entryRuleOutFailureExpr returns [EObject current=null] : iv_ruleOutFailureExpr= ruleOutFailureExpr EOF ;
+    public final EObject entryRuleOutFailureExpr() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleOutFailureExpr = null;
+
+
+        try {
+            // InternalFlaDsl.g:566:2: (iv_ruleOutFailureExpr= ruleOutFailureExpr EOF )
+            // InternalFlaDsl.g:567:2: iv_ruleOutFailureExpr= ruleOutFailureExpr EOF
+            {
+             newCompositeNode(grammarAccess.getOutFailureExprRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleOutFailureExpr=ruleOutFailureExpr();
+
+            state._fsp--;
+
+             current =iv_ruleOutFailureExpr; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOutFailureExpr"
+
+
+    // $ANTLR start "ruleOutFailureExpr"
+    // InternalFlaDsl.g:574:1: ruleOutFailureExpr returns [EObject current=null] : ( ( (lv_failures_0_0= ruleNoFailureDefinition ) ) | ( (lv_failures_1_0= ruleComplexNofailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) ) ;
+    public final EObject ruleOutFailureExpr() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        EObject lv_failures_0_0 = null;
+
+        EObject lv_failures_1_0 = null;
+
+        EObject lv_failures_2_0 = null;
+
+        EObject lv_failures_4_0 = null;
+
+        EObject lv_failures_6_0 = null;
+
+        EObject lv_failures_8_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:577:28: ( ( ( (lv_failures_0_0= ruleNoFailureDefinition ) ) | ( (lv_failures_1_0= ruleComplexNofailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) ) )
+            // InternalFlaDsl.g:578:1: ( ( (lv_failures_0_0= ruleNoFailureDefinition ) ) | ( (lv_failures_1_0= ruleComplexNofailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) )
+            {
+            // InternalFlaDsl.g:578:1: ( ( (lv_failures_0_0= ruleNoFailureDefinition ) ) | ( (lv_failures_1_0= ruleComplexNofailureDefinition ) ) | ( (lv_failures_2_0= ruleFailureDefinition ) ) | (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' ) | ( (lv_failures_8_0= ruleVariableDefinition ) ) )
+            int alt9=5;
+            switch ( input.LA(1) ) {
+            case 19:
+                {
+                int LA9_1 = input.LA(2);
+
+                if ( (LA9_1==EOF||(LA9_1>=13 && LA9_1<=14)) ) {
+                    alt9=1;
+                }
+                else if ( (LA9_1==16) ) {
+                    alt9=2;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 9, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 21:
+            case 22:
+            case 23:
+            case 24:
+            case 25:
+            case 26:
+                {
+                alt9=3;
+                }
+                break;
+            case 17:
+                {
+                alt9=4;
+                }
+                break;
+            case RULE_ID:
+                {
+                alt9=5;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 9, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt9) {
+                case 1 :
+                    // InternalFlaDsl.g:578:2: ( (lv_failures_0_0= ruleNoFailureDefinition ) )
+                    {
+                    // InternalFlaDsl.g:578:2: ( (lv_failures_0_0= ruleNoFailureDefinition ) )
+                    // InternalFlaDsl.g:579:1: (lv_failures_0_0= ruleNoFailureDefinition )
+                    {
+                    // InternalFlaDsl.g:579:1: (lv_failures_0_0= ruleNoFailureDefinition )
+                    // InternalFlaDsl.g:580:3: lv_failures_0_0= ruleNoFailureDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); 
+                    	    
+                    pushFollow(FOLLOW_2);
+                    lv_failures_0_0=ruleNoFailureDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_0_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:597:6: ( (lv_failures_1_0= ruleComplexNofailureDefinition ) )
+                    {
+                    // InternalFlaDsl.g:597:6: ( (lv_failures_1_0= ruleComplexNofailureDefinition ) )
+                    // InternalFlaDsl.g:598:1: (lv_failures_1_0= ruleComplexNofailureDefinition )
+                    {
+                    // InternalFlaDsl.g:598:1: (lv_failures_1_0= ruleComplexNofailureDefinition )
+                    // InternalFlaDsl.g:599:3: lv_failures_1_0= ruleComplexNofailureDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); 
+                    	    
+                    pushFollow(FOLLOW_2);
+                    lv_failures_1_0=ruleComplexNofailureDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_1_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.ComplexNofailureDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:616:6: ( (lv_failures_2_0= ruleFailureDefinition ) )
+                    {
+                    // InternalFlaDsl.g:616:6: ( (lv_failures_2_0= ruleFailureDefinition ) )
+                    // InternalFlaDsl.g:617:1: (lv_failures_2_0= ruleFailureDefinition )
+                    {
+                    // InternalFlaDsl.g:617:1: (lv_failures_2_0= ruleFailureDefinition )
+                    // InternalFlaDsl.g:618:3: lv_failures_2_0= ruleFailureDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
+                    	    
+                    pushFollow(FOLLOW_2);
+                    lv_failures_2_0=ruleFailureDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_2_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:635:6: (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' )
+                    {
+                    // InternalFlaDsl.g:635:6: (otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}' )
+                    // InternalFlaDsl.g:635:8: otherlv_3= '{' ( (lv_failures_4_0= ruleFailureDefinition ) ) (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+ otherlv_7= '}'
+                    {
+                    otherlv_3=(Token)match(input,17,FOLLOW_10); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0());
+                        
+                    // InternalFlaDsl.g:639:1: ( (lv_failures_4_0= ruleFailureDefinition ) )
+                    // InternalFlaDsl.g:640:1: (lv_failures_4_0= ruleFailureDefinition )
+                    {
+                    // InternalFlaDsl.g:640:1: (lv_failures_4_0= ruleFailureDefinition )
+                    // InternalFlaDsl.g:641:3: lv_failures_4_0= ruleFailureDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
+                    	    
+                    pushFollow(FOLLOW_11);
+                    lv_failures_4_0=ruleFailureDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_4_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // InternalFlaDsl.g:657:2: (otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) ) )+
+                    int cnt8=0;
+                    loop8:
+                    do {
+                        int alt8=2;
+                        int LA8_0 = input.LA(1);
+
+                        if ( (LA8_0==14) ) {
+                            alt8=1;
+                        }
+
+
+                        switch (alt8) {
+                    	case 1 :
+                    	    // InternalFlaDsl.g:657:4: otherlv_5= ',' ( (lv_failures_6_0= ruleFailureDefinition ) )
+                    	    {
+                    	    otherlv_5=(Token)match(input,14,FOLLOW_10); 
+
+                    	        	newLeafNode(otherlv_5, grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0());
+                    	        
+                    	    // InternalFlaDsl.g:661:1: ( (lv_failures_6_0= ruleFailureDefinition ) )
+                    	    // InternalFlaDsl.g:662:1: (lv_failures_6_0= ruleFailureDefinition )
+                    	    {
+                    	    // InternalFlaDsl.g:662:1: (lv_failures_6_0= ruleFailureDefinition )
+                    	    // InternalFlaDsl.g:663:3: lv_failures_6_0= ruleFailureDefinition
+                    	    {
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
+                    	    	    
+                    	    pushFollow(FOLLOW_12);
+                    	    lv_failures_6_0=ruleFailureDefinition();
+
+                    	    state._fsp--;
+
+
+                    	    	        if (current==null) {
+                    	    	            current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+                    	    	        }
+                    	           		add(
+                    	           			current, 
+                    	           			"failures",
+                    	            		lv_failures_6_0, 
+                    	            		"org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt8 >= 1 ) break loop8;
+                                EarlyExitException eee =
+                                    new EarlyExitException(8, input);
+                                throw eee;
+                        }
+                        cnt8++;
+                    } while (true);
+
+                    otherlv_7=(Token)match(input,18,FOLLOW_2); 
+
+                        	newLeafNode(otherlv_7, grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3());
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalFlaDsl.g:684:6: ( (lv_failures_8_0= ruleVariableDefinition ) )
+                    {
+                    // InternalFlaDsl.g:684:6: ( (lv_failures_8_0= ruleVariableDefinition ) )
+                    // InternalFlaDsl.g:685:1: (lv_failures_8_0= ruleVariableDefinition )
+                    {
+                    // InternalFlaDsl.g:685:1: (lv_failures_8_0= ruleVariableDefinition )
+                    // InternalFlaDsl.g:686:3: lv_failures_8_0= ruleVariableDefinition
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
+                    	    
+                    pushFollow(FOLLOW_2);
+                    lv_failures_8_0=ruleVariableDefinition();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getOutFailureExprRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"failures",
+                            		lv_failures_8_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOutFailureExpr"
+
+
+    // $ANTLR start "entryRuleFailureDefinition"
+    // InternalFlaDsl.g:712:1: entryRuleFailureDefinition returns [EObject current=null] : iv_ruleFailureDefinition= ruleFailureDefinition EOF ;
+    public final EObject entryRuleFailureDefinition() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFailureDefinition = null;
+
+
+        try {
+            // InternalFlaDsl.g:713:2: (iv_ruleFailureDefinition= ruleFailureDefinition EOF )
+            // InternalFlaDsl.g:714:2: iv_ruleFailureDefinition= ruleFailureDefinition EOF
+            {
+             newCompositeNode(grammarAccess.getFailureDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleFailureDefinition=ruleFailureDefinition();
+
+            state._fsp--;
+
+             current =iv_ruleFailureDefinition; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFailureDefinition"
+
+
+    // $ANTLR start "ruleFailureDefinition"
+    // InternalFlaDsl.g:721:1: ruleFailureDefinition returns [EObject current=null] : ( () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )? ) ;
+    public final EObject ruleFailureDefinition() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        Enumerator lv_type_1_0 = null;
+
+        EObject lv_acidAvoidable_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:724:28: ( ( () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )? ) )
+            // InternalFlaDsl.g:725:1: ( () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )? )
+            {
+            // InternalFlaDsl.g:725:1: ( () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )? )
+            // InternalFlaDsl.g:725:2: () ( (lv_type_1_0= ruleActualFailureType ) ) (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )?
+            {
+            // InternalFlaDsl.g:725:2: ()
+            // InternalFlaDsl.g:726:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0(),
+                        current);
+                
+
+            }
+
+            // InternalFlaDsl.g:731:2: ( (lv_type_1_0= ruleActualFailureType ) )
+            // InternalFlaDsl.g:732:1: (lv_type_1_0= ruleActualFailureType )
+            {
+            // InternalFlaDsl.g:732:1: (lv_type_1_0= ruleActualFailureType )
+            // InternalFlaDsl.g:733:3: lv_type_1_0= ruleActualFailureType
+            {
+             
+            	        newCompositeNode(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); 
+            	    
+            pushFollow(FOLLOW_13);
+            lv_type_1_0=ruleActualFailureType();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getFailureDefinitionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"type",
+                    		lv_type_1_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.ActualFailureType");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // InternalFlaDsl.g:749:2: (otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) ) )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==16) ) {
+                alt10=1;
+            }
+            switch (alt10) {
+                case 1 :
+                    // InternalFlaDsl.g:749:4: otherlv_2= '.' ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) )
+                    {
+                    otherlv_2=(Token)match(input,16,FOLLOW_14); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0());
+                        
+                    // InternalFlaDsl.g:753:1: ( (lv_acidAvoidable_3_0= ruleACIDavoidable ) )
+                    // InternalFlaDsl.g:754:1: (lv_acidAvoidable_3_0= ruleACIDavoidable )
+                    {
+                    // InternalFlaDsl.g:754:1: (lv_acidAvoidable_3_0= ruleACIDavoidable )
+                    // InternalFlaDsl.g:755:3: lv_acidAvoidable_3_0= ruleACIDavoidable
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); 
+                    	    
+                    pushFollow(FOLLOW_2);
+                    lv_acidAvoidable_3_0=ruleACIDavoidable();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getFailureDefinitionRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"acidAvoidable",
+                            		lv_acidAvoidable_3_0, 
+                            		"org.polarsys.chess.xtext.FlaDsl.ACIDavoidable");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFailureDefinition"
+
+
+    // $ANTLR start "entryRuleNoFailureDefinition"
+    // InternalFlaDsl.g:779:1: entryRuleNoFailureDefinition returns [EObject current=null] : iv_ruleNoFailureDefinition= ruleNoFailureDefinition EOF ;
+    public final EObject entryRuleNoFailureDefinition() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleNoFailureDefinition = null;
+
+
+        try {
+            // InternalFlaDsl.g:780:2: (iv_ruleNoFailureDefinition= ruleNoFailureDefinition EOF )
+            // InternalFlaDsl.g:781:2: iv_ruleNoFailureDefinition= ruleNoFailureDefinition EOF
+            {
+             newCompositeNode(grammarAccess.getNoFailureDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleNoFailureDefinition=ruleNoFailureDefinition();
+
+            state._fsp--;
+
+             current =iv_ruleNoFailureDefinition; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleNoFailureDefinition"
+
+
+    // $ANTLR start "ruleNoFailureDefinition"
+    // InternalFlaDsl.g:788:1: ruleNoFailureDefinition returns [EObject current=null] : ( () otherlv_1= 'noFailure' ) ;
+    public final EObject ruleNoFailureDefinition() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:791:28: ( ( () otherlv_1= 'noFailure' ) )
+            // InternalFlaDsl.g:792:1: ( () otherlv_1= 'noFailure' )
+            {
+            // InternalFlaDsl.g:792:1: ( () otherlv_1= 'noFailure' )
+            // InternalFlaDsl.g:792:2: () otherlv_1= 'noFailure'
+            {
+            // InternalFlaDsl.g:792:2: ()
+            // InternalFlaDsl.g:793:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0(),
+                        current);
+                
+
+            }
+
+            otherlv_1=(Token)match(input,19,FOLLOW_2); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleNoFailureDefinition"
+
+
+    // $ANTLR start "entryRuleComplexNofailureDefinition"
+    // InternalFlaDsl.g:810:1: entryRuleComplexNofailureDefinition returns [EObject current=null] : iv_ruleComplexNofailureDefinition= ruleComplexNofailureDefinition EOF ;
+    public final EObject entryRuleComplexNofailureDefinition() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleComplexNofailureDefinition = null;
+
+
+        try {
+            // InternalFlaDsl.g:811:2: (iv_ruleComplexNofailureDefinition= ruleComplexNofailureDefinition EOF )
+            // InternalFlaDsl.g:812:2: iv_ruleComplexNofailureDefinition= ruleComplexNofailureDefinition EOF
+            {
+             newCompositeNode(grammarAccess.getComplexNofailureDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleComplexNofailureDefinition=ruleComplexNofailureDefinition();
+
+            state._fsp--;
+
+             current =iv_ruleComplexNofailureDefinition; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleComplexNofailureDefinition"
+
+
+    // $ANTLR start "ruleComplexNofailureDefinition"
+    // InternalFlaDsl.g:819:1: ruleComplexNofailureDefinition returns [EObject current=null] : ( () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) ) ) ;
+    public final EObject ruleComplexNofailureDefinition() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        EObject lv_acidMitigation_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:822:28: ( ( () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) ) ) )
+            // InternalFlaDsl.g:823:1: ( () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) ) )
+            {
+            // InternalFlaDsl.g:823:1: ( () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) ) )
+            // InternalFlaDsl.g:823:2: () otherlv_1= 'noFailure' otherlv_2= '.' ( (lv_acidMitigation_3_0= ruleACIDMitigation ) )
+            {
+            // InternalFlaDsl.g:823:2: ()
+            // InternalFlaDsl.g:824:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0(),
+                        current);
+                
+
+            }
+
+            otherlv_1=(Token)match(input,19,FOLLOW_8); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1());
+                
+            otherlv_2=(Token)match(input,16,FOLLOW_15); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2());
+                
+            // InternalFlaDsl.g:837:1: ( (lv_acidMitigation_3_0= ruleACIDMitigation ) )
+            // InternalFlaDsl.g:838:1: (lv_acidMitigation_3_0= ruleACIDMitigation )
+            {
+            // InternalFlaDsl.g:838:1: (lv_acidMitigation_3_0= ruleACIDMitigation )
+            // InternalFlaDsl.g:839:3: lv_acidMitigation_3_0= ruleACIDMitigation
+            {
+             
+            	        newCompositeNode(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); 
+            	    
+            pushFollow(FOLLOW_2);
+            lv_acidMitigation_3_0=ruleACIDMitigation();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getComplexNofailureDefinitionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"acidMitigation",
+                    		lv_acidMitigation_3_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.ACIDMitigation");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleComplexNofailureDefinition"
+
+
+    // $ANTLR start "entryRuleWildcardDefinition"
+    // InternalFlaDsl.g:863:1: entryRuleWildcardDefinition returns [EObject current=null] : iv_ruleWildcardDefinition= ruleWildcardDefinition EOF ;
+    public final EObject entryRuleWildcardDefinition() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleWildcardDefinition = null;
+
+
+        try {
+            // InternalFlaDsl.g:864:2: (iv_ruleWildcardDefinition= ruleWildcardDefinition EOF )
+            // InternalFlaDsl.g:865:2: iv_ruleWildcardDefinition= ruleWildcardDefinition EOF
+            {
+             newCompositeNode(grammarAccess.getWildcardDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleWildcardDefinition=ruleWildcardDefinition();
+
+            state._fsp--;
+
+             current =iv_ruleWildcardDefinition; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleWildcardDefinition"
+
+
+    // $ANTLR start "ruleWildcardDefinition"
+    // InternalFlaDsl.g:872:1: ruleWildcardDefinition returns [EObject current=null] : ( () otherlv_1= 'wildcard' ) ;
+    public final EObject ruleWildcardDefinition() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:875:28: ( ( () otherlv_1= 'wildcard' ) )
+            // InternalFlaDsl.g:876:1: ( () otherlv_1= 'wildcard' )
+            {
+            // InternalFlaDsl.g:876:1: ( () otherlv_1= 'wildcard' )
+            // InternalFlaDsl.g:876:2: () otherlv_1= 'wildcard'
+            {
+            // InternalFlaDsl.g:876:2: ()
+            // InternalFlaDsl.g:877:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0(),
+                        current);
+                
+
+            }
+
+            otherlv_1=(Token)match(input,20,FOLLOW_2); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleWildcardDefinition"
+
+
+    // $ANTLR start "entryRuleVariableDefinition"
+    // InternalFlaDsl.g:894:1: entryRuleVariableDefinition returns [EObject current=null] : iv_ruleVariableDefinition= ruleVariableDefinition EOF ;
+    public final EObject entryRuleVariableDefinition() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleVariableDefinition = null;
+
+
+        try {
+            // InternalFlaDsl.g:895:2: (iv_ruleVariableDefinition= ruleVariableDefinition EOF )
+            // InternalFlaDsl.g:896:2: iv_ruleVariableDefinition= ruleVariableDefinition EOF
+            {
+             newCompositeNode(grammarAccess.getVariableDefinitionRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleVariableDefinition=ruleVariableDefinition();
+
+            state._fsp--;
+
+             current =iv_ruleVariableDefinition; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleVariableDefinition"
+
+
+    // $ANTLR start "ruleVariableDefinition"
+    // InternalFlaDsl.g:903:1: ruleVariableDefinition returns [EObject current=null] : ( () ( (lv_variableName_1_0= RULE_ID ) ) ) ;
+    public final EObject ruleVariableDefinition() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_variableName_1_0=null;
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:906:28: ( ( () ( (lv_variableName_1_0= RULE_ID ) ) ) )
+            // InternalFlaDsl.g:907:1: ( () ( (lv_variableName_1_0= RULE_ID ) ) )
+            {
+            // InternalFlaDsl.g:907:1: ( () ( (lv_variableName_1_0= RULE_ID ) ) )
+            // InternalFlaDsl.g:907:2: () ( (lv_variableName_1_0= RULE_ID ) )
+            {
+            // InternalFlaDsl.g:907:2: ()
+            // InternalFlaDsl.g:908:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0(),
+                        current);
+                
+
+            }
+
+            // InternalFlaDsl.g:913:2: ( (lv_variableName_1_0= RULE_ID ) )
+            // InternalFlaDsl.g:914:1: (lv_variableName_1_0= RULE_ID )
+            {
+            // InternalFlaDsl.g:914:1: (lv_variableName_1_0= RULE_ID )
+            // InternalFlaDsl.g:915:3: lv_variableName_1_0= RULE_ID
+            {
+            lv_variableName_1_0=(Token)match(input,RULE_ID,FOLLOW_2); 
+
+            			newLeafNode(lv_variableName_1_0, grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); 
+            		
+
+            	        if (current==null) {
+            	            current = createModelElement(grammarAccess.getVariableDefinitionRule());
+            	        }
+                   		setWithLastConsumed(
+                   			current, 
+                   			"variableName",
+                    		lv_variableName_1_0, 
+                    		"org.eclipse.xtext.common.Terminals.ID");
+            	    
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleVariableDefinition"
+
+
+    // $ANTLR start "entryRuleACIDavoidable"
+    // InternalFlaDsl.g:939:1: entryRuleACIDavoidable returns [EObject current=null] : iv_ruleACIDavoidable= ruleACIDavoidable EOF ;
+    public final EObject entryRuleACIDavoidable() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleACIDavoidable = null;
+
+
+        try {
+            // InternalFlaDsl.g:940:2: (iv_ruleACIDavoidable= ruleACIDavoidable EOF )
+            // InternalFlaDsl.g:941:2: iv_ruleACIDavoidable= ruleACIDavoidable EOF
+            {
+             newCompositeNode(grammarAccess.getACIDavoidableRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleACIDavoidable=ruleACIDavoidable();
+
+            state._fsp--;
+
+             current =iv_ruleACIDavoidable; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleACIDavoidable"
+
+
+    // $ANTLR start "ruleACIDavoidable"
+    // InternalFlaDsl.g:948:1: ruleACIDavoidable returns [EObject current=null] : ( ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) ) ) ;
+    public final EObject ruleACIDavoidable() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Enumerator lv_a_0_0 = null;
+
+        Enumerator lv_c_2_0 = null;
+
+        Enumerator lv_i_4_0 = null;
+
+        Enumerator lv_d_6_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:951:28: ( ( ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) ) ) )
+            // InternalFlaDsl.g:952:1: ( ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) ) )
+            {
+            // InternalFlaDsl.g:952:1: ( ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) ) )
+            // InternalFlaDsl.g:952:2: ( (lv_a_0_0= ruleAavoidable ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCavoidable ) ) otherlv_3= '.' ( (lv_i_4_0= ruleIavoidable ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDavoidable ) )
+            {
+            // InternalFlaDsl.g:952:2: ( (lv_a_0_0= ruleAavoidable ) )
+            // InternalFlaDsl.g:953:1: (lv_a_0_0= ruleAavoidable )
+            {
+            // InternalFlaDsl.g:953:1: (lv_a_0_0= ruleAavoidable )
+            // InternalFlaDsl.g:954:3: lv_a_0_0= ruleAavoidable
+            {
+             
+            	        newCompositeNode(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); 
+            	    
+            pushFollow(FOLLOW_8);
+            lv_a_0_0=ruleAavoidable();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"a",
+                    		lv_a_0_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Aavoidable");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,16,FOLLOW_16); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1());
+                
+            // InternalFlaDsl.g:974:1: ( (lv_c_2_0= ruleCavoidable ) )
+            // InternalFlaDsl.g:975:1: (lv_c_2_0= ruleCavoidable )
+            {
+            // InternalFlaDsl.g:975:1: (lv_c_2_0= ruleCavoidable )
+            // InternalFlaDsl.g:976:3: lv_c_2_0= ruleCavoidable
+            {
+             
+            	        newCompositeNode(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); 
+            	    
+            pushFollow(FOLLOW_8);
+            lv_c_2_0=ruleCavoidable();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"c",
+                    		lv_c_2_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Cavoidable");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,16,FOLLOW_17); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3());
+                
+            // InternalFlaDsl.g:996:1: ( (lv_i_4_0= ruleIavoidable ) )
+            // InternalFlaDsl.g:997:1: (lv_i_4_0= ruleIavoidable )
+            {
+            // InternalFlaDsl.g:997:1: (lv_i_4_0= ruleIavoidable )
+            // InternalFlaDsl.g:998:3: lv_i_4_0= ruleIavoidable
+            {
+             
+            	        newCompositeNode(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); 
+            	    
+            pushFollow(FOLLOW_8);
+            lv_i_4_0=ruleIavoidable();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"i",
+                    		lv_i_4_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Iavoidable");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,16,FOLLOW_18); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5());
+                
+            // InternalFlaDsl.g:1018:1: ( (lv_d_6_0= ruleDavoidable ) )
+            // InternalFlaDsl.g:1019:1: (lv_d_6_0= ruleDavoidable )
+            {
+            // InternalFlaDsl.g:1019:1: (lv_d_6_0= ruleDavoidable )
+            // InternalFlaDsl.g:1020:3: lv_d_6_0= ruleDavoidable
+            {
+             
+            	        newCompositeNode(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); 
+            	    
+            pushFollow(FOLLOW_2);
+            lv_d_6_0=ruleDavoidable();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getACIDavoidableRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"d",
+                    		lv_d_6_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Davoidable");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleACIDavoidable"
+
+
+    // $ANTLR start "entryRuleACIDMitigation"
+    // InternalFlaDsl.g:1044:1: entryRuleACIDMitigation returns [EObject current=null] : iv_ruleACIDMitigation= ruleACIDMitigation EOF ;
+    public final EObject entryRuleACIDMitigation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleACIDMitigation = null;
+
+
+        try {
+            // InternalFlaDsl.g:1045:2: (iv_ruleACIDMitigation= ruleACIDMitigation EOF )
+            // InternalFlaDsl.g:1046:2: iv_ruleACIDMitigation= ruleACIDMitigation EOF
+            {
+             newCompositeNode(grammarAccess.getACIDMitigationRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleACIDMitigation=ruleACIDMitigation();
+
+            state._fsp--;
+
+             current =iv_ruleACIDMitigation; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleACIDMitigation"
+
+
+    // $ANTLR start "ruleACIDMitigation"
+    // InternalFlaDsl.g:1053:1: ruleACIDMitigation returns [EObject current=null] : ( ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) ) ) ;
+    public final EObject ruleACIDMitigation() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Enumerator lv_a_0_0 = null;
+
+        Enumerator lv_c_2_0 = null;
+
+        Enumerator lv_i_4_0 = null;
+
+        Enumerator lv_d_6_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // InternalFlaDsl.g:1056:28: ( ( ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) ) ) )
+            // InternalFlaDsl.g:1057:1: ( ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) ) )
+            {
+            // InternalFlaDsl.g:1057:1: ( ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) ) )
+            // InternalFlaDsl.g:1057:2: ( (lv_a_0_0= ruleAmitigation ) ) otherlv_1= '.' ( (lv_c_2_0= ruleCmitigation ) ) otherlv_3= '.' ( (lv_i_4_0= ruleImitigation ) ) otherlv_5= '.' ( (lv_d_6_0= ruleDmitigation ) )
+            {
+            // InternalFlaDsl.g:1057:2: ( (lv_a_0_0= ruleAmitigation ) )
+            // InternalFlaDsl.g:1058:1: (lv_a_0_0= ruleAmitigation )
+            {
+            // InternalFlaDsl.g:1058:1: (lv_a_0_0= ruleAmitigation )
+            // InternalFlaDsl.g:1059:3: lv_a_0_0= ruleAmitigation
+            {
+             
+            	        newCompositeNode(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); 
+            	    
+            pushFollow(FOLLOW_8);
+            lv_a_0_0=ruleAmitigation();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"a",
+                    		lv_a_0_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Amitigation");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,16,FOLLOW_19); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1());
+                
+            // InternalFlaDsl.g:1079:1: ( (lv_c_2_0= ruleCmitigation ) )
+            // InternalFlaDsl.g:1080:1: (lv_c_2_0= ruleCmitigation )
+            {
+            // InternalFlaDsl.g:1080:1: (lv_c_2_0= ruleCmitigation )
+            // InternalFlaDsl.g:1081:3: lv_c_2_0= ruleCmitigation
+            {
+             
+            	        newCompositeNode(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); 
+            	    
+            pushFollow(FOLLOW_8);
+            lv_c_2_0=ruleCmitigation();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"c",
+                    		lv_c_2_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Cmitigation");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,16,FOLLOW_20); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3());
+                
+            // InternalFlaDsl.g:1101:1: ( (lv_i_4_0= ruleImitigation ) )
+            // InternalFlaDsl.g:1102:1: (lv_i_4_0= ruleImitigation )
+            {
+            // InternalFlaDsl.g:1102:1: (lv_i_4_0= ruleImitigation )
+            // InternalFlaDsl.g:1103:3: lv_i_4_0= ruleImitigation
+            {
+             
+            	        newCompositeNode(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); 
+            	    
+            pushFollow(FOLLOW_8);
+            lv_i_4_0=ruleImitigation();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"i",
+                    		lv_i_4_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Imitigation");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,16,FOLLOW_21); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5());
+                
+            // InternalFlaDsl.g:1123:1: ( (lv_d_6_0= ruleDmitigation ) )
+            // InternalFlaDsl.g:1124:1: (lv_d_6_0= ruleDmitigation )
+            {
+            // InternalFlaDsl.g:1124:1: (lv_d_6_0= ruleDmitigation )
+            // InternalFlaDsl.g:1125:3: lv_d_6_0= ruleDmitigation
+            {
+             
+            	        newCompositeNode(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); 
+            	    
+            pushFollow(FOLLOW_2);
+            lv_d_6_0=ruleDmitigation();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getACIDMitigationRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"d",
+                    		lv_d_6_0, 
+                    		"org.polarsys.chess.xtext.FlaDsl.Dmitigation");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleACIDMitigation"
+
+
+    // $ANTLR start "ruleActualFailureType"
+    // InternalFlaDsl.g:1153:1: ruleActualFailureType returns [Enumerator current=null] : ( (enumLiteral_0= 'early' ) | (enumLiteral_1= 'late' ) | (enumLiteral_2= 'commission' ) | (enumLiteral_3= 'omission' ) | (enumLiteral_4= 'valueSubtle' ) | (enumLiteral_5= 'valueCoarse' ) ) ;
+    public final Enumerator ruleActualFailureType() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+        Token enumLiteral_4=null;
+        Token enumLiteral_5=null;
+
+         enterRule(); 
+        try {
+            // InternalFlaDsl.g:1155:28: ( ( (enumLiteral_0= 'early' ) | (enumLiteral_1= 'late' ) | (enumLiteral_2= 'commission' ) | (enumLiteral_3= 'omission' ) | (enumLiteral_4= 'valueSubtle' ) | (enumLiteral_5= 'valueCoarse' ) ) )
+            // InternalFlaDsl.g:1156:1: ( (enumLiteral_0= 'early' ) | (enumLiteral_1= 'late' ) | (enumLiteral_2= 'commission' ) | (enumLiteral_3= 'omission' ) | (enumLiteral_4= 'valueSubtle' ) | (enumLiteral_5= 'valueCoarse' ) )
+            {
+            // InternalFlaDsl.g:1156:1: ( (enumLiteral_0= 'early' ) | (enumLiteral_1= 'late' ) | (enumLiteral_2= 'commission' ) | (enumLiteral_3= 'omission' ) | (enumLiteral_4= 'valueSubtle' ) | (enumLiteral_5= 'valueCoarse' ) )
+            int alt11=6;
+            switch ( input.LA(1) ) {
+            case 21:
+                {
+                alt11=1;
+                }
+                break;
+            case 22:
+                {
+                alt11=2;
+                }
+                break;
+            case 23:
+                {
+                alt11=3;
+                }
+                break;
+            case 24:
+                {
+                alt11=4;
+                }
+                break;
+            case 25:
+                {
+                alt11=5;
+                }
+                break;
+            case 26:
+                {
+                alt11=6;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt11) {
+                case 1 :
+                    // InternalFlaDsl.g:1156:2: (enumLiteral_0= 'early' )
+                    {
+                    // InternalFlaDsl.g:1156:2: (enumLiteral_0= 'early' )
+                    // InternalFlaDsl.g:1156:4: enumLiteral_0= 'early'
+                    {
+                    enumLiteral_0=(Token)match(input,21,FOLLOW_2); 
+
+                            current = grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1162:6: (enumLiteral_1= 'late' )
+                    {
+                    // InternalFlaDsl.g:1162:6: (enumLiteral_1= 'late' )
+                    // InternalFlaDsl.g:1162:8: enumLiteral_1= 'late'
+                    {
+                    enumLiteral_1=(Token)match(input,22,FOLLOW_2); 
+
+                            current = grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1168:6: (enumLiteral_2= 'commission' )
+                    {
+                    // InternalFlaDsl.g:1168:6: (enumLiteral_2= 'commission' )
+                    // InternalFlaDsl.g:1168:8: enumLiteral_2= 'commission'
+                    {
+                    enumLiteral_2=(Token)match(input,23,FOLLOW_2); 
+
+                            current = grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:1174:6: (enumLiteral_3= 'omission' )
+                    {
+                    // InternalFlaDsl.g:1174:6: (enumLiteral_3= 'omission' )
+                    // InternalFlaDsl.g:1174:8: enumLiteral_3= 'omission'
+                    {
+                    enumLiteral_3=(Token)match(input,24,FOLLOW_2); 
+
+                            current = grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_3, grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalFlaDsl.g:1180:6: (enumLiteral_4= 'valueSubtle' )
+                    {
+                    // InternalFlaDsl.g:1180:6: (enumLiteral_4= 'valueSubtle' )
+                    // InternalFlaDsl.g:1180:8: enumLiteral_4= 'valueSubtle'
+                    {
+                    enumLiteral_4=(Token)match(input,25,FOLLOW_2); 
+
+                            current = grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_4, grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalFlaDsl.g:1186:6: (enumLiteral_5= 'valueCoarse' )
+                    {
+                    // InternalFlaDsl.g:1186:6: (enumLiteral_5= 'valueCoarse' )
+                    // InternalFlaDsl.g:1186:8: enumLiteral_5= 'valueCoarse'
+                    {
+                    enumLiteral_5=(Token)match(input,26,FOLLOW_2); 
+
+                            current = grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_5, grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActualFailureType"
+
+
+    // $ANTLR start "ruleAavoidable"
+    // InternalFlaDsl.g:1200:1: ruleAavoidable returns [Enumerator current=null] : ( (enumLiteral_0= 'incompletion' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) ;
+    public final Enumerator ruleAavoidable() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+
+         enterRule(); 
+        try {
+            // InternalFlaDsl.g:1202:28: ( ( (enumLiteral_0= 'incompletion' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) )
+            // InternalFlaDsl.g:1203:1: ( (enumLiteral_0= 'incompletion' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+            {
+            // InternalFlaDsl.g:1203:1: ( (enumLiteral_0= 'incompletion' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+            int alt12=3;
+            switch ( input.LA(1) ) {
+            case 27:
+                {
+                alt12=1;
+                }
+                break;
+            case 28:
+                {
+                alt12=2;
+                }
+                break;
+            case 29:
+                {
+                alt12=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 12, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt12) {
+                case 1 :
+                    // InternalFlaDsl.g:1203:2: (enumLiteral_0= 'incompletion' )
+                    {
+                    // InternalFlaDsl.g:1203:2: (enumLiteral_0= 'incompletion' )
+                    // InternalFlaDsl.g:1203:4: enumLiteral_0= 'incompletion'
+                    {
+                    enumLiteral_0=(Token)match(input,27,FOLLOW_2); 
+
+                            current = grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1209:6: (enumLiteral_1= 'none' )
+                    {
+                    // InternalFlaDsl.g:1209:6: (enumLiteral_1= 'none' )
+                    // InternalFlaDsl.g:1209:8: enumLiteral_1= 'none'
+                    {
+                    enumLiteral_1=(Token)match(input,28,FOLLOW_2); 
+
+                            current = grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1215:6: (enumLiteral_2= 'unspecified' )
+                    {
+                    // InternalFlaDsl.g:1215:6: (enumLiteral_2= 'unspecified' )
+                    // InternalFlaDsl.g:1215:8: enumLiteral_2= 'unspecified'
+                    {
+                    enumLiteral_2=(Token)match(input,29,FOLLOW_2); 
+
+                            current = grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAavoidable"
+
+
+    // $ANTLR start "ruleCavoidable"
+    // InternalFlaDsl.g:1225:1: ruleCavoidable returns [Enumerator current=null] : ( (enumLiteral_0= 'inconsistency' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) ;
+    public final Enumerator ruleCavoidable() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+
+         enterRule(); 
+        try {
+            // InternalFlaDsl.g:1227:28: ( ( (enumLiteral_0= 'inconsistency' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) )
+            // InternalFlaDsl.g:1228:1: ( (enumLiteral_0= 'inconsistency' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+            {
+            // InternalFlaDsl.g:1228:1: ( (enumLiteral_0= 'inconsistency' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+            int alt13=3;
+            switch ( input.LA(1) ) {
+            case 30:
+                {
+                alt13=1;
+                }
+                break;
+            case 28:
+                {
+                alt13=2;
+                }
+                break;
+            case 29:
+                {
+                alt13=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 13, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt13) {
+                case 1 :
+                    // InternalFlaDsl.g:1228:2: (enumLiteral_0= 'inconsistency' )
+                    {
+                    // InternalFlaDsl.g:1228:2: (enumLiteral_0= 'inconsistency' )
+                    // InternalFlaDsl.g:1228:4: enumLiteral_0= 'inconsistency'
+                    {
+                    enumLiteral_0=(Token)match(input,30,FOLLOW_2); 
+
+                            current = grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1234:6: (enumLiteral_1= 'none' )
+                    {
+                    // InternalFlaDsl.g:1234:6: (enumLiteral_1= 'none' )
+                    // InternalFlaDsl.g:1234:8: enumLiteral_1= 'none'
+                    {
+                    enumLiteral_1=(Token)match(input,28,FOLLOW_2); 
+
+                            current = grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1240:6: (enumLiteral_2= 'unspecified' )
+                    {
+                    // InternalFlaDsl.g:1240:6: (enumLiteral_2= 'unspecified' )
+                    // InternalFlaDsl.g:1240:8: enumLiteral_2= 'unspecified'
+                    {
+                    enumLiteral_2=(Token)match(input,29,FOLLOW_2); 
+
+                            current = grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleCavoidable"
+
+
+    // $ANTLR start "ruleIavoidable"
+    // InternalFlaDsl.g:1250:1: ruleIavoidable returns [Enumerator current=null] : ( (enumLiteral_0= 'interference' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) ;
+    public final Enumerator ruleIavoidable() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+
+         enterRule(); 
+        try {
+            // InternalFlaDsl.g:1252:28: ( ( (enumLiteral_0= 'interference' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) )
+            // InternalFlaDsl.g:1253:1: ( (enumLiteral_0= 'interference' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+            {
+            // InternalFlaDsl.g:1253:1: ( (enumLiteral_0= 'interference' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+            int alt14=3;
+            switch ( input.LA(1) ) {
+            case 31:
+                {
+                alt14=1;
+                }
+                break;
+            case 28:
+                {
+                alt14=2;
+                }
+                break;
+            case 29:
+                {
+                alt14=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 14, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt14) {
+                case 1 :
+                    // InternalFlaDsl.g:1253:2: (enumLiteral_0= 'interference' )
+                    {
+                    // InternalFlaDsl.g:1253:2: (enumLiteral_0= 'interference' )
+                    // InternalFlaDsl.g:1253:4: enumLiteral_0= 'interference'
+                    {
+                    enumLiteral_0=(Token)match(input,31,FOLLOW_2); 
+
+                            current = grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1259:6: (enumLiteral_1= 'none' )
+                    {
+                    // InternalFlaDsl.g:1259:6: (enumLiteral_1= 'none' )
+                    // InternalFlaDsl.g:1259:8: enumLiteral_1= 'none'
+                    {
+                    enumLiteral_1=(Token)match(input,28,FOLLOW_2); 
+
+                            current = grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1265:6: (enumLiteral_2= 'unspecified' )
+                    {
+                    // InternalFlaDsl.g:1265:6: (enumLiteral_2= 'unspecified' )
+                    // InternalFlaDsl.g:1265:8: enumLiteral_2= 'unspecified'
+                    {
+                    enumLiteral_2=(Token)match(input,29,FOLLOW_2); 
+
+                            current = grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleIavoidable"
+
+
+    // $ANTLR start "ruleDavoidable"
+    // InternalFlaDsl.g:1275:1: ruleDavoidable returns [Enumerator current=null] : ( (enumLiteral_0= 'impermanence' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) ;
+    public final Enumerator ruleDavoidable() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+
+         enterRule(); 
+        try {
+            // InternalFlaDsl.g:1277:28: ( ( (enumLiteral_0= 'impermanence' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) ) )
+            // InternalFlaDsl.g:1278:1: ( (enumLiteral_0= 'impermanence' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+            {
+            // InternalFlaDsl.g:1278:1: ( (enumLiteral_0= 'impermanence' ) | (enumLiteral_1= 'none' ) | (enumLiteral_2= 'unspecified' ) )
+            int alt15=3;
+            switch ( input.LA(1) ) {
+            case 32:
+                {
+                alt15=1;
+                }
+                break;
+            case 28:
+                {
+                alt15=2;
+                }
+                break;
+            case 29:
+                {
+                alt15=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 15, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt15) {
+                case 1 :
+                    // InternalFlaDsl.g:1278:2: (enumLiteral_0= 'impermanence' )
+                    {
+                    // InternalFlaDsl.g:1278:2: (enumLiteral_0= 'impermanence' )
+                    // InternalFlaDsl.g:1278:4: enumLiteral_0= 'impermanence'
+                    {
+                    enumLiteral_0=(Token)match(input,32,FOLLOW_2); 
+
+                            current = grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1284:6: (enumLiteral_1= 'none' )
+                    {
+                    // InternalFlaDsl.g:1284:6: (enumLiteral_1= 'none' )
+                    // InternalFlaDsl.g:1284:8: enumLiteral_1= 'none'
+                    {
+                    enumLiteral_1=(Token)match(input,28,FOLLOW_2); 
+
+                            current = grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1290:6: (enumLiteral_2= 'unspecified' )
+                    {
+                    // InternalFlaDsl.g:1290:6: (enumLiteral_2= 'unspecified' )
+                    // InternalFlaDsl.g:1290:8: enumLiteral_2= 'unspecified'
+                    {
+                    enumLiteral_2=(Token)match(input,29,FOLLOW_2); 
+
+                            current = grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDavoidable"
+
+
+    // $ANTLR start "ruleAmitigation"
+    // InternalFlaDsl.g:1300:1: ruleAmitigation returns [Enumerator current=null] : ( (enumLiteral_0= 'all_or_nothing' ) | (enumLiteral_1= 'all_or_compensation' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) ;
+    public final Enumerator ruleAmitigation() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+
+         enterRule(); 
+        try {
+            // InternalFlaDsl.g:1302:28: ( ( (enumLiteral_0= 'all_or_nothing' ) | (enumLiteral_1= 'all_or_compensation' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) )
+            // InternalFlaDsl.g:1303:1: ( (enumLiteral_0= 'all_or_nothing' ) | (enumLiteral_1= 'all_or_compensation' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+            {
+            // InternalFlaDsl.g:1303:1: ( (enumLiteral_0= 'all_or_nothing' ) | (enumLiteral_1= 'all_or_compensation' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+            int alt16=4;
+            switch ( input.LA(1) ) {
+            case 33:
+                {
+                alt16=1;
+                }
+                break;
+            case 34:
+                {
+                alt16=2;
+                }
+                break;
+            case 28:
+                {
+                alt16=3;
+                }
+                break;
+            case 29:
+                {
+                alt16=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 16, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt16) {
+                case 1 :
+                    // InternalFlaDsl.g:1303:2: (enumLiteral_0= 'all_or_nothing' )
+                    {
+                    // InternalFlaDsl.g:1303:2: (enumLiteral_0= 'all_or_nothing' )
+                    // InternalFlaDsl.g:1303:4: enumLiteral_0= 'all_or_nothing'
+                    {
+                    enumLiteral_0=(Token)match(input,33,FOLLOW_2); 
+
+                            current = grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1309:6: (enumLiteral_1= 'all_or_compensation' )
+                    {
+                    // InternalFlaDsl.g:1309:6: (enumLiteral_1= 'all_or_compensation' )
+                    // InternalFlaDsl.g:1309:8: enumLiteral_1= 'all_or_compensation'
+                    {
+                    enumLiteral_1=(Token)match(input,34,FOLLOW_2); 
+
+                            current = grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1315:6: (enumLiteral_2= 'none' )
+                    {
+                    // InternalFlaDsl.g:1315:6: (enumLiteral_2= 'none' )
+                    // InternalFlaDsl.g:1315:8: enumLiteral_2= 'none'
+                    {
+                    enumLiteral_2=(Token)match(input,28,FOLLOW_2); 
+
+                            current = grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:1321:6: (enumLiteral_3= 'unspecified' )
+                    {
+                    // InternalFlaDsl.g:1321:6: (enumLiteral_3= 'unspecified' )
+                    // InternalFlaDsl.g:1321:8: enumLiteral_3= 'unspecified'
+                    {
+                    enumLiteral_3=(Token)match(input,29,FOLLOW_2); 
+
+                            current = grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_3, grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAmitigation"
+
+
+    // $ANTLR start "ruleCmitigation"
+    // InternalFlaDsl.g:1331:1: ruleCmitigation returns [Enumerator current=null] : ( (enumLiteral_0= 'full_consistency' ) | (enumLiteral_1= 'range_violation_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) ;
+    public final Enumerator ruleCmitigation() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+
+         enterRule(); 
+        try {
+            // InternalFlaDsl.g:1333:28: ( ( (enumLiteral_0= 'full_consistency' ) | (enumLiteral_1= 'range_violation_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) )
+            // InternalFlaDsl.g:1334:1: ( (enumLiteral_0= 'full_consistency' ) | (enumLiteral_1= 'range_violation_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+            {
+            // InternalFlaDsl.g:1334:1: ( (enumLiteral_0= 'full_consistency' ) | (enumLiteral_1= 'range_violation_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+            int alt17=4;
+            switch ( input.LA(1) ) {
+            case 35:
+                {
+                alt17=1;
+                }
+                break;
+            case 36:
+                {
+                alt17=2;
+                }
+                break;
+            case 28:
+                {
+                alt17=3;
+                }
+                break;
+            case 29:
+                {
+                alt17=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 17, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt17) {
+                case 1 :
+                    // InternalFlaDsl.g:1334:2: (enumLiteral_0= 'full_consistency' )
+                    {
+                    // InternalFlaDsl.g:1334:2: (enumLiteral_0= 'full_consistency' )
+                    // InternalFlaDsl.g:1334:4: enumLiteral_0= 'full_consistency'
+                    {
+                    enumLiteral_0=(Token)match(input,35,FOLLOW_2); 
+
+                            current = grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1340:6: (enumLiteral_1= 'range_violation_allowed' )
+                    {
+                    // InternalFlaDsl.g:1340:6: (enumLiteral_1= 'range_violation_allowed' )
+                    // InternalFlaDsl.g:1340:8: enumLiteral_1= 'range_violation_allowed'
+                    {
+                    enumLiteral_1=(Token)match(input,36,FOLLOW_2); 
+
+                            current = grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1346:6: (enumLiteral_2= 'none' )
+                    {
+                    // InternalFlaDsl.g:1346:6: (enumLiteral_2= 'none' )
+                    // InternalFlaDsl.g:1346:8: enumLiteral_2= 'none'
+                    {
+                    enumLiteral_2=(Token)match(input,28,FOLLOW_2); 
+
+                            current = grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:1352:6: (enumLiteral_3= 'unspecified' )
+                    {
+                    // InternalFlaDsl.g:1352:6: (enumLiteral_3= 'unspecified' )
+                    // InternalFlaDsl.g:1352:8: enumLiteral_3= 'unspecified'
+                    {
+                    enumLiteral_3=(Token)match(input,29,FOLLOW_2); 
+
+                            current = grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_3, grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleCmitigation"
+
+
+    // $ANTLR start "ruleImitigation"
+    // InternalFlaDsl.g:1362:1: ruleImitigation returns [Enumerator current=null] : ( (enumLiteral_0= 'serializable' ) | (enumLiteral_1= 'portable_level' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) ;
+    public final Enumerator ruleImitigation() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+
+         enterRule(); 
+        try {
+            // InternalFlaDsl.g:1364:28: ( ( (enumLiteral_0= 'serializable' ) | (enumLiteral_1= 'portable_level' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) )
+            // InternalFlaDsl.g:1365:1: ( (enumLiteral_0= 'serializable' ) | (enumLiteral_1= 'portable_level' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+            {
+            // InternalFlaDsl.g:1365:1: ( (enumLiteral_0= 'serializable' ) | (enumLiteral_1= 'portable_level' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+            int alt18=4;
+            switch ( input.LA(1) ) {
+            case 37:
+                {
+                alt18=1;
+                }
+                break;
+            case 38:
+                {
+                alt18=2;
+                }
+                break;
+            case 28:
+                {
+                alt18=3;
+                }
+                break;
+            case 29:
+                {
+                alt18=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 18, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt18) {
+                case 1 :
+                    // InternalFlaDsl.g:1365:2: (enumLiteral_0= 'serializable' )
+                    {
+                    // InternalFlaDsl.g:1365:2: (enumLiteral_0= 'serializable' )
+                    // InternalFlaDsl.g:1365:4: enumLiteral_0= 'serializable'
+                    {
+                    enumLiteral_0=(Token)match(input,37,FOLLOW_2); 
+
+                            current = grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1371:6: (enumLiteral_1= 'portable_level' )
+                    {
+                    // InternalFlaDsl.g:1371:6: (enumLiteral_1= 'portable_level' )
+                    // InternalFlaDsl.g:1371:8: enumLiteral_1= 'portable_level'
+                    {
+                    enumLiteral_1=(Token)match(input,38,FOLLOW_2); 
+
+                            current = grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1377:6: (enumLiteral_2= 'none' )
+                    {
+                    // InternalFlaDsl.g:1377:6: (enumLiteral_2= 'none' )
+                    // InternalFlaDsl.g:1377:8: enumLiteral_2= 'none'
+                    {
+                    enumLiteral_2=(Token)match(input,28,FOLLOW_2); 
+
+                            current = grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:1383:6: (enumLiteral_3= 'unspecified' )
+                    {
+                    // InternalFlaDsl.g:1383:6: (enumLiteral_3= 'unspecified' )
+                    // InternalFlaDsl.g:1383:8: enumLiteral_3= 'unspecified'
+                    {
+                    enumLiteral_3=(Token)match(input,29,FOLLOW_2); 
+
+                            current = grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_3, grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleImitigation"
+
+
+    // $ANTLR start "ruleDmitigation"
+    // InternalFlaDsl.g:1393:1: ruleDmitigation returns [Enumerator current=null] : ( (enumLiteral_0= 'no_loss' ) | (enumLiteral_1= 'partial_loss_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) ;
+    public final Enumerator ruleDmitigation() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+
+         enterRule(); 
+        try {
+            // InternalFlaDsl.g:1395:28: ( ( (enumLiteral_0= 'no_loss' ) | (enumLiteral_1= 'partial_loss_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) ) )
+            // InternalFlaDsl.g:1396:1: ( (enumLiteral_0= 'no_loss' ) | (enumLiteral_1= 'partial_loss_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+            {
+            // InternalFlaDsl.g:1396:1: ( (enumLiteral_0= 'no_loss' ) | (enumLiteral_1= 'partial_loss_allowed' ) | (enumLiteral_2= 'none' ) | (enumLiteral_3= 'unspecified' ) )
+            int alt19=4;
+            switch ( input.LA(1) ) {
+            case 39:
+                {
+                alt19=1;
+                }
+                break;
+            case 40:
+                {
+                alt19=2;
+                }
+                break;
+            case 28:
+                {
+                alt19=3;
+                }
+                break;
+            case 29:
+                {
+                alt19=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 19, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt19) {
+                case 1 :
+                    // InternalFlaDsl.g:1396:2: (enumLiteral_0= 'no_loss' )
+                    {
+                    // InternalFlaDsl.g:1396:2: (enumLiteral_0= 'no_loss' )
+                    // InternalFlaDsl.g:1396:4: enumLiteral_0= 'no_loss'
+                    {
+                    enumLiteral_0=(Token)match(input,39,FOLLOW_2); 
+
+                            current = grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalFlaDsl.g:1402:6: (enumLiteral_1= 'partial_loss_allowed' )
+                    {
+                    // InternalFlaDsl.g:1402:6: (enumLiteral_1= 'partial_loss_allowed' )
+                    // InternalFlaDsl.g:1402:8: enumLiteral_1= 'partial_loss_allowed'
+                    {
+                    enumLiteral_1=(Token)match(input,40,FOLLOW_2); 
+
+                            current = grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalFlaDsl.g:1408:6: (enumLiteral_2= 'none' )
+                    {
+                    // InternalFlaDsl.g:1408:6: (enumLiteral_2= 'none' )
+                    // InternalFlaDsl.g:1408:8: enumLiteral_2= 'none'
+                    {
+                    enumLiteral_2=(Token)match(input,28,FOLLOW_2); 
+
+                            current = grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalFlaDsl.g:1414:6: (enumLiteral_3= 'unspecified' )
+                    {
+                    // InternalFlaDsl.g:1414:6: (enumLiteral_3= 'unspecified' )
+                    // InternalFlaDsl.g:1414:8: enumLiteral_3= 'unspecified'
+                    {
+                    enumLiteral_3=(Token)match(input,29,FOLLOW_2); 
+
+                            current = grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_3, grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDmitigation"
+
+    // Delegated rules
+
+
+ 
+
+    public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000802L});
+    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000008010L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000007FA0010L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000007E00000L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000044000L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000010002L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000038000000L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000630000000L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000070000000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x00000000B0000000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000130000000L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000001830000000L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000006030000000L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000018030000000L});
+
+}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSemanticSequencer.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSemanticSequencer.java
new file mode 100644
index 0000000..c2f23c5
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSemanticSequencer.java
@@ -0,0 +1,364 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.serializer;
+
+import com.google.inject.Inject;
+import java.util.Set;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.Action;
+import org.eclipse.xtext.Parameter;
+import org.eclipse.xtext.ParserRule;
+import org.eclipse.xtext.serializer.ISerializationContext;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+import org.polarsys.chess.xtext.flaDsl.ACIDMitigation;
+import org.polarsys.chess.xtext.flaDsl.ACIDavoidable;
+import org.polarsys.chess.xtext.flaDsl.Behaviour;
+import org.polarsys.chess.xtext.flaDsl.Expression;
+import org.polarsys.chess.xtext.flaDsl.FailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.FlaDslPackage;
+import org.polarsys.chess.xtext.flaDsl.InFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.InputExpression;
+import org.polarsys.chess.xtext.flaDsl.Lhs;
+import org.polarsys.chess.xtext.flaDsl.NoFailureDefinition;
+import org.polarsys.chess.xtext.flaDsl.OutFailureExpr;
+import org.polarsys.chess.xtext.flaDsl.OutputExpression;
+import org.polarsys.chess.xtext.flaDsl.Rhs;
+import org.polarsys.chess.xtext.flaDsl.VariableDefinition;
+import org.polarsys.chess.xtext.flaDsl.WildcardDefinition;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+@SuppressWarnings("all")
+public class FlaDslSemanticSequencer extends AbstractDelegatingSemanticSequencer {
+
+	@Inject
+	private FlaDslGrammarAccess grammarAccess;
+	
+	@Override
+	public void sequence(ISerializationContext context, EObject semanticObject) {
+		EPackage epackage = semanticObject.eClass().getEPackage();
+		ParserRule rule = context.getParserRule();
+		Action action = context.getAssignedAction();
+		Set<Parameter> parameters = context.getEnabledBooleanParameters();
+		if (epackage == FlaDslPackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
+			case FlaDslPackage.ACID_MITIGATION:
+				sequence_ACIDMitigation(context, (ACIDMitigation) semanticObject); 
+				return; 
+			case FlaDslPackage.ACI_DAVOIDABLE:
+				sequence_ACIDavoidable(context, (ACIDavoidable) semanticObject); 
+				return; 
+			case FlaDslPackage.BEHAVIOUR:
+				sequence_Behaviour(context, (Behaviour) semanticObject); 
+				return; 
+			case FlaDslPackage.EXPRESSION:
+				sequence_Expression(context, (Expression) semanticObject); 
+				return; 
+			case FlaDslPackage.FAILURE_DEFINITION:
+				sequence_FailureDefinition(context, (FailureDefinition) semanticObject); 
+				return; 
+			case FlaDslPackage.IN_FAILURE_EXPR:
+				sequence_InFailureExpr(context, (InFailureExpr) semanticObject); 
+				return; 
+			case FlaDslPackage.INPUT_EXPRESSION:
+				sequence_InputExpression(context, (InputExpression) semanticObject); 
+				return; 
+			case FlaDslPackage.LHS:
+				sequence_Lhs(context, (Lhs) semanticObject); 
+				return; 
+			case FlaDslPackage.NO_FAILURE_DEFINITION:
+				if (rule == grammarAccess.getComplexNofailureDefinitionRule()) {
+					sequence_ComplexNofailureDefinition(context, (NoFailureDefinition) semanticObject); 
+					return; 
+				}
+				else if (rule == grammarAccess.getDefinitionsRule()) {
+					sequence_ComplexNofailureDefinition_NoFailureDefinition(context, (NoFailureDefinition) semanticObject); 
+					return; 
+				}
+				else if (rule == grammarAccess.getNoFailureDefinitionRule()) {
+					sequence_NoFailureDefinition(context, (NoFailureDefinition) semanticObject); 
+					return; 
+				}
+				else break;
+			case FlaDslPackage.OUT_FAILURE_EXPR:
+				sequence_OutFailureExpr(context, (OutFailureExpr) semanticObject); 
+				return; 
+			case FlaDslPackage.OUTPUT_EXPRESSION:
+				sequence_OutputExpression(context, (OutputExpression) semanticObject); 
+				return; 
+			case FlaDslPackage.RHS:
+				sequence_Rhs(context, (Rhs) semanticObject); 
+				return; 
+			case FlaDslPackage.VARIABLE_DEFINITION:
+				sequence_VariableDefinition(context, (VariableDefinition) semanticObject); 
+				return; 
+			case FlaDslPackage.WILDCARD_DEFINITION:
+				sequence_WildcardDefinition(context, (WildcardDefinition) semanticObject); 
+				return; 
+			}
+		if (errorAcceptor != null)
+			errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+	}
+	
+	/**
+	 * Contexts:
+	 *     ACIDMitigation returns ACIDMitigation
+	 *
+	 * Constraint:
+	 *     (a=Amitigation c=Cmitigation i=Imitigation d=Dmitigation)
+	 */
+	protected void sequence_ACIDMitigation(ISerializationContext context, ACIDMitigation semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__A) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__A));
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__C) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__C));
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__I) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__I));
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__D) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACID_MITIGATION__D));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0(), semanticObject.getA());
+		feeder.accept(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0(), semanticObject.getC());
+		feeder.accept(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0(), semanticObject.getI());
+		feeder.accept(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0(), semanticObject.getD());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     ACIDavoidable returns ACIDavoidable
+	 *
+	 * Constraint:
+	 *     (a=Aavoidable c=Cavoidable i=Iavoidable d=Davoidable)
+	 */
+	protected void sequence_ACIDavoidable(ISerializationContext context, ACIDavoidable semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__A) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__A));
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__C) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__C));
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__I) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__I));
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__D) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.ACI_DAVOIDABLE__D));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0(), semanticObject.getA());
+		feeder.accept(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0(), semanticObject.getC());
+		feeder.accept(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0(), semanticObject.getI());
+		feeder.accept(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0(), semanticObject.getD());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Behaviour returns Behaviour
+	 *
+	 * Constraint:
+	 *     rules+=Expression+
+	 */
+	protected void sequence_Behaviour(ISerializationContext context, Behaviour semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     ComplexNofailureDefinition returns NoFailureDefinition
+	 *
+	 * Constraint:
+	 *     acidMitigation=ACIDMitigation
+	 */
+	protected void sequence_ComplexNofailureDefinition(ISerializationContext context, NoFailureDefinition semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.NO_FAILURE_DEFINITION__ACID_MITIGATION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.NO_FAILURE_DEFINITION__ACID_MITIGATION));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0(), semanticObject.getAcidMitigation());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Definitions returns NoFailureDefinition
+	 *
+	 * Constraint:
+	 *     acidMitigation=ACIDMitigation?
+	 */
+	protected void sequence_ComplexNofailureDefinition_NoFailureDefinition(ISerializationContext context, NoFailureDefinition semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Expression returns Expression
+	 *
+	 * Constraint:
+	 *     (lhs=Lhs rhs=Rhs)
+	 */
+	protected void sequence_Expression(ISerializationContext context, Expression semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.EXPRESSION__LHS) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.EXPRESSION__LHS));
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.EXPRESSION__RHS) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.EXPRESSION__RHS));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0(), semanticObject.getLhs());
+		feeder.accept(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0(), semanticObject.getRhs());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Definitions returns FailureDefinition
+	 *     FailureDefinition returns FailureDefinition
+	 *
+	 * Constraint:
+	 *     (type=ActualFailureType acidAvoidable=ACIDavoidable?)
+	 */
+	protected void sequence_FailureDefinition(ISerializationContext context, FailureDefinition semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     InFailureExpr returns InFailureExpr
+	 *
+	 * Constraint:
+	 *     (
+	 *         failures+=WildcardDefinition | 
+	 *         failures+=NoFailureDefinition | 
+	 *         failures+=FailureDefinition | 
+	 *         (failures+=FailureDefinition failures+=FailureDefinition+) | 
+	 *         failures+=VariableDefinition
+	 *     )
+	 */
+	protected void sequence_InFailureExpr(ISerializationContext context, InFailureExpr semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     InputExpression returns InputExpression
+	 *
+	 * Constraint:
+	 *     (ref=[Port|ID]? failureExpr=InFailureExpr)
+	 */
+	protected void sequence_InputExpression(ISerializationContext context, InputExpression semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Lhs returns Lhs
+	 *
+	 * Constraint:
+	 *     (failures+=InputExpression failures+=InputExpression*)
+	 */
+	protected void sequence_Lhs(ISerializationContext context, Lhs semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     NoFailureDefinition returns NoFailureDefinition
+	 *
+	 * Constraint:
+	 *     {NoFailureDefinition}
+	 */
+	protected void sequence_NoFailureDefinition(ISerializationContext context, NoFailureDefinition semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     OutFailureExpr returns OutFailureExpr
+	 *
+	 * Constraint:
+	 *     (
+	 *         failures+=NoFailureDefinition | 
+	 *         failures+=ComplexNofailureDefinition | 
+	 *         failures+=FailureDefinition | 
+	 *         (failures+=FailureDefinition failures+=FailureDefinition+) | 
+	 *         failures+=VariableDefinition
+	 *     )
+	 */
+	protected void sequence_OutFailureExpr(ISerializationContext context, OutFailureExpr semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     OutputExpression returns OutputExpression
+	 *
+	 * Constraint:
+	 *     (ref=[Port|ID]? failureExpr=OutFailureExpr)
+	 */
+	protected void sequence_OutputExpression(ISerializationContext context, OutputExpression semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Rhs returns Rhs
+	 *
+	 * Constraint:
+	 *     (failures+=OutputExpression failures+=OutputExpression*)
+	 */
+	protected void sequence_Rhs(ISerializationContext context, Rhs semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Definitions returns VariableDefinition
+	 *     VariableDefinition returns VariableDefinition
+	 *
+	 * Constraint:
+	 *     variableName=ID
+	 */
+	protected void sequence_VariableDefinition(ISerializationContext context, VariableDefinition semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, FlaDslPackage.Literals.VARIABLE_DEFINITION__VARIABLE_NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FlaDslPackage.Literals.VARIABLE_DEFINITION__VARIABLE_NAME));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0(), semanticObject.getVariableName());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Definitions returns WildcardDefinition
+	 *     WildcardDefinition returns WildcardDefinition
+	 *
+	 * Constraint:
+	 *     {WildcardDefinition}
+	 */
+	protected void sequence_WildcardDefinition(ISerializationContext context, WildcardDefinition semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSyntacticSequencer.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSyntacticSequencer.java
new file mode 100644
index 0000000..59f2069
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/serializer/FlaDslSyntacticSequencer.java
@@ -0,0 +1,43 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
+
+@SuppressWarnings("all")
+public class FlaDslSyntacticSequencer extends AbstractSyntacticSequencer {
+
+	protected FlaDslGrammarAccess grammarAccess;
+	
+	@Inject
+	protected void init(IGrammarAccess access) {
+		grammarAccess = (FlaDslGrammarAccess) access;
+	}
+	
+	@Override
+	protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		return "";
+	}
+	
+	
+	@Override
+	protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+		if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+		List<INode> transitionNodes = collectNodes(fromNode, toNode);
+		for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+			List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+			acceptNodes(getLastNavigableState(), syntaxNodes);
+		}
+	}
+
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/services/FlaDslGrammarAccess.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/services/FlaDslGrammarAccess.java
new file mode 100644
index 0000000..43f02c0
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/services/FlaDslGrammarAccess.java
@@ -0,0 +1,1655 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import java.util.List;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class FlaDslGrammarAccess extends AbstractGrammarElementFinder {
+	
+	
+	public class BehaviourElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Behaviour");
+		private final Assignment cRulesAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cRulesExpressionParserRuleCall_0 = (RuleCall)cRulesAssignment.eContents().get(0);
+		
+		///*
+		// * FLA Grammar
+		// */ Behaviour:
+		//	rules+=Expression+;
+		@Override public ParserRule getRule() { return rule; }
+
+		//rules+=Expression+
+		public Assignment getRulesAssignment() { return cRulesAssignment; }
+
+		//Expression
+		public RuleCall getRulesExpressionParserRuleCall_0() { return cRulesExpressionParserRuleCall_0; }
+	}
+
+	public class ExpressionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Expression");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFLAKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cLhsAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cLhsLhsParserRuleCall_1_0 = (RuleCall)cLhsAssignment_1.eContents().get(0);
+		private final Keyword cHyphenMinusGreaterThanSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cRhsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cRhsRhsParserRuleCall_3_0 = (RuleCall)cRhsAssignment_3.eContents().get(0);
+		private final Keyword cSemicolonKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//Expression:
+		//	'FLA:' lhs=Lhs '->' rhs=Rhs ';';
+		@Override public ParserRule getRule() { return rule; }
+
+		//'FLA:' lhs=Lhs '->' rhs=Rhs ';'
+		public Group getGroup() { return cGroup; }
+
+		//'FLA:'
+		public Keyword getFLAKeyword_0() { return cFLAKeyword_0; }
+
+		//lhs=Lhs
+		public Assignment getLhsAssignment_1() { return cLhsAssignment_1; }
+
+		//Lhs
+		public RuleCall getLhsLhsParserRuleCall_1_0() { return cLhsLhsParserRuleCall_1_0; }
+
+		//'->'
+		public Keyword getHyphenMinusGreaterThanSignKeyword_2() { return cHyphenMinusGreaterThanSignKeyword_2; }
+
+		//rhs=Rhs
+		public Assignment getRhsAssignment_3() { return cRhsAssignment_3; }
+
+		//Rhs
+		public RuleCall getRhsRhsParserRuleCall_3_0() { return cRhsRhsParserRuleCall_3_0; }
+
+		//';'
+		public Keyword getSemicolonKeyword_4() { return cSemicolonKeyword_4; }
+	}
+
+	public class LhsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Lhs");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cFailuresAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cFailuresInputExpressionParserRuleCall_0_0 = (RuleCall)cFailuresAssignment_0.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cFailuresAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cFailuresInputExpressionParserRuleCall_1_1_0 = (RuleCall)cFailuresAssignment_1_1.eContents().get(0);
+		
+		//Lhs:
+		//	failures+=InputExpression (',' failures+=InputExpression)*;
+		@Override public ParserRule getRule() { return rule; }
+
+		//failures+=InputExpression (',' failures+=InputExpression)*
+		public Group getGroup() { return cGroup; }
+
+		//failures+=InputExpression
+		public Assignment getFailuresAssignment_0() { return cFailuresAssignment_0; }
+
+		//InputExpression
+		public RuleCall getFailuresInputExpressionParserRuleCall_0_0() { return cFailuresInputExpressionParserRuleCall_0_0; }
+
+		//(',' failures+=InputExpression)*
+		public Group getGroup_1() { return cGroup_1; }
+
+		//','
+		public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
+
+		//failures+=InputExpression
+		public Assignment getFailuresAssignment_1_1() { return cFailuresAssignment_1_1; }
+
+		//InputExpression
+		public RuleCall getFailuresInputExpressionParserRuleCall_1_1_0() { return cFailuresInputExpressionParserRuleCall_1_1_0; }
+	}
+
+	public class RhsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Rhs");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cFailuresAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cFailuresOutputExpressionParserRuleCall_0_0 = (RuleCall)cFailuresAssignment_0.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cFailuresAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cFailuresOutputExpressionParserRuleCall_1_1_0 = (RuleCall)cFailuresAssignment_1_1.eContents().get(0);
+		
+		//Rhs:
+		//	failures+=OutputExpression (',' failures+=OutputExpression)*;
+		@Override public ParserRule getRule() { return rule; }
+
+		//failures+=OutputExpression (',' failures+=OutputExpression)*
+		public Group getGroup() { return cGroup; }
+
+		//failures+=OutputExpression
+		public Assignment getFailuresAssignment_0() { return cFailuresAssignment_0; }
+
+		//OutputExpression
+		public RuleCall getFailuresOutputExpressionParserRuleCall_0_0() { return cFailuresOutputExpressionParserRuleCall_0_0; }
+
+		//(',' failures+=OutputExpression)*
+		public Group getGroup_1() { return cGroup_1; }
+
+		//','
+		public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
+
+		//failures+=OutputExpression
+		public Assignment getFailuresAssignment_1_1() { return cFailuresAssignment_1_1; }
+
+		//OutputExpression
+		public RuleCall getFailuresOutputExpressionParserRuleCall_1_1_0() { return cFailuresOutputExpressionParserRuleCall_1_1_0; }
+	}
+
+	public class InputExpressionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.InputExpression");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
+		private final Assignment cRefAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
+		private final CrossReference cRefPortCrossReference_0_0_0 = (CrossReference)cRefAssignment_0_0.eContents().get(0);
+		private final RuleCall cRefPortIDTerminalRuleCall_0_0_0_1 = (RuleCall)cRefPortCrossReference_0_0_0.eContents().get(1);
+		private final Keyword cUndefinedKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
+		private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cFailureExprAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cFailureExprInFailureExprParserRuleCall_2_0 = (RuleCall)cFailureExprAssignment_2.eContents().get(0);
+		
+		//InputExpression:
+		//	(ref=[uml::Port] | "undefined") '.' failureExpr=InFailureExpr;
+		@Override public ParserRule getRule() { return rule; }
+
+		//(ref=[uml::Port] | "undefined") '.' failureExpr=InFailureExpr
+		public Group getGroup() { return cGroup; }
+
+		//ref=[uml::Port] | "undefined"
+		public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+		//ref=[uml::Port]
+		public Assignment getRefAssignment_0_0() { return cRefAssignment_0_0; }
+
+		//[uml::Port]
+		public CrossReference getRefPortCrossReference_0_0_0() { return cRefPortCrossReference_0_0_0; }
+
+		//ID
+		public RuleCall getRefPortIDTerminalRuleCall_0_0_0_1() { return cRefPortIDTerminalRuleCall_0_0_0_1; }
+
+		//"undefined"
+		public Keyword getUndefinedKeyword_0_1() { return cUndefinedKeyword_0_1; }
+
+		//'.'
+		public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+		//failureExpr=InFailureExpr
+		public Assignment getFailureExprAssignment_2() { return cFailureExprAssignment_2; }
+
+		//InFailureExpr
+		public RuleCall getFailureExprInFailureExprParserRuleCall_2_0() { return cFailureExprInFailureExprParserRuleCall_2_0; }
+	}
+
+	public class OutputExpressionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.OutputExpression");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
+		private final Assignment cRefAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
+		private final CrossReference cRefPortCrossReference_0_0_0 = (CrossReference)cRefAssignment_0_0.eContents().get(0);
+		private final RuleCall cRefPortIDTerminalRuleCall_0_0_0_1 = (RuleCall)cRefPortCrossReference_0_0_0.eContents().get(1);
+		private final Keyword cUndefinedKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
+		private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cFailureExprAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cFailureExprOutFailureExprParserRuleCall_2_0 = (RuleCall)cFailureExprAssignment_2.eContents().get(0);
+		
+		//OutputExpression:
+		//	(ref=[uml::Port] | "undefined") '.' failureExpr=OutFailureExpr;
+		@Override public ParserRule getRule() { return rule; }
+
+		//(ref=[uml::Port] | "undefined") '.' failureExpr=OutFailureExpr
+		public Group getGroup() { return cGroup; }
+
+		//ref=[uml::Port] | "undefined"
+		public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+		//ref=[uml::Port]
+		public Assignment getRefAssignment_0_0() { return cRefAssignment_0_0; }
+
+		//[uml::Port]
+		public CrossReference getRefPortCrossReference_0_0_0() { return cRefPortCrossReference_0_0_0; }
+
+		//ID
+		public RuleCall getRefPortIDTerminalRuleCall_0_0_0_1() { return cRefPortIDTerminalRuleCall_0_0_0_1; }
+
+		//"undefined"
+		public Keyword getUndefinedKeyword_0_1() { return cUndefinedKeyword_0_1; }
+
+		//'.'
+		public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+		//failureExpr=OutFailureExpr
+		public Assignment getFailureExprAssignment_2() { return cFailureExprAssignment_2; }
+
+		//OutFailureExpr
+		public RuleCall getFailureExprOutFailureExprParserRuleCall_2_0() { return cFailureExprOutFailureExprParserRuleCall_2_0; }
+	}
+
+	public class InFailureExprElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.InFailureExpr");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final Assignment cFailuresAssignment_0 = (Assignment)cAlternatives.eContents().get(0);
+		private final RuleCall cFailuresWildcardDefinitionParserRuleCall_0_0 = (RuleCall)cFailuresAssignment_0.eContents().get(0);
+		private final Assignment cFailuresAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
+		private final RuleCall cFailuresNoFailureDefinitionParserRuleCall_1_0 = (RuleCall)cFailuresAssignment_1.eContents().get(0);
+		private final Assignment cFailuresAssignment_2 = (Assignment)cAlternatives.eContents().get(2);
+		private final RuleCall cFailuresFailureDefinitionParserRuleCall_2_0 = (RuleCall)cFailuresAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3);
+		private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cFailuresAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cFailuresFailureDefinitionParserRuleCall_3_1_0 = (RuleCall)cFailuresAssignment_3_1.eContents().get(0);
+		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
+		private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
+		private final Assignment cFailuresAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+		private final RuleCall cFailuresFailureDefinitionParserRuleCall_3_2_1_0 = (RuleCall)cFailuresAssignment_3_2_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+		private final Assignment cFailuresAssignment_4 = (Assignment)cAlternatives.eContents().get(4);
+		private final RuleCall cFailuresVariableDefinitionParserRuleCall_4_0 = (RuleCall)cFailuresAssignment_4.eContents().get(0);
+		
+		//InFailureExpr:
+		//	failures+=WildcardDefinition | failures+=NoFailureDefinition | failures+=FailureDefinition |
+		//	'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition;
+		@Override public ParserRule getRule() { return rule; }
+
+		//failures+=WildcardDefinition | failures+=NoFailureDefinition | failures+=FailureDefinition | '{'
+		//failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//failures+=WildcardDefinition
+		public Assignment getFailuresAssignment_0() { return cFailuresAssignment_0; }
+
+		//WildcardDefinition
+		public RuleCall getFailuresWildcardDefinitionParserRuleCall_0_0() { return cFailuresWildcardDefinitionParserRuleCall_0_0; }
+
+		//failures+=NoFailureDefinition
+		public Assignment getFailuresAssignment_1() { return cFailuresAssignment_1; }
+
+		//NoFailureDefinition
+		public RuleCall getFailuresNoFailureDefinitionParserRuleCall_1_0() { return cFailuresNoFailureDefinitionParserRuleCall_1_0; }
+
+		//failures+=FailureDefinition
+		public Assignment getFailuresAssignment_2() { return cFailuresAssignment_2; }
+
+		//FailureDefinition
+		public RuleCall getFailuresFailureDefinitionParserRuleCall_2_0() { return cFailuresFailureDefinitionParserRuleCall_2_0; }
+
+		//'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}'
+		public Group getGroup_3() { return cGroup_3; }
+
+		//'{'
+		public Keyword getLeftCurlyBracketKeyword_3_0() { return cLeftCurlyBracketKeyword_3_0; }
+
+		//failures+=FailureDefinition
+		public Assignment getFailuresAssignment_3_1() { return cFailuresAssignment_3_1; }
+
+		//FailureDefinition
+		public RuleCall getFailuresFailureDefinitionParserRuleCall_3_1_0() { return cFailuresFailureDefinitionParserRuleCall_3_1_0; }
+
+		//(',' failures+=FailureDefinition)+
+		public Group getGroup_3_2() { return cGroup_3_2; }
+
+		//','
+		public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
+
+		//failures+=FailureDefinition
+		public Assignment getFailuresAssignment_3_2_1() { return cFailuresAssignment_3_2_1; }
+
+		//FailureDefinition
+		public RuleCall getFailuresFailureDefinitionParserRuleCall_3_2_1_0() { return cFailuresFailureDefinitionParserRuleCall_3_2_1_0; }
+
+		//'}'
+		public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+
+		//failures+=VariableDefinition
+		public Assignment getFailuresAssignment_4() { return cFailuresAssignment_4; }
+
+		//VariableDefinition
+		public RuleCall getFailuresVariableDefinitionParserRuleCall_4_0() { return cFailuresVariableDefinitionParserRuleCall_4_0; }
+	}
+
+	public class OutFailureExprElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.OutFailureExpr");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final Assignment cFailuresAssignment_0 = (Assignment)cAlternatives.eContents().get(0);
+		private final RuleCall cFailuresNoFailureDefinitionParserRuleCall_0_0 = (RuleCall)cFailuresAssignment_0.eContents().get(0);
+		private final Assignment cFailuresAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
+		private final RuleCall cFailuresComplexNofailureDefinitionParserRuleCall_1_0 = (RuleCall)cFailuresAssignment_1.eContents().get(0);
+		private final Assignment cFailuresAssignment_2 = (Assignment)cAlternatives.eContents().get(2);
+		private final RuleCall cFailuresFailureDefinitionParserRuleCall_2_0 = (RuleCall)cFailuresAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3);
+		private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cFailuresAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cFailuresFailureDefinitionParserRuleCall_3_1_0 = (RuleCall)cFailuresAssignment_3_1.eContents().get(0);
+		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
+		private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
+		private final Assignment cFailuresAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+		private final RuleCall cFailuresFailureDefinitionParserRuleCall_3_2_1_0 = (RuleCall)cFailuresAssignment_3_2_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+		private final Assignment cFailuresAssignment_4 = (Assignment)cAlternatives.eContents().get(4);
+		private final RuleCall cFailuresVariableDefinitionParserRuleCall_4_0 = (RuleCall)cFailuresAssignment_4.eContents().get(0);
+		
+		//OutFailureExpr:
+		//	failures+=NoFailureDefinition | failures+=ComplexNofailureDefinition | failures+=FailureDefinition |
+		//	'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition;
+		@Override public ParserRule getRule() { return rule; }
+
+		//failures+=NoFailureDefinition | failures+=ComplexNofailureDefinition | failures+=FailureDefinition | '{'
+		//failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//failures+=NoFailureDefinition
+		public Assignment getFailuresAssignment_0() { return cFailuresAssignment_0; }
+
+		//NoFailureDefinition
+		public RuleCall getFailuresNoFailureDefinitionParserRuleCall_0_0() { return cFailuresNoFailureDefinitionParserRuleCall_0_0; }
+
+		//failures+=ComplexNofailureDefinition
+		public Assignment getFailuresAssignment_1() { return cFailuresAssignment_1; }
+
+		//ComplexNofailureDefinition
+		public RuleCall getFailuresComplexNofailureDefinitionParserRuleCall_1_0() { return cFailuresComplexNofailureDefinitionParserRuleCall_1_0; }
+
+		//failures+=FailureDefinition
+		public Assignment getFailuresAssignment_2() { return cFailuresAssignment_2; }
+
+		//FailureDefinition
+		public RuleCall getFailuresFailureDefinitionParserRuleCall_2_0() { return cFailuresFailureDefinitionParserRuleCall_2_0; }
+
+		//'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}'
+		public Group getGroup_3() { return cGroup_3; }
+
+		//'{'
+		public Keyword getLeftCurlyBracketKeyword_3_0() { return cLeftCurlyBracketKeyword_3_0; }
+
+		//failures+=FailureDefinition
+		public Assignment getFailuresAssignment_3_1() { return cFailuresAssignment_3_1; }
+
+		//FailureDefinition
+		public RuleCall getFailuresFailureDefinitionParserRuleCall_3_1_0() { return cFailuresFailureDefinitionParserRuleCall_3_1_0; }
+
+		//(',' failures+=FailureDefinition)+
+		public Group getGroup_3_2() { return cGroup_3_2; }
+
+		//','
+		public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
+
+		//failures+=FailureDefinition
+		public Assignment getFailuresAssignment_3_2_1() { return cFailuresAssignment_3_2_1; }
+
+		//FailureDefinition
+		public RuleCall getFailuresFailureDefinitionParserRuleCall_3_2_1_0() { return cFailuresFailureDefinitionParserRuleCall_3_2_1_0; }
+
+		//'}'
+		public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+
+		//failures+=VariableDefinition
+		public Assignment getFailuresAssignment_4() { return cFailuresAssignment_4; }
+
+		//VariableDefinition
+		public RuleCall getFailuresVariableDefinitionParserRuleCall_4_0() { return cFailuresVariableDefinitionParserRuleCall_4_0; }
+	}
+
+	public class DefinitionsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Definitions");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cFailureDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cNoFailureDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cComplexNofailureDefinitionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cWildcardDefinitionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cVariableDefinitionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+		
+		//Definitions:
+		//	FailureDefinition | NoFailureDefinition | ComplexNofailureDefinition | WildcardDefinition | VariableDefinition;
+		@Override public ParserRule getRule() { return rule; }
+
+		//FailureDefinition | NoFailureDefinition | ComplexNofailureDefinition | WildcardDefinition | VariableDefinition
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//FailureDefinition
+		public RuleCall getFailureDefinitionParserRuleCall_0() { return cFailureDefinitionParserRuleCall_0; }
+
+		//NoFailureDefinition
+		public RuleCall getNoFailureDefinitionParserRuleCall_1() { return cNoFailureDefinitionParserRuleCall_1; }
+
+		//ComplexNofailureDefinition
+		public RuleCall getComplexNofailureDefinitionParserRuleCall_2() { return cComplexNofailureDefinitionParserRuleCall_2; }
+
+		//WildcardDefinition
+		public RuleCall getWildcardDefinitionParserRuleCall_3() { return cWildcardDefinitionParserRuleCall_3; }
+
+		//VariableDefinition
+		public RuleCall getVariableDefinitionParserRuleCall_4() { return cVariableDefinitionParserRuleCall_4; }
+	}
+
+	public class FailureDefinitionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.FailureDefinition");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cFailureDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cTypeActualFailureTypeEnumRuleCall_1_0 = (RuleCall)cTypeAssignment_1.eContents().get(0);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cFullStopKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cAcidAvoidableAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cAcidAvoidableACIDavoidableParserRuleCall_2_1_0 = (RuleCall)cAcidAvoidableAssignment_2_1.eContents().get(0);
+		
+		//FailureDefinition:
+		//	{FailureDefinition} type=ActualFailureType ('.' acidAvoidable=ACIDavoidable)?;
+		@Override public ParserRule getRule() { return rule; }
+
+		//{FailureDefinition} type=ActualFailureType ('.' acidAvoidable=ACIDavoidable)?
+		public Group getGroup() { return cGroup; }
+
+		//{FailureDefinition}
+		public Action getFailureDefinitionAction_0() { return cFailureDefinitionAction_0; }
+
+		//type=ActualFailureType
+		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }
+
+		//ActualFailureType
+		public RuleCall getTypeActualFailureTypeEnumRuleCall_1_0() { return cTypeActualFailureTypeEnumRuleCall_1_0; }
+
+		//('.' acidAvoidable=ACIDavoidable)?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//'.'
+		public Keyword getFullStopKeyword_2_0() { return cFullStopKeyword_2_0; }
+
+		//acidAvoidable=ACIDavoidable
+		public Assignment getAcidAvoidableAssignment_2_1() { return cAcidAvoidableAssignment_2_1; }
+
+		//ACIDavoidable
+		public RuleCall getAcidAvoidableACIDavoidableParserRuleCall_2_1_0() { return cAcidAvoidableACIDavoidableParserRuleCall_2_1_0; }
+	}
+
+	public class NoFailureDefinitionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.NoFailureDefinition");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cNoFailureDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cNoFailureKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		
+		//NoFailureDefinition:
+		//	{NoFailureDefinition} 'noFailure';
+		@Override public ParserRule getRule() { return rule; }
+
+		//{NoFailureDefinition} 'noFailure'
+		public Group getGroup() { return cGroup; }
+
+		//{NoFailureDefinition}
+		public Action getNoFailureDefinitionAction_0() { return cNoFailureDefinitionAction_0; }
+
+		//'noFailure'
+		public Keyword getNoFailureKeyword_1() { return cNoFailureKeyword_1; }
+	}
+
+	public class ComplexNofailureDefinitionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.ComplexNofailureDefinition");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cNoFailureDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cNoFailureKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cAcidMitigationAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cAcidMitigationACIDMitigationParserRuleCall_3_0 = (RuleCall)cAcidMitigationAssignment_3.eContents().get(0);
+		
+		//ComplexNofailureDefinition:
+		//	{NoFailureDefinition} 'noFailure' '.' acidMitigation=ACIDMitigation;
+		@Override public ParserRule getRule() { return rule; }
+
+		//{NoFailureDefinition} 'noFailure' '.' acidMitigation=ACIDMitigation
+		public Group getGroup() { return cGroup; }
+
+		//{NoFailureDefinition}
+		public Action getNoFailureDefinitionAction_0() { return cNoFailureDefinitionAction_0; }
+
+		//'noFailure'
+		public Keyword getNoFailureKeyword_1() { return cNoFailureKeyword_1; }
+
+		//'.'
+		public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; }
+
+		//acidMitigation=ACIDMitigation
+		public Assignment getAcidMitigationAssignment_3() { return cAcidMitigationAssignment_3; }
+
+		//ACIDMitigation
+		public RuleCall getAcidMitigationACIDMitigationParserRuleCall_3_0() { return cAcidMitigationACIDMitigationParserRuleCall_3_0; }
+	}
+
+	public class WildcardDefinitionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.WildcardDefinition");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cWildcardDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cWildcardKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		
+		//WildcardDefinition:
+		//	{WildcardDefinition} 'wildcard';
+		@Override public ParserRule getRule() { return rule; }
+
+		//{WildcardDefinition} 'wildcard'
+		public Group getGroup() { return cGroup; }
+
+		//{WildcardDefinition}
+		public Action getWildcardDefinitionAction_0() { return cWildcardDefinitionAction_0; }
+
+		//'wildcard'
+		public Keyword getWildcardKeyword_1() { return cWildcardKeyword_1; }
+	}
+
+	public class VariableDefinitionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.VariableDefinition");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cVariableDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Assignment cVariableNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cVariableNameIDTerminalRuleCall_1_0 = (RuleCall)cVariableNameAssignment_1.eContents().get(0);
+		
+		//VariableDefinition:
+		//	{VariableDefinition} variableName=ID;
+		@Override public ParserRule getRule() { return rule; }
+
+		//{VariableDefinition} variableName=ID
+		public Group getGroup() { return cGroup; }
+
+		//{VariableDefinition}
+		public Action getVariableDefinitionAction_0() { return cVariableDefinitionAction_0; }
+
+		//variableName=ID
+		public Assignment getVariableNameAssignment_1() { return cVariableNameAssignment_1; }
+
+		//ID
+		public RuleCall getVariableNameIDTerminalRuleCall_1_0() { return cVariableNameIDTerminalRuleCall_1_0; }
+	}
+
+	public class ACIDavoidableElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.ACIDavoidable");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cAAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cAAavoidableEnumRuleCall_0_0 = (RuleCall)cAAssignment_0.eContents().get(0);
+		private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cCAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cCCavoidableEnumRuleCall_2_0 = (RuleCall)cCAssignment_2.eContents().get(0);
+		private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cIAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cIIavoidableEnumRuleCall_4_0 = (RuleCall)cIAssignment_4.eContents().get(0);
+		private final Keyword cFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cDAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cDDavoidableEnumRuleCall_6_0 = (RuleCall)cDAssignment_6.eContents().get(0);
+		
+		//ACIDavoidable:
+		//	a=Aavoidable '.' c=Cavoidable '.' i=Iavoidable '.' d=Davoidable;
+		@Override public ParserRule getRule() { return rule; }
+
+		//a=Aavoidable '.' c=Cavoidable '.' i=Iavoidable '.' d=Davoidable
+		public Group getGroup() { return cGroup; }
+
+		//a=Aavoidable
+		public Assignment getAAssignment_0() { return cAAssignment_0; }
+
+		//Aavoidable
+		public RuleCall getAAavoidableEnumRuleCall_0_0() { return cAAavoidableEnumRuleCall_0_0; }
+
+		//'.'
+		public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+		//c=Cavoidable
+		public Assignment getCAssignment_2() { return cCAssignment_2; }
+
+		//Cavoidable
+		public RuleCall getCCavoidableEnumRuleCall_2_0() { return cCCavoidableEnumRuleCall_2_0; }
+
+		//'.'
+		public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }
+
+		//i=Iavoidable
+		public Assignment getIAssignment_4() { return cIAssignment_4; }
+
+		//Iavoidable
+		public RuleCall getIIavoidableEnumRuleCall_4_0() { return cIIavoidableEnumRuleCall_4_0; }
+
+		//'.'
+		public Keyword getFullStopKeyword_5() { return cFullStopKeyword_5; }
+
+		//d=Davoidable
+		public Assignment getDAssignment_6() { return cDAssignment_6; }
+
+		//Davoidable
+		public RuleCall getDDavoidableEnumRuleCall_6_0() { return cDDavoidableEnumRuleCall_6_0; }
+	}
+
+	public class ACIDMitigationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.ACIDMitigation");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cAAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cAAmitigationEnumRuleCall_0_0 = (RuleCall)cAAssignment_0.eContents().get(0);
+		private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cCAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cCCmitigationEnumRuleCall_2_0 = (RuleCall)cCAssignment_2.eContents().get(0);
+		private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cIAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cIImitigationEnumRuleCall_4_0 = (RuleCall)cIAssignment_4.eContents().get(0);
+		private final Keyword cFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cDAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cDDmitigationEnumRuleCall_6_0 = (RuleCall)cDAssignment_6.eContents().get(0);
+		
+		//ACIDMitigation:
+		//	a=Amitigation '.' c=Cmitigation '.' i=Imitigation '.' d=Dmitigation;
+		@Override public ParserRule getRule() { return rule; }
+
+		//a=Amitigation '.' c=Cmitigation '.' i=Imitigation '.' d=Dmitigation
+		public Group getGroup() { return cGroup; }
+
+		//a=Amitigation
+		public Assignment getAAssignment_0() { return cAAssignment_0; }
+
+		//Amitigation
+		public RuleCall getAAmitigationEnumRuleCall_0_0() { return cAAmitigationEnumRuleCall_0_0; }
+
+		//'.'
+		public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+		//c=Cmitigation
+		public Assignment getCAssignment_2() { return cCAssignment_2; }
+
+		//Cmitigation
+		public RuleCall getCCmitigationEnumRuleCall_2_0() { return cCCmitigationEnumRuleCall_2_0; }
+
+		//'.'
+		public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }
+
+		//i=Imitigation
+		public Assignment getIAssignment_4() { return cIAssignment_4; }
+
+		//Imitigation
+		public RuleCall getIImitigationEnumRuleCall_4_0() { return cIImitigationEnumRuleCall_4_0; }
+
+		//'.'
+		public Keyword getFullStopKeyword_5() { return cFullStopKeyword_5; }
+
+		//d=Dmitigation
+		public Assignment getDAssignment_6() { return cDAssignment_6; }
+
+		//Dmitigation
+		public RuleCall getDDmitigationEnumRuleCall_6_0() { return cDDmitigationEnumRuleCall_6_0; }
+	}
+
+	public class FQNElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.FQN");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cColonColonKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final RuleCall cIDTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
+		
+		///*
+		// * Additional rule to refer UML elements in a Model
+		// */ FQN:
+		//	ID ('::' ID)*;
+		@Override public ParserRule getRule() { return rule; }
+
+		//ID ('::' ID)*
+		public Group getGroup() { return cGroup; }
+
+		//ID
+		public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }
+
+		//('::' ID)*
+		public Group getGroup_1() { return cGroup_1; }
+
+		//'::'
+		public Keyword getColonColonKeyword_1_0() { return cColonColonKeyword_1_0; }
+
+		//ID
+		public RuleCall getIDTerminalRuleCall_1_1() { return cIDTerminalRuleCall_1_1; }
+	}
+	
+	
+	public class FailureTypeElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.FailureType");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cNO_FAILUREEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cNO_FAILURENoFailureKeyword_0_0 = (Keyword)cNO_FAILUREEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cEARLYEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cEARLYEarlyKeyword_1_0 = (Keyword)cEARLYEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cLATEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cLATELateKeyword_2_0 = (Keyword)cLATEEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cCOMMISSIONEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cCOMMISSIONCommissionKeyword_3_0 = (Keyword)cCOMMISSIONEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cOMISSIONEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cOMISSIONOmissionKeyword_4_0 = (Keyword)cOMISSIONEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cVALUE_SUBTLEEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cVALUE_SUBTLEValueSubtleKeyword_5_0 = (Keyword)cVALUE_SUBTLEEnumLiteralDeclaration_5.eContents().get(0);
+		private final EnumLiteralDeclaration cVALUE_COARSEEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+		private final Keyword cVALUE_COARSEValueCoarseKeyword_6_0 = (Keyword)cVALUE_COARSEEnumLiteralDeclaration_6.eContents().get(0);
+		private final EnumLiteralDeclaration cWILDCARDEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
+		private final Keyword cWILDCARDWildcardKeyword_7_0 = (Keyword)cWILDCARDEnumLiteralDeclaration_7.eContents().get(0);
+		private final EnumLiteralDeclaration cVARIABLEEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
+		private final Keyword cVARIABLEVariableKeyword_8_0 = (Keyword)cVARIABLEEnumLiteralDeclaration_8.eContents().get(0);
+		
+		//enum FailureType:
+		//	NO_FAILURE='noFailure' | EARLY='early' | LATE='late' | COMMISSION='commission' | OMISSION='omission' |
+		//	VALUE_SUBTLE='valueSubtle' | VALUE_COARSE='valueCoarse' | WILDCARD="wildcard" | VARIABLE='variable';
+		public EnumRule getRule() { return rule; }
+
+		//NO_FAILURE='noFailure' | EARLY='early' | LATE='late' | COMMISSION='commission' | OMISSION='omission' |
+		//VALUE_SUBTLE='valueSubtle' | VALUE_COARSE='valueCoarse' | WILDCARD="wildcard" | VARIABLE='variable'
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//NO_FAILURE='noFailure'
+		public EnumLiteralDeclaration getNO_FAILUREEnumLiteralDeclaration_0() { return cNO_FAILUREEnumLiteralDeclaration_0; }
+
+		//'noFailure'
+		public Keyword getNO_FAILURENoFailureKeyword_0_0() { return cNO_FAILURENoFailureKeyword_0_0; }
+
+		//EARLY='early'
+		public EnumLiteralDeclaration getEARLYEnumLiteralDeclaration_1() { return cEARLYEnumLiteralDeclaration_1; }
+
+		//'early'
+		public Keyword getEARLYEarlyKeyword_1_0() { return cEARLYEarlyKeyword_1_0; }
+
+		//LATE='late'
+		public EnumLiteralDeclaration getLATEEnumLiteralDeclaration_2() { return cLATEEnumLiteralDeclaration_2; }
+
+		//'late'
+		public Keyword getLATELateKeyword_2_0() { return cLATELateKeyword_2_0; }
+
+		//COMMISSION='commission'
+		public EnumLiteralDeclaration getCOMMISSIONEnumLiteralDeclaration_3() { return cCOMMISSIONEnumLiteralDeclaration_3; }
+
+		//'commission'
+		public Keyword getCOMMISSIONCommissionKeyword_3_0() { return cCOMMISSIONCommissionKeyword_3_0; }
+
+		//OMISSION='omission'
+		public EnumLiteralDeclaration getOMISSIONEnumLiteralDeclaration_4() { return cOMISSIONEnumLiteralDeclaration_4; }
+
+		//'omission'
+		public Keyword getOMISSIONOmissionKeyword_4_0() { return cOMISSIONOmissionKeyword_4_0; }
+
+		//VALUE_SUBTLE='valueSubtle'
+		public EnumLiteralDeclaration getVALUE_SUBTLEEnumLiteralDeclaration_5() { return cVALUE_SUBTLEEnumLiteralDeclaration_5; }
+
+		//'valueSubtle'
+		public Keyword getVALUE_SUBTLEValueSubtleKeyword_5_0() { return cVALUE_SUBTLEValueSubtleKeyword_5_0; }
+
+		//VALUE_COARSE='valueCoarse'
+		public EnumLiteralDeclaration getVALUE_COARSEEnumLiteralDeclaration_6() { return cVALUE_COARSEEnumLiteralDeclaration_6; }
+
+		//'valueCoarse'
+		public Keyword getVALUE_COARSEValueCoarseKeyword_6_0() { return cVALUE_COARSEValueCoarseKeyword_6_0; }
+
+		//WILDCARD="wildcard"
+		public EnumLiteralDeclaration getWILDCARDEnumLiteralDeclaration_7() { return cWILDCARDEnumLiteralDeclaration_7; }
+
+		//"wildcard"
+		public Keyword getWILDCARDWildcardKeyword_7_0() { return cWILDCARDWildcardKeyword_7_0; }
+
+		//VARIABLE='variable'
+		public EnumLiteralDeclaration getVARIABLEEnumLiteralDeclaration_8() { return cVARIABLEEnumLiteralDeclaration_8; }
+
+		//'variable'
+		public Keyword getVARIABLEVariableKeyword_8_0() { return cVARIABLEVariableKeyword_8_0; }
+	}
+
+	public class ActualFailureTypeElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.ActualFailureType");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cEARLYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cEARLYEarlyKeyword_0_0 = (Keyword)cEARLYEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cLATEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cLATELateKeyword_1_0 = (Keyword)cLATEEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cCOMMISSIONEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cCOMMISSIONCommissionKeyword_2_0 = (Keyword)cCOMMISSIONEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cOMISSIONEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cOMISSIONOmissionKeyword_3_0 = (Keyword)cOMISSIONEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cVALUE_SUBTLEEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cVALUE_SUBTLEValueSubtleKeyword_4_0 = (Keyword)cVALUE_SUBTLEEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cVALUE_COARSEEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cVALUE_COARSEValueCoarseKeyword_5_0 = (Keyword)cVALUE_COARSEEnumLiteralDeclaration_5.eContents().get(0);
+		
+		//enum ActualFailureType returns FailureType:
+		//	EARLY="early" | LATE="late" | COMMISSION="commission" | OMISSION="omission" | VALUE_SUBTLE="valueSubtle" |
+		//	VALUE_COARSE="valueCoarse";
+		public EnumRule getRule() { return rule; }
+
+		//EARLY="early" | LATE="late" | COMMISSION="commission" | OMISSION="omission" | VALUE_SUBTLE="valueSubtle" |
+		//VALUE_COARSE="valueCoarse"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//EARLY="early"
+		public EnumLiteralDeclaration getEARLYEnumLiteralDeclaration_0() { return cEARLYEnumLiteralDeclaration_0; }
+
+		//"early"
+		public Keyword getEARLYEarlyKeyword_0_0() { return cEARLYEarlyKeyword_0_0; }
+
+		//LATE="late"
+		public EnumLiteralDeclaration getLATEEnumLiteralDeclaration_1() { return cLATEEnumLiteralDeclaration_1; }
+
+		//"late"
+		public Keyword getLATELateKeyword_1_0() { return cLATELateKeyword_1_0; }
+
+		//COMMISSION="commission"
+		public EnumLiteralDeclaration getCOMMISSIONEnumLiteralDeclaration_2() { return cCOMMISSIONEnumLiteralDeclaration_2; }
+
+		//"commission"
+		public Keyword getCOMMISSIONCommissionKeyword_2_0() { return cCOMMISSIONCommissionKeyword_2_0; }
+
+		//OMISSION="omission"
+		public EnumLiteralDeclaration getOMISSIONEnumLiteralDeclaration_3() { return cOMISSIONEnumLiteralDeclaration_3; }
+
+		//"omission"
+		public Keyword getOMISSIONOmissionKeyword_3_0() { return cOMISSIONOmissionKeyword_3_0; }
+
+		//VALUE_SUBTLE="valueSubtle"
+		public EnumLiteralDeclaration getVALUE_SUBTLEEnumLiteralDeclaration_4() { return cVALUE_SUBTLEEnumLiteralDeclaration_4; }
+
+		//"valueSubtle"
+		public Keyword getVALUE_SUBTLEValueSubtleKeyword_4_0() { return cVALUE_SUBTLEValueSubtleKeyword_4_0; }
+
+		//VALUE_COARSE="valueCoarse"
+		public EnumLiteralDeclaration getVALUE_COARSEEnumLiteralDeclaration_5() { return cVALUE_COARSEEnumLiteralDeclaration_5; }
+
+		//"valueCoarse"
+		public Keyword getVALUE_COARSEValueCoarseKeyword_5_0() { return cVALUE_COARSEValueCoarseKeyword_5_0; }
+	}
+
+	public class NoFailureTypeElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.NoFailureType");
+		private final EnumLiteralDeclaration cNO_FAILUREEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+		private final Keyword cNO_FAILURENoFailureKeyword_0 = (Keyword)cNO_FAILUREEnumLiteralDeclaration.eContents().get(0);
+		
+		//enum NoFailureType returns FailureType:
+		//	NO_FAILURE="noFailure";
+		public EnumRule getRule() { return rule; }
+
+		//NO_FAILURE="noFailure"
+		public EnumLiteralDeclaration getNO_FAILUREEnumLiteralDeclaration() { return cNO_FAILUREEnumLiteralDeclaration; }
+
+		//"noFailure"
+		public Keyword getNO_FAILURENoFailureKeyword_0() { return cNO_FAILURENoFailureKeyword_0; }
+	}
+
+	public class WildcardElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Wildcard");
+		private final EnumLiteralDeclaration cWILDCARDEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+		private final Keyword cWILDCARDWildcardKeyword_0 = (Keyword)cWILDCARDEnumLiteralDeclaration.eContents().get(0);
+		
+		//enum Wildcard returns FailureType:
+		//	WILDCARD="wildcard";
+		public EnumRule getRule() { return rule; }
+
+		//WILDCARD="wildcard"
+		public EnumLiteralDeclaration getWILDCARDEnumLiteralDeclaration() { return cWILDCARDEnumLiteralDeclaration; }
+
+		//"wildcard"
+		public Keyword getWILDCARDWildcardKeyword_0() { return cWILDCARDWildcardKeyword_0; }
+	}
+
+	public class AavoidableElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Aavoidable");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cINCOMPLETIONEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cINCOMPLETIONIncompletionKeyword_0_0 = (Keyword)cINCOMPLETIONEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cNONENoneKeyword_1_0 = (Keyword)cNONEEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cUNSPECIFIEDUnspecifiedKeyword_2_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum Aavoidable:
+		//	INCOMPLETION='incompletion' | NONE='none' | UNSPECIFIED='unspecified';
+		public EnumRule getRule() { return rule; }
+
+		//INCOMPLETION='incompletion' | NONE='none' | UNSPECIFIED='unspecified'
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//INCOMPLETION='incompletion'
+		public EnumLiteralDeclaration getINCOMPLETIONEnumLiteralDeclaration_0() { return cINCOMPLETIONEnumLiteralDeclaration_0; }
+
+		//'incompletion'
+		public Keyword getINCOMPLETIONIncompletionKeyword_0_0() { return cINCOMPLETIONIncompletionKeyword_0_0; }
+
+		//NONE='none'
+		public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_1() { return cNONEEnumLiteralDeclaration_1; }
+
+		//'none'
+		public Keyword getNONENoneKeyword_1_0() { return cNONENoneKeyword_1_0; }
+
+		//UNSPECIFIED='unspecified'
+		public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_2() { return cUNSPECIFIEDEnumLiteralDeclaration_2; }
+
+		//'unspecified'
+		public Keyword getUNSPECIFIEDUnspecifiedKeyword_2_0() { return cUNSPECIFIEDUnspecifiedKeyword_2_0; }
+	}
+
+	public class CavoidableElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Cavoidable");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cINCONSISTENCYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cINCONSISTENCYInconsistencyKeyword_0_0 = (Keyword)cINCONSISTENCYEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cNONENoneKeyword_1_0 = (Keyword)cNONEEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cUNSPECIFIEDUnspecifiedKeyword_2_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum Cavoidable:
+		//	INCONSISTENCY='inconsistency' | NONE='none' | UNSPECIFIED='unspecified';
+		public EnumRule getRule() { return rule; }
+
+		//INCONSISTENCY='inconsistency' | NONE='none' | UNSPECIFIED='unspecified'
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//INCONSISTENCY='inconsistency'
+		public EnumLiteralDeclaration getINCONSISTENCYEnumLiteralDeclaration_0() { return cINCONSISTENCYEnumLiteralDeclaration_0; }
+
+		//'inconsistency'
+		public Keyword getINCONSISTENCYInconsistencyKeyword_0_0() { return cINCONSISTENCYInconsistencyKeyword_0_0; }
+
+		//NONE='none'
+		public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_1() { return cNONEEnumLiteralDeclaration_1; }
+
+		//'none'
+		public Keyword getNONENoneKeyword_1_0() { return cNONENoneKeyword_1_0; }
+
+		//UNSPECIFIED='unspecified'
+		public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_2() { return cUNSPECIFIEDEnumLiteralDeclaration_2; }
+
+		//'unspecified'
+		public Keyword getUNSPECIFIEDUnspecifiedKeyword_2_0() { return cUNSPECIFIEDUnspecifiedKeyword_2_0; }
+	}
+
+	public class IavoidableElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Iavoidable");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cINTERFERENCEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cINTERFERENCEInterferenceKeyword_0_0 = (Keyword)cINTERFERENCEEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cNONENoneKeyword_1_0 = (Keyword)cNONEEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cUNSPECIFIEDUnspecifiedKeyword_2_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum Iavoidable:
+		//	INTERFERENCE='interference' | NONE='none' | UNSPECIFIED='unspecified';
+		public EnumRule getRule() { return rule; }
+
+		//INTERFERENCE='interference' | NONE='none' | UNSPECIFIED='unspecified'
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//INTERFERENCE='interference'
+		public EnumLiteralDeclaration getINTERFERENCEEnumLiteralDeclaration_0() { return cINTERFERENCEEnumLiteralDeclaration_0; }
+
+		//'interference'
+		public Keyword getINTERFERENCEInterferenceKeyword_0_0() { return cINTERFERENCEInterferenceKeyword_0_0; }
+
+		//NONE='none'
+		public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_1() { return cNONEEnumLiteralDeclaration_1; }
+
+		//'none'
+		public Keyword getNONENoneKeyword_1_0() { return cNONENoneKeyword_1_0; }
+
+		//UNSPECIFIED='unspecified'
+		public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_2() { return cUNSPECIFIEDEnumLiteralDeclaration_2; }
+
+		//'unspecified'
+		public Keyword getUNSPECIFIEDUnspecifiedKeyword_2_0() { return cUNSPECIFIEDUnspecifiedKeyword_2_0; }
+	}
+
+	public class DavoidableElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Davoidable");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cIMPERMANENCEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cIMPERMANENCEImpermanenceKeyword_0_0 = (Keyword)cIMPERMANENCEEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cNONENoneKeyword_1_0 = (Keyword)cNONEEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cUNSPECIFIEDUnspecifiedKeyword_2_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum Davoidable:
+		//	IMPERMANENCE='impermanence' | NONE='none' | UNSPECIFIED='unspecified';
+		public EnumRule getRule() { return rule; }
+
+		//IMPERMANENCE='impermanence' | NONE='none' | UNSPECIFIED='unspecified'
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//IMPERMANENCE='impermanence'
+		public EnumLiteralDeclaration getIMPERMANENCEEnumLiteralDeclaration_0() { return cIMPERMANENCEEnumLiteralDeclaration_0; }
+
+		//'impermanence'
+		public Keyword getIMPERMANENCEImpermanenceKeyword_0_0() { return cIMPERMANENCEImpermanenceKeyword_0_0; }
+
+		//NONE='none'
+		public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_1() { return cNONEEnumLiteralDeclaration_1; }
+
+		//'none'
+		public Keyword getNONENoneKeyword_1_0() { return cNONENoneKeyword_1_0; }
+
+		//UNSPECIFIED='unspecified'
+		public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_2() { return cUNSPECIFIEDEnumLiteralDeclaration_2; }
+
+		//'unspecified'
+		public Keyword getUNSPECIFIEDUnspecifiedKeyword_2_0() { return cUNSPECIFIEDUnspecifiedKeyword_2_0; }
+	}
+
+	public class AmitigationElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Amitigation");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cALL_OR_NOTHINGEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cALL_OR_NOTHINGAll_or_nothingKeyword_0_0 = (Keyword)cALL_OR_NOTHINGEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cALL_OR_COMPENSATIONEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cALL_OR_COMPENSATIONAll_or_compensationKeyword_1_0 = (Keyword)cALL_OR_COMPENSATIONEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cNONENoneKeyword_2_0 = (Keyword)cNONEEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cUNSPECIFIEDUnspecifiedKeyword_3_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_3.eContents().get(0);
+		
+		//enum Amitigation:
+		//	ALL_OR_NOTHING='all_or_nothing' | ALL_OR_COMPENSATION='all_or_compensation' | NONE='none' |
+		//	UNSPECIFIED='unspecified';
+		public EnumRule getRule() { return rule; }
+
+		//ALL_OR_NOTHING='all_or_nothing' | ALL_OR_COMPENSATION='all_or_compensation' | NONE='none' | UNSPECIFIED='unspecified'
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//ALL_OR_NOTHING='all_or_nothing'
+		public EnumLiteralDeclaration getALL_OR_NOTHINGEnumLiteralDeclaration_0() { return cALL_OR_NOTHINGEnumLiteralDeclaration_0; }
+
+		//'all_or_nothing'
+		public Keyword getALL_OR_NOTHINGAll_or_nothingKeyword_0_0() { return cALL_OR_NOTHINGAll_or_nothingKeyword_0_0; }
+
+		//ALL_OR_COMPENSATION='all_or_compensation'
+		public EnumLiteralDeclaration getALL_OR_COMPENSATIONEnumLiteralDeclaration_1() { return cALL_OR_COMPENSATIONEnumLiteralDeclaration_1; }
+
+		//'all_or_compensation'
+		public Keyword getALL_OR_COMPENSATIONAll_or_compensationKeyword_1_0() { return cALL_OR_COMPENSATIONAll_or_compensationKeyword_1_0; }
+
+		//NONE='none'
+		public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_2() { return cNONEEnumLiteralDeclaration_2; }
+
+		//'none'
+		public Keyword getNONENoneKeyword_2_0() { return cNONENoneKeyword_2_0; }
+
+		//UNSPECIFIED='unspecified'
+		public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_3() { return cUNSPECIFIEDEnumLiteralDeclaration_3; }
+
+		//'unspecified'
+		public Keyword getUNSPECIFIEDUnspecifiedKeyword_3_0() { return cUNSPECIFIEDUnspecifiedKeyword_3_0; }
+	}
+
+	public class CmitigationElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Cmitigation");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cFULL_CONSISTENCYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cFULL_CONSISTENCYFull_consistencyKeyword_0_0 = (Keyword)cFULL_CONSISTENCYEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cRANGE_VIOLATION_ALLOWEDRange_violation_allowedKeyword_1_0 = (Keyword)cRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cNONENoneKeyword_2_0 = (Keyword)cNONEEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cUNSPECIFIEDUnspecifiedKeyword_3_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_3.eContents().get(0);
+		
+		//enum Cmitigation:
+		//	FULL_CONSISTENCY='full_consistency' | RANGE_VIOLATION_ALLOWED='range_violation_allowed' | NONE='none' |
+		//	UNSPECIFIED='unspecified';
+		public EnumRule getRule() { return rule; }
+
+		//FULL_CONSISTENCY='full_consistency' | RANGE_VIOLATION_ALLOWED='range_violation_allowed' | NONE='none' |
+		//UNSPECIFIED='unspecified'
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//FULL_CONSISTENCY='full_consistency'
+		public EnumLiteralDeclaration getFULL_CONSISTENCYEnumLiteralDeclaration_0() { return cFULL_CONSISTENCYEnumLiteralDeclaration_0; }
+
+		//'full_consistency'
+		public Keyword getFULL_CONSISTENCYFull_consistencyKeyword_0_0() { return cFULL_CONSISTENCYFull_consistencyKeyword_0_0; }
+
+		//RANGE_VIOLATION_ALLOWED='range_violation_allowed'
+		public EnumLiteralDeclaration getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1() { return cRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1; }
+
+		//'range_violation_allowed'
+		public Keyword getRANGE_VIOLATION_ALLOWEDRange_violation_allowedKeyword_1_0() { return cRANGE_VIOLATION_ALLOWEDRange_violation_allowedKeyword_1_0; }
+
+		//NONE='none'
+		public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_2() { return cNONEEnumLiteralDeclaration_2; }
+
+		//'none'
+		public Keyword getNONENoneKeyword_2_0() { return cNONENoneKeyword_2_0; }
+
+		//UNSPECIFIED='unspecified'
+		public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_3() { return cUNSPECIFIEDEnumLiteralDeclaration_3; }
+
+		//'unspecified'
+		public Keyword getUNSPECIFIEDUnspecifiedKeyword_3_0() { return cUNSPECIFIEDUnspecifiedKeyword_3_0; }
+	}
+
+	public class ImitigationElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Imitigation");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cSERIALIZABLEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cSERIALIZABLESerializableKeyword_0_0 = (Keyword)cSERIALIZABLEEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cPORTABLE_LEVELEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cPORTABLE_LEVELPortable_levelKeyword_1_0 = (Keyword)cPORTABLE_LEVELEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cNONENoneKeyword_2_0 = (Keyword)cNONEEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cUNSPECIFIEDUnspecifiedKeyword_3_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_3.eContents().get(0);
+		
+		//enum Imitigation:
+		//	SERIALIZABLE='serializable' | PORTABLE_LEVEL='portable_level' | NONE='none' | UNSPECIFIED='unspecified';
+		public EnumRule getRule() { return rule; }
+
+		//SERIALIZABLE='serializable' | PORTABLE_LEVEL='portable_level' | NONE='none' | UNSPECIFIED='unspecified'
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//SERIALIZABLE='serializable'
+		public EnumLiteralDeclaration getSERIALIZABLEEnumLiteralDeclaration_0() { return cSERIALIZABLEEnumLiteralDeclaration_0; }
+
+		//'serializable'
+		public Keyword getSERIALIZABLESerializableKeyword_0_0() { return cSERIALIZABLESerializableKeyword_0_0; }
+
+		//PORTABLE_LEVEL='portable_level'
+		public EnumLiteralDeclaration getPORTABLE_LEVELEnumLiteralDeclaration_1() { return cPORTABLE_LEVELEnumLiteralDeclaration_1; }
+
+		//'portable_level'
+		public Keyword getPORTABLE_LEVELPortable_levelKeyword_1_0() { return cPORTABLE_LEVELPortable_levelKeyword_1_0; }
+
+		//NONE='none'
+		public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_2() { return cNONEEnumLiteralDeclaration_2; }
+
+		//'none'
+		public Keyword getNONENoneKeyword_2_0() { return cNONENoneKeyword_2_0; }
+
+		//UNSPECIFIED='unspecified'
+		public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_3() { return cUNSPECIFIEDEnumLiteralDeclaration_3; }
+
+		//'unspecified'
+		public Keyword getUNSPECIFIEDUnspecifiedKeyword_3_0() { return cUNSPECIFIEDUnspecifiedKeyword_3_0; }
+	}
+
+	public class DmitigationElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.chess.xtext.FlaDsl.Dmitigation");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cNO_LOSSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cNO_LOSSNo_lossKeyword_0_0 = (Keyword)cNO_LOSSEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cPARTIAL_LOSS_ALLOWEDPartial_loss_allowedKeyword_1_0 = (Keyword)cPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cNONENoneKeyword_2_0 = (Keyword)cNONEEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cUNSPECIFIEDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cUNSPECIFIEDUnspecifiedKeyword_3_0 = (Keyword)cUNSPECIFIEDEnumLiteralDeclaration_3.eContents().get(0);
+		
+		//enum Dmitigation:
+		//	NO_LOSS='no_loss' | PARTIAL_LOSS_ALLOWED='partial_loss_allowed' | NONE='none' | UNSPECIFIED='unspecified';
+		public EnumRule getRule() { return rule; }
+
+		//NO_LOSS='no_loss' | PARTIAL_LOSS_ALLOWED='partial_loss_allowed' | NONE='none' | UNSPECIFIED='unspecified'
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//NO_LOSS='no_loss'
+		public EnumLiteralDeclaration getNO_LOSSEnumLiteralDeclaration_0() { return cNO_LOSSEnumLiteralDeclaration_0; }
+
+		//'no_loss'
+		public Keyword getNO_LOSSNo_lossKeyword_0_0() { return cNO_LOSSNo_lossKeyword_0_0; }
+
+		//PARTIAL_LOSS_ALLOWED='partial_loss_allowed'
+		public EnumLiteralDeclaration getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1() { return cPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1; }
+
+		//'partial_loss_allowed'
+		public Keyword getPARTIAL_LOSS_ALLOWEDPartial_loss_allowedKeyword_1_0() { return cPARTIAL_LOSS_ALLOWEDPartial_loss_allowedKeyword_1_0; }
+
+		//NONE='none'
+		public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_2() { return cNONEEnumLiteralDeclaration_2; }
+
+		//'none'
+		public Keyword getNONENoneKeyword_2_0() { return cNONENoneKeyword_2_0; }
+
+		//UNSPECIFIED='unspecified'
+		public EnumLiteralDeclaration getUNSPECIFIEDEnumLiteralDeclaration_3() { return cUNSPECIFIEDEnumLiteralDeclaration_3; }
+
+		//'unspecified'
+		public Keyword getUNSPECIFIEDUnspecifiedKeyword_3_0() { return cUNSPECIFIEDUnspecifiedKeyword_3_0; }
+	}
+	
+	private final BehaviourElements pBehaviour;
+	private final ExpressionElements pExpression;
+	private final LhsElements pLhs;
+	private final RhsElements pRhs;
+	private final InputExpressionElements pInputExpression;
+	private final OutputExpressionElements pOutputExpression;
+	private final InFailureExprElements pInFailureExpr;
+	private final OutFailureExprElements pOutFailureExpr;
+	private final DefinitionsElements pDefinitions;
+	private final FailureDefinitionElements pFailureDefinition;
+	private final NoFailureDefinitionElements pNoFailureDefinition;
+	private final ComplexNofailureDefinitionElements pComplexNofailureDefinition;
+	private final WildcardDefinitionElements pWildcardDefinition;
+	private final VariableDefinitionElements pVariableDefinition;
+	private final FailureTypeElements eFailureType;
+	private final ActualFailureTypeElements eActualFailureType;
+	private final NoFailureTypeElements eNoFailureType;
+	private final WildcardElements eWildcard;
+	private final ACIDavoidableElements pACIDavoidable;
+	private final AavoidableElements eAavoidable;
+	private final CavoidableElements eCavoidable;
+	private final IavoidableElements eIavoidable;
+	private final DavoidableElements eDavoidable;
+	private final ACIDMitigationElements pACIDMitigation;
+	private final AmitigationElements eAmitigation;
+	private final CmitigationElements eCmitigation;
+	private final ImitigationElements eImitigation;
+	private final DmitigationElements eDmitigation;
+	private final FQNElements pFQN;
+	
+	private final Grammar grammar;
+
+	private final TerminalsGrammarAccess gaTerminals;
+
+	@Inject
+	public FlaDslGrammarAccess(GrammarProvider grammarProvider,
+		TerminalsGrammarAccess gaTerminals) {
+		this.grammar = internalFindGrammar(grammarProvider);
+		this.gaTerminals = gaTerminals;
+		this.pBehaviour = new BehaviourElements();
+		this.pExpression = new ExpressionElements();
+		this.pLhs = new LhsElements();
+		this.pRhs = new RhsElements();
+		this.pInputExpression = new InputExpressionElements();
+		this.pOutputExpression = new OutputExpressionElements();
+		this.pInFailureExpr = new InFailureExprElements();
+		this.pOutFailureExpr = new OutFailureExprElements();
+		this.pDefinitions = new DefinitionsElements();
+		this.pFailureDefinition = new FailureDefinitionElements();
+		this.pNoFailureDefinition = new NoFailureDefinitionElements();
+		this.pComplexNofailureDefinition = new ComplexNofailureDefinitionElements();
+		this.pWildcardDefinition = new WildcardDefinitionElements();
+		this.pVariableDefinition = new VariableDefinitionElements();
+		this.eFailureType = new FailureTypeElements();
+		this.eActualFailureType = new ActualFailureTypeElements();
+		this.eNoFailureType = new NoFailureTypeElements();
+		this.eWildcard = new WildcardElements();
+		this.pACIDavoidable = new ACIDavoidableElements();
+		this.eAavoidable = new AavoidableElements();
+		this.eCavoidable = new CavoidableElements();
+		this.eIavoidable = new IavoidableElements();
+		this.eDavoidable = new DavoidableElements();
+		this.pACIDMitigation = new ACIDMitigationElements();
+		this.eAmitigation = new AmitigationElements();
+		this.eCmitigation = new CmitigationElements();
+		this.eImitigation = new ImitigationElements();
+		this.eDmitigation = new DmitigationElements();
+		this.pFQN = new FQNElements();
+	}
+	
+	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+		Grammar grammar = grammarProvider.getGrammar(this);
+		while (grammar != null) {
+			if ("org.polarsys.chess.xtext.FlaDsl".equals(grammar.getName())) {
+				return grammar;
+			}
+			List<Grammar> grammars = grammar.getUsedGrammars();
+			if (!grammars.isEmpty()) {
+				grammar = grammars.iterator().next();
+			} else {
+				return null;
+			}
+		}
+		return grammar;
+	}
+	
+	@Override
+	public Grammar getGrammar() {
+		return grammar;
+	}
+	
+
+	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+		return gaTerminals;
+	}
+
+	
+	///*
+	// * FLA Grammar
+	// */ Behaviour:
+	//	rules+=Expression+;
+	public BehaviourElements getBehaviourAccess() {
+		return pBehaviour;
+	}
+	
+	public ParserRule getBehaviourRule() {
+		return getBehaviourAccess().getRule();
+	}
+
+	//Expression:
+	//	'FLA:' lhs=Lhs '->' rhs=Rhs ';';
+	public ExpressionElements getExpressionAccess() {
+		return pExpression;
+	}
+	
+	public ParserRule getExpressionRule() {
+		return getExpressionAccess().getRule();
+	}
+
+	//Lhs:
+	//	failures+=InputExpression (',' failures+=InputExpression)*;
+	public LhsElements getLhsAccess() {
+		return pLhs;
+	}
+	
+	public ParserRule getLhsRule() {
+		return getLhsAccess().getRule();
+	}
+
+	//Rhs:
+	//	failures+=OutputExpression (',' failures+=OutputExpression)*;
+	public RhsElements getRhsAccess() {
+		return pRhs;
+	}
+	
+	public ParserRule getRhsRule() {
+		return getRhsAccess().getRule();
+	}
+
+	//InputExpression:
+	//	(ref=[uml::Port] | "undefined") '.' failureExpr=InFailureExpr;
+	public InputExpressionElements getInputExpressionAccess() {
+		return pInputExpression;
+	}
+	
+	public ParserRule getInputExpressionRule() {
+		return getInputExpressionAccess().getRule();
+	}
+
+	//OutputExpression:
+	//	(ref=[uml::Port] | "undefined") '.' failureExpr=OutFailureExpr;
+	public OutputExpressionElements getOutputExpressionAccess() {
+		return pOutputExpression;
+	}
+	
+	public ParserRule getOutputExpressionRule() {
+		return getOutputExpressionAccess().getRule();
+	}
+
+	//InFailureExpr:
+	//	failures+=WildcardDefinition | failures+=NoFailureDefinition | failures+=FailureDefinition |
+	//	'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition;
+	public InFailureExprElements getInFailureExprAccess() {
+		return pInFailureExpr;
+	}
+	
+	public ParserRule getInFailureExprRule() {
+		return getInFailureExprAccess().getRule();
+	}
+
+	//OutFailureExpr:
+	//	failures+=NoFailureDefinition | failures+=ComplexNofailureDefinition | failures+=FailureDefinition |
+	//	'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | failures+=VariableDefinition;
+	public OutFailureExprElements getOutFailureExprAccess() {
+		return pOutFailureExpr;
+	}
+	
+	public ParserRule getOutFailureExprRule() {
+		return getOutFailureExprAccess().getRule();
+	}
+
+	//Definitions:
+	//	FailureDefinition | NoFailureDefinition | ComplexNofailureDefinition | WildcardDefinition | VariableDefinition;
+	public DefinitionsElements getDefinitionsAccess() {
+		return pDefinitions;
+	}
+	
+	public ParserRule getDefinitionsRule() {
+		return getDefinitionsAccess().getRule();
+	}
+
+	//FailureDefinition:
+	//	{FailureDefinition} type=ActualFailureType ('.' acidAvoidable=ACIDavoidable)?;
+	public FailureDefinitionElements getFailureDefinitionAccess() {
+		return pFailureDefinition;
+	}
+	
+	public ParserRule getFailureDefinitionRule() {
+		return getFailureDefinitionAccess().getRule();
+	}
+
+	//NoFailureDefinition:
+	//	{NoFailureDefinition} 'noFailure';
+	public NoFailureDefinitionElements getNoFailureDefinitionAccess() {
+		return pNoFailureDefinition;
+	}
+	
+	public ParserRule getNoFailureDefinitionRule() {
+		return getNoFailureDefinitionAccess().getRule();
+	}
+
+	//ComplexNofailureDefinition:
+	//	{NoFailureDefinition} 'noFailure' '.' acidMitigation=ACIDMitigation;
+	public ComplexNofailureDefinitionElements getComplexNofailureDefinitionAccess() {
+		return pComplexNofailureDefinition;
+	}
+	
+	public ParserRule getComplexNofailureDefinitionRule() {
+		return getComplexNofailureDefinitionAccess().getRule();
+	}
+
+	//WildcardDefinition:
+	//	{WildcardDefinition} 'wildcard';
+	public WildcardDefinitionElements getWildcardDefinitionAccess() {
+		return pWildcardDefinition;
+	}
+	
+	public ParserRule getWildcardDefinitionRule() {
+		return getWildcardDefinitionAccess().getRule();
+	}
+
+	//VariableDefinition:
+	//	{VariableDefinition} variableName=ID;
+	public VariableDefinitionElements getVariableDefinitionAccess() {
+		return pVariableDefinition;
+	}
+	
+	public ParserRule getVariableDefinitionRule() {
+		return getVariableDefinitionAccess().getRule();
+	}
+
+	//enum FailureType:
+	//	NO_FAILURE='noFailure' | EARLY='early' | LATE='late' | COMMISSION='commission' | OMISSION='omission' |
+	//	VALUE_SUBTLE='valueSubtle' | VALUE_COARSE='valueCoarse' | WILDCARD="wildcard" | VARIABLE='variable';
+	public FailureTypeElements getFailureTypeAccess() {
+		return eFailureType;
+	}
+	
+	public EnumRule getFailureTypeRule() {
+		return getFailureTypeAccess().getRule();
+	}
+
+	//enum ActualFailureType returns FailureType:
+	//	EARLY="early" | LATE="late" | COMMISSION="commission" | OMISSION="omission" | VALUE_SUBTLE="valueSubtle" |
+	//	VALUE_COARSE="valueCoarse";
+	public ActualFailureTypeElements getActualFailureTypeAccess() {
+		return eActualFailureType;
+	}
+	
+	public EnumRule getActualFailureTypeRule() {
+		return getActualFailureTypeAccess().getRule();
+	}
+
+	//enum NoFailureType returns FailureType:
+	//	NO_FAILURE="noFailure";
+	public NoFailureTypeElements getNoFailureTypeAccess() {
+		return eNoFailureType;
+	}
+	
+	public EnumRule getNoFailureTypeRule() {
+		return getNoFailureTypeAccess().getRule();
+	}
+
+	//enum Wildcard returns FailureType:
+	//	WILDCARD="wildcard";
+	public WildcardElements getWildcardAccess() {
+		return eWildcard;
+	}
+	
+	public EnumRule getWildcardRule() {
+		return getWildcardAccess().getRule();
+	}
+
+	//ACIDavoidable:
+	//	a=Aavoidable '.' c=Cavoidable '.' i=Iavoidable '.' d=Davoidable;
+	public ACIDavoidableElements getACIDavoidableAccess() {
+		return pACIDavoidable;
+	}
+	
+	public ParserRule getACIDavoidableRule() {
+		return getACIDavoidableAccess().getRule();
+	}
+
+	//enum Aavoidable:
+	//	INCOMPLETION='incompletion' | NONE='none' | UNSPECIFIED='unspecified';
+	public AavoidableElements getAavoidableAccess() {
+		return eAavoidable;
+	}
+	
+	public EnumRule getAavoidableRule() {
+		return getAavoidableAccess().getRule();
+	}
+
+	//enum Cavoidable:
+	//	INCONSISTENCY='inconsistency' | NONE='none' | UNSPECIFIED='unspecified';
+	public CavoidableElements getCavoidableAccess() {
+		return eCavoidable;
+	}
+	
+	public EnumRule getCavoidableRule() {
+		return getCavoidableAccess().getRule();
+	}
+
+	//enum Iavoidable:
+	//	INTERFERENCE='interference' | NONE='none' | UNSPECIFIED='unspecified';
+	public IavoidableElements getIavoidableAccess() {
+		return eIavoidable;
+	}
+	
+	public EnumRule getIavoidableRule() {
+		return getIavoidableAccess().getRule();
+	}
+
+	//enum Davoidable:
+	//	IMPERMANENCE='impermanence' | NONE='none' | UNSPECIFIED='unspecified';
+	public DavoidableElements getDavoidableAccess() {
+		return eDavoidable;
+	}
+	
+	public EnumRule getDavoidableRule() {
+		return getDavoidableAccess().getRule();
+	}
+
+	//ACIDMitigation:
+	//	a=Amitigation '.' c=Cmitigation '.' i=Imitigation '.' d=Dmitigation;
+	public ACIDMitigationElements getACIDMitigationAccess() {
+		return pACIDMitigation;
+	}
+	
+	public ParserRule getACIDMitigationRule() {
+		return getACIDMitigationAccess().getRule();
+	}
+
+	//enum Amitigation:
+	//	ALL_OR_NOTHING='all_or_nothing' | ALL_OR_COMPENSATION='all_or_compensation' | NONE='none' |
+	//	UNSPECIFIED='unspecified';
+	public AmitigationElements getAmitigationAccess() {
+		return eAmitigation;
+	}
+	
+	public EnumRule getAmitigationRule() {
+		return getAmitigationAccess().getRule();
+	}
+
+	//enum Cmitigation:
+	//	FULL_CONSISTENCY='full_consistency' | RANGE_VIOLATION_ALLOWED='range_violation_allowed' | NONE='none' |
+	//	UNSPECIFIED='unspecified';
+	public CmitigationElements getCmitigationAccess() {
+		return eCmitigation;
+	}
+	
+	public EnumRule getCmitigationRule() {
+		return getCmitigationAccess().getRule();
+	}
+
+	//enum Imitigation:
+	//	SERIALIZABLE='serializable' | PORTABLE_LEVEL='portable_level' | NONE='none' | UNSPECIFIED='unspecified';
+	public ImitigationElements getImitigationAccess() {
+		return eImitigation;
+	}
+	
+	public EnumRule getImitigationRule() {
+		return getImitigationAccess().getRule();
+	}
+
+	//enum Dmitigation:
+	//	NO_LOSS='no_loss' | PARTIAL_LOSS_ALLOWED='partial_loss_allowed' | NONE='none' | UNSPECIFIED='unspecified';
+	public DmitigationElements getDmitigationAccess() {
+		return eDmitigation;
+	}
+	
+	public EnumRule getDmitigationRule() {
+		return getDmitigationAccess().getRule();
+	}
+
+	///*
+	// * Additional rule to refer UML elements in a Model
+	// */ FQN:
+	//	ID ('::' ID)*;
+	public FQNElements getFQNAccess() {
+		return pFQN;
+	}
+	
+	public ParserRule getFQNRule() {
+		return getFQNAccess().getRule();
+	}
+
+	//terminal ID:
+	//	'^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*;
+	public TerminalRule getIDRule() {
+		return gaTerminals.getIDRule();
+	} 
+
+	//terminal INT returns ecore::EInt:
+	//	'0'..'9'+;
+	public TerminalRule getINTRule() {
+		return gaTerminals.getINTRule();
+	} 
+
+	//terminal STRING:
+	//	'"' ('\\' . | !('\\' | '"'))* '"' | "'" ('\\' . | !('\\' | "'"))* "'";
+	public TerminalRule getSTRINGRule() {
+		return gaTerminals.getSTRINGRule();
+	} 
+
+	//terminal ML_COMMENT:
+	//	'/*'->'*/';
+	public TerminalRule getML_COMMENTRule() {
+		return gaTerminals.getML_COMMENTRule();
+	} 
+
+	//terminal SL_COMMENT:
+	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
+	public TerminalRule getSL_COMMENTRule() {
+		return gaTerminals.getSL_COMMENTRule();
+	} 
+
+	//terminal WS:
+	//	' ' | '\t' | '\r' | '\n'+;
+	public TerminalRule getWSRule() {
+		return gaTerminals.getWSRule();
+	} 
+
+	//terminal ANY_OTHER:
+	//	.;
+	public TerminalRule getANY_OTHERRule() {
+		return gaTerminals.getANY_OTHERRule();
+	} 
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/validation/AbstractFlaDslValidator.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/validation/AbstractFlaDslValidator.java
new file mode 100644
index 0000000..b4a870a
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src-gen/org/polarsys/chess/xtext/validation/AbstractFlaDslValidator.java
@@ -0,0 +1,20 @@
+/*
+ * generated by Xtext
+ */
+package org.polarsys.chess.xtext.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.ComposedChecks;
+
+@ComposedChecks(validators= {org.eclipse.xtext.validation.ImportUriValidator.class})
+public class AbstractFlaDslValidator extends org.eclipse.xtext.validation.AbstractDeclarativeValidator {
+
+	@Override
+	protected List<EPackage> getEPackages() {
+	    List<EPackage> result = new ArrayList<EPackage>();
+	    result.add(org.polarsys.chess.xtext.flaDsl.FlaDslPackage.eINSTANCE);
+		return result;
+	}
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java
new file mode 100644
index 0000000..6af7490
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java
@@ -0,0 +1,11 @@
+/*

+ * generated by Xtext

+ */

+package org.polarsys.chess.xtext;

+

+/**

+ * Use this class to register components to be used at runtime / without the Equinox extension registry.

+ */

+public class FlaDslRuntimeModule extends org.polarsys.chess.xtext.AbstractFlaDslRuntimeModule {

+

+}

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java
new file mode 100644
index 0000000..632413a
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java
@@ -0,0 +1,16 @@
+/*

+ * generated by Xtext

+ */

+package org.polarsys.chess.xtext;

+

+/**

+ * Initialization support for running Xtext languages 

+ * without equinox extension registry

+ */

+public class FlaDslStandaloneSetup extends FlaDslStandaloneSetupGenerated{

+

+	public static void doSetup() {

+		new FlaDslStandaloneSetup().createInjectorAndDoEMFRegistration();

+	}

+}

+

diff --git a/plugins/mobius/org.polarsys.chess.mobius.feature/.project b/plugins/mobius/org.polarsys.chess.mobius.feature/.project
new file mode 100644
index 0000000..152dfeb
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.polarsys.chess.mobius.feature</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.pde.FeatureBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.pde.FeatureNature</nature>

+	</natures>

+</projectDescription>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.feature/about.html b/plugins/mobius/org.polarsys.chess.mobius.feature/about.html
new file mode 100644
index 0000000..58211cf
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.feature/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>May 28, 2019</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v20.html">http://www.eclipse.org/legal/epl-v20.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/mobius/org.polarsys.chess.mobius.feature/build.properties b/plugins/mobius/org.polarsys.chess.mobius.feature/build.properties
new file mode 100644
index 0000000..82ab19c
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml

diff --git a/plugins/mobius/org.polarsys.chess.mobius.feature/feature.xml b/plugins/mobius/org.polarsys.chess.mobius.feature/feature.xml
new file mode 100644
index 0000000..ea1fa3b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.feature/feature.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<feature

+      id="org.polarsys.chess.mobius.feature"

+      label="CHESS Mobius Feature"

+      version="1.0.0.qualifier"

+      provider-name="Intecs">

+

+   <description>

+      CHESS - Mobius Integration feature

+   </description>

+

+   <copyright>

+      Copyright (c) 2019 Intecs Solutions SpA
+This program and the accompanying materials are made
+available under the terms of the Eclipse Public License 2.0
+which is available at https://www.eclipse.org/legal/epl-2.0/
+SPDX-License-Identifier: EPL-2.0
+Contributors: 
+Intecs Solutions - Initial API and implementation

+   </copyright>

+

+   <license url="https://www.eclipse.org/legal/epl/notice.php">

+      Eclipse Foundation Software User Agreement
+November 22, 2017
+
+Usage Of Content
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.
+
+Applicable Licenses
+Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-2.0. For purposes of the EPL, &quot;Program&quot; will mean the Content.
+
+Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).
+
+Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).
+Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named &quot;plugins&quot;.
+A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with that Feature.
+Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.
+The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module including, but not limited to the following locations:
+
+The top-level (root) directory
+Plug-in and Fragment directories
+Inside Plug-ins and Fragments packaged as JARs
+Sub-directories of the directory named &quot;src&quot; of certain Plug-ins
+Feature directories
+Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature. Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in that directory.
+
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):
+
+Eclipse Public License Version 1.0 (available at http://www.eclipse.org/legal/epl-v10.html)
+Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)
+Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)
+Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)
+Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)
+Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.
+
+Use of Provisioning Technology
+The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to install, extend and update Eclipse-based products. Information about packaging Installable Software is available at http://eclipse.org/equinox/p2/repository_packaging.html (&quot;Specification&quot;).
+
+You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:
+
+A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based product.
+During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be accessed and copied to the Target Machine.
+Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.
+Cryptography
+Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check the country&apos;s laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.
+
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.

+   </license>

+

+   <plugin

+         id="org.polarsys.chess.mobius"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.polarsys.chess.mobius.preferences"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.polarsys.chess.mobius.model"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.polarsys.chess.mobius.model.edit"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.polarsys.chess.mobius.model.editor"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+</feature>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/.classpath b/plugins/mobius/org.polarsys.chess.mobius.model.edit/.classpath
new file mode 100644
index 0000000..a0c6dd9
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="src" path="src"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

+	<classpathentry kind="output" path="bin"/>

+</classpath>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/.project b/plugins/mobius/org.polarsys.chess.mobius.model.edit/.project
new file mode 100644
index 0000000..ef2f55a
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.polarsys.chess.mobius.model.edit</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ManifestBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.SchemaBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+		<nature>org.eclipse.pde.PluginNature</nature>

+	</natures>

+</projectDescription>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/META-INF/MANIFEST.MF b/plugins/mobius/org.polarsys.chess.mobius.model.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..3b329aa
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0

+Bundle-ManifestVersion: 2

+Bundle-Name: %pluginName

+Bundle-SymbolicName: org.polarsys.chess.mobius.model.edit;singleton:=true

+Bundle-Version: 1.0.0.qualifier

+Bundle-ClassPath: .

+Bundle-Activator: org.polarsys.chess.mobius.model.SAN.provider.SANEditPlugin$Implementation

+Bundle-Vendor: %providerName

+Bundle-Localization: plugin

+Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Export-Package: org.polarsys.chess.mobius.model.SAN.provider

+Require-Bundle: org.eclipse.core.runtime,

+ org.polarsys.chess.mobius.model;visibility:=reexport,

+ org.eclipse.emf.edit;visibility:=reexport

+Bundle-ActivationPolicy: lazy

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/build.properties b/plugins/mobius/org.polarsys.chess.mobius.model.edit/build.properties
new file mode 100644
index 0000000..061672e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/build.properties
@@ -0,0 +1,10 @@
+#

+

+bin.includes = .,\

+               icons/,\

+               META-INF/,\

+               plugin.xml,\

+               plugin.properties

+jars.compile.order = .

+source.. = src/

+output.. = bin/

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateActivity_placecase_ActivityPlaceCase.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateActivity_placecase_ActivityPlaceCase.gif
new file mode 100644
index 0000000..bf79eff
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateActivity_placecase_ActivityPlaceCase.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_inputGate_InputGate.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_inputGate_InputGate.gif
new file mode 100644
index 0000000..5d7a6e0
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_inputGate_InputGate.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_inputGate_OutputGate.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_inputGate_OutputGate.gif
new file mode 100644
index 0000000..72c7085
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_inputGate_OutputGate.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_instantaneousActivity_InstantaneousActivity.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_instantaneousActivity_InstantaneousActivity.gif
new file mode 100644
index 0000000..e84cfde
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_instantaneousActivity_InstantaneousActivity.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_place_Place.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_place_Place.gif
new file mode 100644
index 0000000..eeca32a
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_place_Place.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_timedActivity_TimedActivity.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_timedActivity_TimedActivity.gif
new file mode 100644
index 0000000..79edc2c
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateAtomicNode_timedActivity_TimedActivity.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_child_AtomicNode.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_child_AtomicNode.gif
new file mode 100644
index 0000000..e02bf00
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_child_AtomicNode.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_child_Join.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_child_Join.gif
new file mode 100644
index 0000000..0aa23c2
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_child_Join.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_child_Rep.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_child_Rep.gif
new file mode 100644
index 0000000..47209ba
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_child_Rep.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_stateVariables_SharedState.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_stateVariables_SharedState.gif
new file mode 100644
index 0000000..0aa23c2
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateComposedNode_stateVariables_SharedState.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateGate_place_Place.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateGate_place_Place.gif
new file mode 100644
index 0000000..eef1935
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateGate_place_Place.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateJoin_child_AtomicNode.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateJoin_child_AtomicNode.gif
new file mode 100644
index 0000000..ae50bcb
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateJoin_child_AtomicNode.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateJoin_child_Join.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateJoin_child_Join.gif
new file mode 100644
index 0000000..fff09ec
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateJoin_child_Join.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateJoin_child_Rep.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateJoin_child_Rep.gif
new file mode 100644
index 0000000..30b27aa
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateJoin_child_Rep.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateNode_globalVariable_GlobalVariable.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateNode_globalVariable_GlobalVariable.gif
new file mode 100644
index 0000000..f5e094b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateNode_globalVariable_GlobalVariable.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateRep_child_AtomicNode.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateRep_child_AtomicNode.gif
new file mode 100644
index 0000000..353f5eb
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateRep_child_AtomicNode.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateRep_child_Join.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateRep_child_Join.gif
new file mode 100644
index 0000000..0eef083
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateRep_child_Join.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateRep_child_Rep.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateRep_child_Rep.gif
new file mode 100644
index 0000000..09741e8
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateRep_child_Rep.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateSANModel_node_AtomicNode.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateSANModel_node_AtomicNode.gif
new file mode 100644
index 0000000..1076882
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateSANModel_node_AtomicNode.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateSANModel_node_Join.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateSANModel_node_Join.gif
new file mode 100644
index 0000000..4c9c973
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateSANModel_node_Join.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateSANModel_node_Rep.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateSANModel_node_Rep.gif
new file mode 100644
index 0000000..7e71d7b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/ctool16/CreateSANModel_node_Rep.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/ActivityPlaceCase.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/ActivityPlaceCase.gif
new file mode 100644
index 0000000..c673a52
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/ActivityPlaceCase.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/AtomicNode.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/AtomicNode.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/AtomicNode.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/GlobalVariable.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/GlobalVariable.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/GlobalVariable.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/GraphicalElement.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/GraphicalElement.gif
new file mode 100644
index 0000000..498364f
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/GraphicalElement.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/InputGate.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/InputGate.gif
new file mode 100644
index 0000000..7bac4fd
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/InputGate.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/InstantaneousActivity.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/InstantaneousActivity.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/InstantaneousActivity.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/Join.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/Join.gif
new file mode 100644
index 0000000..2124f3e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/Join.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/OutputGate.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/OutputGate.gif
new file mode 100644
index 0000000..134551b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/OutputGate.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/Place.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/Place.gif
new file mode 100644
index 0000000..e4bc22d
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/Place.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/Rep.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/Rep.gif
new file mode 100644
index 0000000..98b351f
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/Rep.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/SANModel.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/SANModel.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/SANModel.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/SharedState.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/SharedState.gif
new file mode 100644
index 0000000..2124f3e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/SharedState.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/TimedActivity.gif b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/TimedActivity.gif
new file mode 100644
index 0000000..739ebbf
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/icons/full/obj16/TimedActivity.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/plugin.properties b/plugins/mobius/org.polarsys.chess.mobius.model.edit/plugin.properties
new file mode 100644
index 0000000..812be57
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/plugin.properties
@@ -0,0 +1,80 @@
+#

+

+pluginName = SAN Edit Support

+providerName = www.example.org

+

+_UI_CreateChild_text = {0}

+_UI_CreateChild_text2 = {1} {0}

+_UI_CreateChild_text3 = {1}

+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature

+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.

+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.

+

+_UI_PropertyDescriptor_description = The {0} of the {1}

+

+_UI_SANModel_type = SAN Model

+_UI_NamedElement_type = Named Element

+_UI_Node_type = Node

+_UI_ComposedNode_type = Composed Node

+_UI_SharedState_type = Shared State

+_UI_Join_type = Join

+_UI_Rep_type = Rep

+_UI_AtomicNode_type = Atomic Node

+_UI_Place_type = Place

+_UI_TimedActivity_type = Timed Activity

+_UI_InstantaneousActivity_type = Instantaneous Activity

+_UI_InputGate_type = Input Gate

+_UI_OutputGate_type = Output Gate

+_UI_Activity_type = Activity

+_UI_Gate_type = Gate

+_UI_Unknown_type = Object

+

+_UI_Unknown_datatype= Value

+

+_UI_SANModel_node_feature = Node

+_UI_NamedElement_name_feature = Name

+_UI_ComposedNode_stateVariables_feature = State Variables

+_UI_SharedState_places_feature = Places

+_UI_Join_child_feature = Child

+_UI_Rep_child_feature = Child

+_UI_Rep_numbOfReps_feature = Numb Of Reps

+_UI_AtomicNode_place_feature = Place

+_UI_AtomicNode_timedActivity_feature = Timed Activity

+_UI_AtomicNode_instantaneousActivity_feature = Instantaneous Activity

+_UI_AtomicNode_inputGate_feature = Input Gate

+_UI_AtomicNode_outputGate_feature = Output Gate

+_UI_Place_activity_feature = Activity

+_UI_Place_inputGate_feature = Input Gate

+_UI_InputGate_inputPredicated_feature = Input Predicated

+_UI_InputGate_inputFunction_feature = Input Function

+_UI_InputGate_activity_feature = Activity

+_UI_OutputGate_outputFunction_feature = Output Function

+_UI_Activity_place_feature = Place

+_UI_Activity_outputGate_feature = Output Gate

+_UI_Gate_place_feature = Place

+_UI_Unknown_feature = Unspecified

+

+_UI_TimedActivity_rate_feature = Rate

+_UI_TimedActivity_timeDistributionFunction_feature = Time Distribution Function

+_UI_Activity_caseQuantity_feature = Case Quantity

+_UI_SharedState_place_feature = Place

+_UI_SharedState_sharedStates_feature = Shared States

+_UI_AtomicNode_model_feature = Model

+_UI_Place_initialState_feature = Initial State

+_UI_InstantaneousActivity_case_feature = Case

+_UI_GlobalVariable_type = Global Variable

+_UI_AtomicNode_globalVariable_feature = Global Variable

+_UI_GlobalVariable_type_feature = Type

+_UI_Activity_case_feature = Case

+_UI_NamedElement_x_feature = X

+_UI_NamedElement_y_feature = Y

+_UI_ActivityPlaceCase_type = Activity Place Case

+_UI_Activity_placecase_feature = Placecase

+_UI_ActivityPlaceCase_place_feature = Place

+_UI_ActivityPlaceCase_case_feature = Case

+_UI_GraphicalElement_type = Graphical Element

+_UI_GraphicalElement_x_feature = X

+_UI_GraphicalElement_y_feature = Y

+_UI_Primitive_type = Primitive

+_UI_Node_globalVariable_feature = Global Variable

+_UI_ComposedNode_child_feature = Child

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/plugin.xml b/plugins/mobius/org.polarsys.chess.mobius.model.edit/plugin.xml
new file mode 100644
index 0000000..2be33f4
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.0"?>

+

+<!--

+-->

+

+<plugin>

+

+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">

+      <!-- @generated SAN2 -->

+      <factory

+            uri="http://www.polarsys.org/chess/SAN"

+            class="org.polarsys.chess.mobius.model.SAN.provider.SANModelItemProviderAdapterFactory"

+            supportedTypes=

+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider

+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider

+               org.eclipse.emf.edit.provider.ITreeItemContentProvider

+               org.eclipse.emf.edit.provider.IItemLabelProvider

+               org.eclipse.emf.edit.provider.IItemPropertySource"/>

+   </extension>

+

+</plugin>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/ActivityItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/ActivityItemProvider.java
new file mode 100644
index 0000000..0927750
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/ActivityItemProvider.java
@@ -0,0 +1,206 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.ecore.EStructuralFeature;

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+import org.polarsys.chess.mobius.model.SAN.Activity;

+import org.polarsys.chess.mobius.model.SAN.SANModelFactory;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.Activity} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class ActivityItemProvider 

+	extends NamedElementItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public ActivityItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addPlacePropertyDescriptor(object);

+			addOutputGatePropertyDescriptor(object);

+			addCasePropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Place feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addPlacePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_Activity_place_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_Activity_place_feature", "_UI_Activity_type"),

+				 SANModelPackage.Literals.ACTIVITY__PLACE,

+				 true,

+				 false,

+				 true,

+				 null,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Output Gate feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addOutputGatePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_Activity_outputGate_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_Activity_outputGate_feature", "_UI_Activity_type"),

+				 SANModelPackage.Literals.ACTIVITY__OUTPUT_GATE,

+				 true,

+				 false,

+				 true,

+				 null,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Case feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addCasePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_Activity_case_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_Activity_case_feature", "_UI_Activity_type"),

+				 SANModelPackage.Literals.ACTIVITY__CASE,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {

+		if (childrenFeatures == null) {

+			super.getChildrenFeatures(object);

+			childrenFeatures.add(SANModelPackage.Literals.ACTIVITY__PLACECASE);

+		}

+		return childrenFeatures;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EStructuralFeature getChildFeature(Object object, Object child) {

+		// Check the type of the specified child object and return the proper feature to use for

+		// adding (see {@link AddCommand}) it as a child.

+

+		return super.getChildFeature(object, child);

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((Activity)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_Activity_type") :

+			getString("_UI_Activity_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(Activity.class)) {

+			case SANModelPackage.ACTIVITY__CASE:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+			case SANModelPackage.ACTIVITY__PLACECASE:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.ACTIVITY__PLACECASE,

+				 SANModelFactory.eINSTANCE.createActivityPlaceCase()));

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/ActivityPlaceCaseItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/ActivityPlaceCaseItemProvider.java
new file mode 100644
index 0000000..90fc1d7
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/ActivityPlaceCaseItemProvider.java
@@ -0,0 +1,153 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class ActivityPlaceCaseItemProvider 

+	extends GraphicalElementItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public ActivityPlaceCaseItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addPlacePropertyDescriptor(object);

+			addCasePropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Place feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addPlacePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_ActivityPlaceCase_place_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_ActivityPlaceCase_place_feature", "_UI_ActivityPlaceCase_type"),

+				 SANModelPackage.Literals.ACTIVITY_PLACE_CASE__PLACE,

+				 true,

+				 false,

+				 true,

+				 null,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Case feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addCasePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_ActivityPlaceCase_case_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_ActivityPlaceCase_case_feature", "_UI_ActivityPlaceCase_type"),

+				 SANModelPackage.Literals.ACTIVITY_PLACE_CASE__CASE,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns ActivityPlaceCase.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ActivityPlaceCase"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		ActivityPlaceCase activityPlaceCase = (ActivityPlaceCase)object;

+		return getString("_UI_ActivityPlaceCase_type") + " " + activityPlaceCase.getX();

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(ActivityPlaceCase.class)) {

+			case SANModelPackage.ACTIVITY_PLACE_CASE__CASE:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/AtomicNodeItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/AtomicNodeItemProvider.java
new file mode 100644
index 0000000..a75c07c
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/AtomicNodeItemProvider.java
@@ -0,0 +1,222 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.AtomicNode;

+import org.polarsys.chess.mobius.model.SAN.SANModelFactory;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.AtomicNode} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class AtomicNodeItemProvider extends NodeItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public AtomicNodeItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addOutputGatePropertyDescriptor(object);

+			addModelPropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Output Gate feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addOutputGatePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_AtomicNode_outputGate_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_AtomicNode_outputGate_feature", "_UI_AtomicNode_type"),

+				 SANModelPackage.Literals.ATOMIC_NODE__OUTPUT_GATE,

+				 true,

+				 false,

+				 true,

+				 null,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Model feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addModelPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_AtomicNode_model_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_AtomicNode_model_feature", "_UI_AtomicNode_type"),

+				 SANModelPackage.Literals.ATOMIC_NODE__MODEL,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {

+		if (childrenFeatures == null) {

+			super.getChildrenFeatures(object);

+			childrenFeatures.add(SANModelPackage.Literals.ATOMIC_NODE__PLACE);

+			childrenFeatures.add(SANModelPackage.Literals.ATOMIC_NODE__TIMED_ACTIVITY);

+			childrenFeatures.add(SANModelPackage.Literals.ATOMIC_NODE__INSTANTANEOUS_ACTIVITY);

+			childrenFeatures.add(SANModelPackage.Literals.ATOMIC_NODE__INPUT_GATE);

+		}

+		return childrenFeatures;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EStructuralFeature getChildFeature(Object object, Object child) {

+		// Check the type of the specified child object and return the proper feature to use for

+		// adding (see {@link AddCommand}) it as a child.

+

+		return super.getChildFeature(object, child);

+	}

+

+	/**

+	 * This returns AtomicNode.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/AtomicNode"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((AtomicNode)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_AtomicNode_type") :

+			getString("_UI_AtomicNode_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(AtomicNode.class)) {

+			case SANModelPackage.ATOMIC_NODE__MODEL:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+			case SANModelPackage.ATOMIC_NODE__PLACE:

+			case SANModelPackage.ATOMIC_NODE__TIMED_ACTIVITY:

+			case SANModelPackage.ATOMIC_NODE__INSTANTANEOUS_ACTIVITY:

+			case SANModelPackage.ATOMIC_NODE__INPUT_GATE:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.ATOMIC_NODE__PLACE,

+				 SANModelFactory.eINSTANCE.createPlace()));

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.ATOMIC_NODE__TIMED_ACTIVITY,

+				 SANModelFactory.eINSTANCE.createTimedActivity()));

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.ATOMIC_NODE__INSTANTANEOUS_ACTIVITY,

+				 SANModelFactory.eINSTANCE.createInstantaneousActivity()));

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.ATOMIC_NODE__INPUT_GATE,

+				 SANModelFactory.eINSTANCE.createInputGate()));

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.ATOMIC_NODE__INPUT_GATE,

+				 SANModelFactory.eINSTANCE.createOutputGate()));

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/ComposedNodeItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/ComposedNodeItemProvider.java
new file mode 100644
index 0000000..274e6c4
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/ComposedNodeItemProvider.java
@@ -0,0 +1,151 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.ComposedNode;

+import org.polarsys.chess.mobius.model.SAN.SANModelFactory;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.ComposedNode} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class ComposedNodeItemProvider extends NodeItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public ComposedNodeItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {

+		if (childrenFeatures == null) {

+			super.getChildrenFeatures(object);

+			childrenFeatures.add(SANModelPackage.Literals.COMPOSED_NODE__STATE_VARIABLES);

+			childrenFeatures.add(SANModelPackage.Literals.COMPOSED_NODE__CHILD);

+		}

+		return childrenFeatures;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EStructuralFeature getChildFeature(Object object, Object child) {

+		// Check the type of the specified child object and return the proper feature to use for

+		// adding (see {@link AddCommand}) it as a child.

+

+		return super.getChildFeature(object, child);

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((ComposedNode)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_ComposedNode_type") :

+			getString("_UI_ComposedNode_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(ComposedNode.class)) {

+			case SANModelPackage.COMPOSED_NODE__STATE_VARIABLES:

+			case SANModelPackage.COMPOSED_NODE__CHILD:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.COMPOSED_NODE__STATE_VARIABLES,

+				 SANModelFactory.eINSTANCE.createSharedState()));

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.COMPOSED_NODE__CHILD,

+				 SANModelFactory.eINSTANCE.createJoin()));

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.COMPOSED_NODE__CHILD,

+				 SANModelFactory.eINSTANCE.createRep()));

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.COMPOSED_NODE__CHILD,

+				 SANModelFactory.eINSTANCE.createAtomicNode()));

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/GateItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/GateItemProvider.java
new file mode 100644
index 0000000..c3921ef
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/GateItemProvider.java
@@ -0,0 +1,134 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.Gate;

+import org.polarsys.chess.mobius.model.SAN.SANModelFactory;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.Gate} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class GateItemProvider extends NamedElementItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public GateItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {

+		if (childrenFeatures == null) {

+			super.getChildrenFeatures(object);

+			childrenFeatures.add(SANModelPackage.Literals.GATE__PLACE);

+		}

+		return childrenFeatures;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EStructuralFeature getChildFeature(Object object, Object child) {

+		// Check the type of the specified child object and return the proper feature to use for

+		// adding (see {@link AddCommand}) it as a child.

+

+		return super.getChildFeature(object, child);

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((Gate)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_Gate_type") :

+			getString("_UI_Gate_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(Gate.class)) {

+			case SANModelPackage.GATE__PLACE:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.GATE__PLACE,

+				 SANModelFactory.eINSTANCE.createPlace()));

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/GlobalVariableItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/GlobalVariableItemProvider.java
new file mode 100644
index 0000000..712094e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/GlobalVariableItemProvider.java
@@ -0,0 +1,132 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.GlobalVariable;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.GlobalVariable} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class GlobalVariableItemProvider extends NamedElementItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public GlobalVariableItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addTypePropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Type feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addTypePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_GlobalVariable_type_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_GlobalVariable_type_feature", "_UI_GlobalVariable_type"),

+				 SANModelPackage.Literals.GLOBAL_VARIABLE__TYPE,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns GlobalVariable.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/GlobalVariable"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((GlobalVariable)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_GlobalVariable_type") :

+			getString("_UI_GlobalVariable_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(GlobalVariable.class)) {

+			case SANModelPackage.GLOBAL_VARIABLE__TYPE:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/GraphicalElementItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/GraphicalElementItemProvider.java
new file mode 100644
index 0000000..ce40852
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/GraphicalElementItemProvider.java
@@ -0,0 +1,180 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.common.util.ResourceLocator;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemProviderAdapter;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.GraphicalElement;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.GraphicalElement} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class GraphicalElementItemProvider 

+	extends ItemProviderAdapter

+	implements

+		IEditingDomainItemProvider,

+		IStructuredItemContentProvider,

+		ITreeItemContentProvider,

+		IItemLabelProvider,

+		IItemPropertySource {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public GraphicalElementItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addXPropertyDescriptor(object);

+			addYPropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the X feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addXPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_GraphicalElement_x_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_GraphicalElement_x_feature", "_UI_GraphicalElement_type"),

+				 SANModelPackage.Literals.GRAPHICAL_ELEMENT__X,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Y feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addYPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_GraphicalElement_y_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_GraphicalElement_y_feature", "_UI_GraphicalElement_type"),

+				 SANModelPackage.Literals.GRAPHICAL_ELEMENT__Y,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns GraphicalElement.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/GraphicalElement"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		GraphicalElement graphicalElement = (GraphicalElement)object;

+		return getString("_UI_GraphicalElement_type") + " " + graphicalElement.getX();

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(GraphicalElement.class)) {

+			case SANModelPackage.GRAPHICAL_ELEMENT__X:

+			case SANModelPackage.GRAPHICAL_ELEMENT__Y:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+	/**

+	 * Return the resource locator for this item provider's resources.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public ResourceLocator getResourceLocator() {

+		return SANEditPlugin.INSTANCE;

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/InputGateItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/InputGateItemProvider.java
new file mode 100644
index 0000000..9bfb548
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/InputGateItemProvider.java
@@ -0,0 +1,179 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.InputGate;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.InputGate} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class InputGateItemProvider extends PrimitiveItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public InputGateItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addInputPredicatedPropertyDescriptor(object);

+			addInputFunctionPropertyDescriptor(object);

+			addActivityPropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Input Predicated feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addInputPredicatedPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_InputGate_inputPredicated_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_InputGate_inputPredicated_feature", "_UI_InputGate_type"),

+				 SANModelPackage.Literals.INPUT_GATE__INPUT_PREDICATED,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Input Function feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addInputFunctionPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_InputGate_inputFunction_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_InputGate_inputFunction_feature", "_UI_InputGate_type"),

+				 SANModelPackage.Literals.INPUT_GATE__INPUT_FUNCTION,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Activity feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addActivityPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_InputGate_activity_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_InputGate_activity_feature", "_UI_InputGate_type"),

+				 SANModelPackage.Literals.INPUT_GATE__ACTIVITY,

+				 true,

+				 false,

+				 true,

+				 null,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns InputGate.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/InputGate"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((InputGate)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_InputGate_type") :

+			getString("_UI_InputGate_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(InputGate.class)) {

+			case SANModelPackage.INPUT_GATE__INPUT_PREDICATED:

+			case SANModelPackage.INPUT_GATE__INPUT_FUNCTION:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/InstantaneousActivityItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/InstantaneousActivityItemProvider.java
new file mode 100644
index 0000000..61be52a
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/InstantaneousActivityItemProvider.java
@@ -0,0 +1,97 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.polarsys.chess.mobius.model.SAN.InstantaneousActivity;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.InstantaneousActivity} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class InstantaneousActivityItemProvider extends ActivityItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public InstantaneousActivityItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This returns InstantaneousActivity.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/InstantaneousActivity"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((InstantaneousActivity)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_InstantaneousActivity_type") :

+			getString("_UI_InstantaneousActivity_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/JoinItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/JoinItemProvider.java
new file mode 100644
index 0000000..c03b012
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/JoinItemProvider.java
@@ -0,0 +1,97 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.polarsys.chess.mobius.model.SAN.Join;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.Join} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class JoinItemProvider extends ComposedNodeItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public JoinItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This returns Join.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Join"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((Join)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_Join_type") :

+			getString("_UI_Join_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/NamedElementItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/NamedElementItemProvider.java
new file mode 100644
index 0000000..fca8a7a
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/NamedElementItemProvider.java
@@ -0,0 +1,121 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.NamedElement;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.NamedElement} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class NamedElementItemProvider 

+	extends GraphicalElementItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public NamedElementItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addNamePropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Name feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addNamePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_NamedElement_name_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),

+				 SANModelPackage.Literals.NAMED_ELEMENT__NAME,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((NamedElement)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_NamedElement_type") :

+			getString("_UI_NamedElement_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(NamedElement.class)) {

+			case SANModelPackage.NAMED_ELEMENT__NAME:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/NodeItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/NodeItemProvider.java
new file mode 100644
index 0000000..73bd483
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/NodeItemProvider.java
@@ -0,0 +1,133 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+

+import org.eclipse.emf.edit.provider.ViewerNotification;

+import org.polarsys.chess.mobius.model.SAN.Node;

+import org.polarsys.chess.mobius.model.SAN.SANModelFactory;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.Node} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class NodeItemProvider extends NamedElementItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public NodeItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {

+		if (childrenFeatures == null) {

+			super.getChildrenFeatures(object);

+			childrenFeatures.add(SANModelPackage.Literals.NODE__GLOBAL_VARIABLE);

+		}

+		return childrenFeatures;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EStructuralFeature getChildFeature(Object object, Object child) {

+		// Check the type of the specified child object and return the proper feature to use for

+		// adding (see {@link AddCommand}) it as a child.

+

+		return super.getChildFeature(object, child);

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((Node)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_Node_type") :

+			getString("_UI_Node_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(Node.class)) {

+			case SANModelPackage.NODE__GLOBAL_VARIABLE:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.NODE__GLOBAL_VARIABLE,

+				 SANModelFactory.eINSTANCE.createGlobalVariable()));

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/OutputGateItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/OutputGateItemProvider.java
new file mode 100644
index 0000000..18fad40
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/OutputGateItemProvider.java
@@ -0,0 +1,132 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.OutputGate;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.OutputGate} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class OutputGateItemProvider extends InputGateItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public OutputGateItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addOutputFunctionPropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Output Function feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addOutputFunctionPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_OutputGate_outputFunction_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_OutputGate_outputFunction_feature", "_UI_OutputGate_type"),

+				 SANModelPackage.Literals.OUTPUT_GATE__OUTPUT_FUNCTION,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns OutputGate.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/OutputGate"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((OutputGate)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_OutputGate_type") :

+			getString("_UI_OutputGate_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(OutputGate.class)) {

+			case SANModelPackage.OUTPUT_GATE__OUTPUT_FUNCTION:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/PlaceItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/PlaceItemProvider.java
new file mode 100644
index 0000000..203f71e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/PlaceItemProvider.java
@@ -0,0 +1,178 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+import org.polarsys.chess.mobius.model.SAN.Place;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.Place} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class PlaceItemProvider extends PrimitiveItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public PlaceItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addActivityPropertyDescriptor(object);

+			addInputGatePropertyDescriptor(object);

+			addInitialStatePropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Activity feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addActivityPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_Place_activity_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_Place_activity_feature", "_UI_Place_type"),

+				 SANModelPackage.Literals.PLACE__ACTIVITY,

+				 true,

+				 false,

+				 true,

+				 null,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Input Gate feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addInputGatePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_Place_inputGate_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_Place_inputGate_feature", "_UI_Place_type"),

+				 SANModelPackage.Literals.PLACE__INPUT_GATE,

+				 true,

+				 false,

+				 true,

+				 null,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Initial State feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addInitialStatePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_Place_initialState_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_Place_initialState_feature", "_UI_Place_type"),

+				 SANModelPackage.Literals.PLACE__INITIAL_STATE,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns Place.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Place"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((Place)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_Place_type") :

+			getString("_UI_Place_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(Place.class)) {

+			case SANModelPackage.PLACE__INITIAL_STATE:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/PrimitiveItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/PrimitiveItemProvider.java
new file mode 100644
index 0000000..de39d13
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/PrimitiveItemProvider.java
@@ -0,0 +1,88 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+

+import org.polarsys.chess.mobius.model.SAN.Primitive;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.Primitive} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class PrimitiveItemProvider extends NamedElementItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public PrimitiveItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((Primitive)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_Primitive_type") :

+			getString("_UI_Primitive_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/RepItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/RepItemProvider.java
new file mode 100644
index 0000000..cbc92f2
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/RepItemProvider.java
@@ -0,0 +1,131 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.Rep;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.Rep} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class RepItemProvider extends ComposedNodeItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public RepItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addNumbOfRepsPropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Numb Of Reps feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addNumbOfRepsPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_Rep_numbOfReps_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_Rep_numbOfReps_feature", "_UI_Rep_type"),

+				 SANModelPackage.Literals.REP__NUMB_OF_REPS,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns Rep.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Rep"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((Rep)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_Rep_type") :

+			getString("_UI_Rep_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(Rep.class)) {

+			case SANModelPackage.REP__NUMB_OF_REPS:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SANEditPlugin.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SANEditPlugin.java
new file mode 100644
index 0000000..c1ecfda
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SANEditPlugin.java
@@ -0,0 +1,89 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+import org.eclipse.emf.common.EMFPlugin;

+

+import org.eclipse.emf.common.util.ResourceLocator;

+

+/**

+ * This is the central singleton for the SAN edit plugin.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public final class SANEditPlugin extends EMFPlugin {

+	/**

+	 * Keep track of the singleton.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public static final SANEditPlugin INSTANCE = new SANEditPlugin();

+

+	/**

+	 * Keep track of the singleton.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private static Implementation plugin;

+

+	/**

+	 * Create the instance.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANEditPlugin() {

+		super

+		  (new ResourceLocator [] {

+		   });

+	}

+

+	/**

+	 * Returns the singleton instance of the Eclipse plugin.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the singleton instance.

+	 * @generated

+	 */

+	@Override

+	public ResourceLocator getPluginResourceLocator() {

+		return plugin;

+	}

+

+	/**

+	 * Returns the singleton instance of the Eclipse plugin.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the singleton instance.

+	 * @generated

+	 */

+	public static Implementation getPlugin() {

+		return plugin;

+	}

+

+	/**

+	 * The actual implementation of the Eclipse <b>Plugin</b>.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public static class Implementation extends EclipsePlugin {

+		/**

+		 * Creates an instance.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		public Implementation() {

+			super();

+

+			// Remember the static instance.

+			//

+			plugin = this;

+		}

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SANModelItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SANModelItemProvider.java
new file mode 100644
index 0000000..43491ad
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SANModelItemProvider.java
@@ -0,0 +1,155 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+import org.polarsys.chess.mobius.model.SAN.SANModel;

+import org.polarsys.chess.mobius.model.SAN.SANModelFactory;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.SANModel} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class SANModelItemProvider extends NamedElementItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {

+		if (childrenFeatures == null) {

+			super.getChildrenFeatures(object);

+			childrenFeatures.add(SANModelPackage.Literals.SAN_MODEL__NODE);

+		}

+		return childrenFeatures;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EStructuralFeature getChildFeature(Object object, Object child) {

+		// Check the type of the specified child object and return the proper feature to use for

+		// adding (see {@link AddCommand}) it as a child.

+

+		return super.getChildFeature(object, child);

+	}

+

+	/**

+	 * This returns SANModel.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/SANModel"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((SANModel)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_SANModel_type") :

+			getString("_UI_SANModel_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(SANModel.class)) {

+			case SANModelPackage.SAN_MODEL__NODE:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.SAN_MODEL__NODE,

+				 SANModelFactory.eINSTANCE.createJoin()));

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.SAN_MODEL__NODE,

+				 SANModelFactory.eINSTANCE.createRep()));

+

+		newChildDescriptors.add

+			(createChildParameter

+				(SANModelPackage.Literals.SAN_MODEL__NODE,

+				 SANModelFactory.eINSTANCE.createAtomicNode()));

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SANModelItemProviderAdapterFactory.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SANModelItemProviderAdapterFactory.java
new file mode 100644
index 0000000..b9d06ea
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SANModelItemProviderAdapterFactory.java
@@ -0,0 +1,487 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+import java.util.ArrayList;

+import java.util.Collection;

+

+import org.eclipse.emf.common.notify.Adapter;

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.common.notify.Notifier;

+

+import org.eclipse.emf.edit.provider.ChangeNotifier;

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;

+import org.eclipse.emf.edit.provider.IChangeNotifier;

+import org.eclipse.emf.edit.provider.IDisposable;

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.INotifyChangedListener;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+

+import org.polarsys.chess.mobius.model.SAN.util.SANModelAdapterFactory;

+

+/**

+ * This is the factory that is used to provide the interfaces needed to support Viewers.

+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.

+ * The adapters also support Eclipse property sheets.

+ * Note that most of the adapters are shared among multiple instances.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class SANModelItemProviderAdapterFactory extends SANModelAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {

+	/**

+	 * This keeps track of the root adapter factory that delegates to this adapter factory.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ComposedAdapterFactory parentAdapterFactory;

+

+	/**

+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IChangeNotifier changeNotifier = new ChangeNotifier();

+

+	/**

+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<Object> supportedTypes = new ArrayList<Object>();

+

+	/**

+	 * This constructs an instance.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelItemProviderAdapterFactory() {

+		supportedTypes.add(IEditingDomainItemProvider.class);

+		supportedTypes.add(IStructuredItemContentProvider.class);

+		supportedTypes.add(ITreeItemContentProvider.class);

+		supportedTypes.add(IItemLabelProvider.class);

+		supportedTypes.add(IItemPropertySource.class);

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.SANModel} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SANModelItemProvider sanModelItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.SANModel}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createSANModelAdapter() {

+		if (sanModelItemProvider == null) {

+			sanModelItemProvider = new SANModelItemProvider(this);

+		}

+

+		return sanModelItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.SharedState} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SharedStateItemProvider sharedStateItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.SharedState}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createSharedStateAdapter() {

+		if (sharedStateItemProvider == null) {

+			sharedStateItemProvider = new SharedStateItemProvider(this);

+		}

+

+		return sharedStateItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.Join} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected JoinItemProvider joinItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.Join}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createJoinAdapter() {

+		if (joinItemProvider == null) {

+			joinItemProvider = new JoinItemProvider(this);

+		}

+

+		return joinItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.Rep} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected RepItemProvider repItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.Rep}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createRepAdapter() {

+		if (repItemProvider == null) {

+			repItemProvider = new RepItemProvider(this);

+		}

+

+		return repItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.AtomicNode} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected AtomicNodeItemProvider atomicNodeItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.AtomicNode}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createAtomicNodeAdapter() {

+		if (atomicNodeItemProvider == null) {

+			atomicNodeItemProvider = new AtomicNodeItemProvider(this);

+		}

+

+		return atomicNodeItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.Place} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected PlaceItemProvider placeItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.Place}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createPlaceAdapter() {

+		if (placeItemProvider == null) {

+			placeItemProvider = new PlaceItemProvider(this);

+		}

+

+		return placeItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.TimedActivity} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected TimedActivityItemProvider timedActivityItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.TimedActivity}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createTimedActivityAdapter() {

+		if (timedActivityItemProvider == null) {

+			timedActivityItemProvider = new TimedActivityItemProvider(this);

+		}

+

+		return timedActivityItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.InstantaneousActivity} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected InstantaneousActivityItemProvider instantaneousActivityItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.InstantaneousActivity}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createInstantaneousActivityAdapter() {

+		if (instantaneousActivityItemProvider == null) {

+			instantaneousActivityItemProvider = new InstantaneousActivityItemProvider(this);

+		}

+

+		return instantaneousActivityItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.InputGate} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected InputGateItemProvider inputGateItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.InputGate}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createInputGateAdapter() {

+		if (inputGateItemProvider == null) {

+			inputGateItemProvider = new InputGateItemProvider(this);

+		}

+

+		return inputGateItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.OutputGate} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected OutputGateItemProvider outputGateItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.OutputGate}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createOutputGateAdapter() {

+		if (outputGateItemProvider == null) {

+			outputGateItemProvider = new OutputGateItemProvider(this);

+		}

+

+		return outputGateItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.GlobalVariable} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected GlobalVariableItemProvider globalVariableItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.GlobalVariable}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createGlobalVariableAdapter() {

+		if (globalVariableItemProvider == null) {

+			globalVariableItemProvider = new GlobalVariableItemProvider(this);

+		}

+

+		return globalVariableItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ActivityPlaceCaseItemProvider activityPlaceCaseItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createActivityPlaceCaseAdapter() {

+		if (activityPlaceCaseItemProvider == null) {

+			activityPlaceCaseItemProvider = new ActivityPlaceCaseItemProvider(this);

+		}

+

+		return activityPlaceCaseItemProvider;

+	}

+

+	/**

+	 * This keeps track of the one adapter used for all {@link org.polarsys.chess.mobius.model.SAN.GraphicalElement} instances.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected GraphicalElementItemProvider graphicalElementItemProvider;

+

+	/**

+	 * This creates an adapter for a {@link org.polarsys.chess.mobius.model.SAN.GraphicalElement}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter createGraphicalElementAdapter() {

+		if (graphicalElementItemProvider == null) {

+			graphicalElementItemProvider = new GraphicalElementItemProvider(this);

+		}

+

+		return graphicalElementItemProvider;

+	}

+

+	/**

+	 * This returns the root adapter factory that contains this factory.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public ComposeableAdapterFactory getRootAdapterFactory() {

+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();

+	}

+

+	/**

+	 * This sets the composed adapter factory that contains this factory.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {

+		this.parentAdapterFactory = parentAdapterFactory;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean isFactoryForType(Object type) {

+		return supportedTypes.contains(type) || super.isFactoryForType(type);

+	}

+

+	/**

+	 * This implementation substitutes the factory itself as the key for the adapter.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Adapter adapt(Notifier notifier, Object type) {

+		return super.adapt(notifier, this);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object adapt(Object object, Object type) {

+		if (isFactoryForType(type)) {

+			Object adapter = super.adapt(object, type);

+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {

+				return adapter;

+			}

+		}

+

+		return null;

+	}

+

+	/**

+	 * This adds a listener.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void addListener(INotifyChangedListener notifyChangedListener) {

+		changeNotifier.addListener(notifyChangedListener);

+	}

+

+	/**

+	 * This removes a listener.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void removeListener(INotifyChangedListener notifyChangedListener) {

+		changeNotifier.removeListener(notifyChangedListener);

+	}

+

+	/**

+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void fireNotifyChanged(Notification notification) {

+		changeNotifier.fireNotifyChanged(notification);

+

+		if (parentAdapterFactory != null) {

+			parentAdapterFactory.fireNotifyChanged(notification);

+		}

+	}

+

+	/**

+	 * This disposes all of the item providers created by this factory. 

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void dispose() {

+		if (sanModelItemProvider != null) sanModelItemProvider.dispose();

+		if (sharedStateItemProvider != null) sharedStateItemProvider.dispose();

+		if (joinItemProvider != null) joinItemProvider.dispose();

+		if (repItemProvider != null) repItemProvider.dispose();

+		if (atomicNodeItemProvider != null) atomicNodeItemProvider.dispose();

+		if (placeItemProvider != null) placeItemProvider.dispose();

+		if (timedActivityItemProvider != null) timedActivityItemProvider.dispose();

+		if (instantaneousActivityItemProvider != null) instantaneousActivityItemProvider.dispose();

+		if (inputGateItemProvider != null) inputGateItemProvider.dispose();

+		if (outputGateItemProvider != null) outputGateItemProvider.dispose();

+		if (globalVariableItemProvider != null) globalVariableItemProvider.dispose();

+		if (activityPlaceCaseItemProvider != null) activityPlaceCaseItemProvider.dispose();

+		if (graphicalElementItemProvider != null) graphicalElementItemProvider.dispose();

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SharedStateItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SharedStateItemProvider.java
new file mode 100644
index 0000000..1976f06
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/SharedStateItemProvider.java
@@ -0,0 +1,147 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.model.SAN.SharedState;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.SharedState} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class SharedStateItemProvider extends NamedElementItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SharedStateItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addPlacePropertyDescriptor(object);

+			addSharedStatesPropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Place feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addPlacePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_SharedState_place_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_SharedState_place_feature", "_UI_SharedState_type"),

+				 SANModelPackage.Literals.SHARED_STATE__PLACE,

+				 true,

+				 false,

+				 true,

+				 null,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Shared States feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addSharedStatesPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_SharedState_sharedStates_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_SharedState_sharedStates_feature", "_UI_SharedState_type"),

+				 SANModelPackage.Literals.SHARED_STATE__SHARED_STATES,

+				 true,

+				 false,

+				 true,

+				 null,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns SharedState.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/SharedState"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((SharedState)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_SharedState_type") :

+			getString("_UI_SharedState_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/TimedActivityItemProvider.java b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/TimedActivityItemProvider.java
new file mode 100644
index 0000000..4c8a5aa
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.edit/src/org/polarsys/chess/mobius/model/SAN/provider/TimedActivityItemProvider.java
@@ -0,0 +1,155 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.model.SAN.TimedActivity;

+

+/**

+ * This is the item provider adapter for a {@link org.polarsys.chess.mobius.model.SAN.TimedActivity} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class TimedActivityItemProvider extends ActivityItemProvider {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public TimedActivityItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addRatePropertyDescriptor(object);

+			addTimeDistributionFunctionPropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Rate feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addRatePropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_TimedActivity_rate_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_TimedActivity_rate_feature", "_UI_TimedActivity_type"),

+				 SANModelPackage.Literals.TIMED_ACTIVITY__RATE,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This adds a property descriptor for the Time Distribution Function feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addTimeDistributionFunctionPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_TimedActivity_timeDistributionFunction_feature"),

+				 getString("_UI_PropertyDescriptor_description", "_UI_TimedActivity_timeDistributionFunction_feature", "_UI_TimedActivity_type"),

+				 SANModelPackage.Literals.TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns TimedActivity.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TimedActivity"));

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String getText(Object object) {

+		String label = ((TimedActivity)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_TimedActivity_type") :

+			getString("_UI_TimedActivity_type") + " " + label;

+	}

+	

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(TimedActivity.class)) {

+			case SANModelPackage.TIMED_ACTIVITY__RATE:

+			case SANModelPackage.TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/.classpath b/plugins/mobius/org.polarsys.chess.mobius.model.editor/.classpath
new file mode 100644
index 0000000..a0c6dd9
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="src" path="src"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

+	<classpathentry kind="output" path="bin"/>

+</classpath>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/.project b/plugins/mobius/org.polarsys.chess.mobius.model.editor/.project
new file mode 100644
index 0000000..ef7e672
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.polarsys.chess.mobius.model.editor</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ManifestBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.SchemaBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+		<nature>org.eclipse.pde.PluginNature</nature>

+	</natures>

+</projectDescription>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/META-INF/MANIFEST.MF b/plugins/mobius/org.polarsys.chess.mobius.model.editor/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..bbfe894
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0

+Bundle-ManifestVersion: 2

+Bundle-Name: %pluginName

+Bundle-SymbolicName: org.polarsys.chess.mobius.model.editor;singleton:=true

+Bundle-Version: 1.0.0.qualifier

+Bundle-ClassPath: .

+Bundle-Activator: org.polarsys.chess.mobius.model.SAN.presentation.SANEditorPlugin$Implementation

+Bundle-Vendor: %providerName

+Bundle-Localization: plugin

+Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Export-Package: org.polarsys.chess.mobius.model.SAN.presentation

+Require-Bundle: org.eclipse.core.runtime,

+ org.eclipse.core.resources;visibility:=reexport,

+ org.polarsys.chess.mobius.model.edit;visibility:=reexport,

+ org.eclipse.emf.ecore.xmi;visibility:=reexport,

+ org.eclipse.emf.edit.ui;visibility:=reexport,

+ org.eclipse.ui.ide;visibility:=reexport

+Bundle-ActivationPolicy: lazy

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/build.properties b/plugins/mobius/org.polarsys.chess.mobius.model.editor/build.properties
new file mode 100644
index 0000000..0f81e49
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/build.properties
@@ -0,0 +1,10 @@
+#

+

+bin.includes = .,\

+               icons/,\

+               META-INF/,\

+               plugin.xml,\

+               plugin.properties

+jars.compile.order = .

+source.. = src/

+output.. = bin

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/icons/full/obj16/SANModelModelFile.gif b/plugins/mobius/org.polarsys.chess.mobius.model.editor/icons/full/obj16/SANModelModelFile.gif
new file mode 100644
index 0000000..8b3ad80
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/icons/full/obj16/SANModelModelFile.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/icons/full/wizban/NewSANModel.gif b/plugins/mobius/org.polarsys.chess.mobius.model.editor/icons/full/wizban/NewSANModel.gif
new file mode 100644
index 0000000..33f212f
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/icons/full/wizban/NewSANModel.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/plugin.properties b/plugins/mobius/org.polarsys.chess.mobius.model.editor/plugin.properties
new file mode 100644
index 0000000..4131be6
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/plugin.properties
@@ -0,0 +1,53 @@
+#

+

+pluginName = SAN Editor

+providerName = www.example.org

+

+_UI_SANModelEditor_menu = &SANModel Editor

+

+_UI_CreateChild_menu_item = &New Child

+_UI_CreateSibling_menu_item = N&ew Sibling

+

+_UI_ShowPropertiesView_menu_item = Show &Properties View

+_UI_RefreshViewer_menu_item = &Refresh

+

+_UI_SelectionPage_label = Selection

+_UI_ParentPage_label = Parent

+_UI_ListPage_label = List

+_UI_TreePage_label = Tree

+_UI_TablePage_label = Table

+_UI_TreeWithColumnsPage_label = Tree with Columns

+_UI_ObjectColumn_label = Object

+_UI_SelfColumn_label = Self

+

+_UI_NoObjectSelected = Selected Nothing

+_UI_SingleObjectSelected = Selected Object: {0}

+_UI_MultiObjectSelected = Selected {0} Objects

+

+_UI_OpenEditorError_label = Open Editor

+

+_UI_Wizard_category = Example EMF Model Creation Wizards

+

+_UI_CreateModelError_message = Problems encountered in file "{0}"

+

+_UI_SANModelModelWizard_label = SANModel Model

+_UI_SANModelModelWizard_description = Create a new SANModel model

+

+_UI_SANModelEditor_label = SANModel Model Editor

+

+_UI_SANModelEditorFilenameDefaultBase = My

+_UI_SANModelEditorFilenameExtensions = sanmodel

+

+_UI_Wizard_label = New

+

+_WARN_FilenameExtension = The file name must end in ''.{0}''

+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}

+

+_UI_ModelObject = &Model Object

+_UI_XMLEncoding = &XML Encoding

+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1

+_UI_Wizard_initial_object_description = Select a model object to create

+

+_UI_FileConflict_label = File Conflict

+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?

+

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/plugin.xml b/plugins/mobius/org.polarsys.chess.mobius.model.editor/plugin.xml
new file mode 100644
index 0000000..a0e40d3
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/plugin.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.0"?>

+

+<!--

+-->

+

+<plugin>

+

+   <extension point="org.eclipse.ui.newWizards">

+      <!-- @generated SAN2 -->

+      <category

+            id="org.eclipse.emf.ecore.Wizard.category.ID"

+            name="%_UI_Wizard_category"/>

+      <wizard

+            id="org.polarsys.chess.mobius.model.SAN.presentation.SANModelModelWizardID"

+            name="%_UI_SANModelModelWizard_label"

+            class="org.polarsys.chess.mobius.model.SAN.presentation.SANModelModelWizard"

+            category="org.eclipse.emf.ecore.Wizard.category.ID"

+            icon="icons/full/obj16/SANModelModelFile.gif">

+         <description>%_UI_SANModelModelWizard_description</description>

+         <selection class="org.eclipse.core.resources.IResource"/>

+      </wizard>

+   </extension>

+

+   <extension point="org.eclipse.ui.editors">

+      <!-- @generated SAN2 -->

+      <editor

+            id="org.polarsys.chess.mobius.model.SAN.presentation.SANModelEditorID"

+            name="%_UI_SANModelEditor_label"

+            icon="icons/full/obj16/SANModelModelFile.gif"

+            extensions="sanmodel"

+            class="org.polarsys.chess.mobius.model.SAN.presentation.SANModelEditor"

+            contributorClass="org.polarsys.chess.mobius.model.SAN.presentation.SANModelActionBarContributor">

+      </editor>

+   </extension>

+

+</plugin>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANEditorPlugin.java b/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANEditorPlugin.java
new file mode 100644
index 0000000..800a34b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANEditorPlugin.java
@@ -0,0 +1,91 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.presentation;

+

+import org.eclipse.emf.common.EMFPlugin;

+

+import org.eclipse.emf.common.ui.EclipseUIPlugin;

+

+import org.eclipse.emf.common.util.ResourceLocator;

+

+/**

+ * This is the central singleton for the SAN editor plugin.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public final class SANEditorPlugin extends EMFPlugin {

+	/**

+	 * Keep track of the singleton.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public static final SANEditorPlugin INSTANCE = new SANEditorPlugin();

+	

+	/**

+	 * Keep track of the singleton.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private static Implementation plugin;

+

+	/**

+	 * Create the instance.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANEditorPlugin() {

+		super

+			(new ResourceLocator [] {

+			});

+	}

+

+	/**

+	 * Returns the singleton instance of the Eclipse plugin.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the singleton instance.

+	 * @generated

+	 */

+	@Override

+	public ResourceLocator getPluginResourceLocator() {

+		return plugin;

+	}

+	

+	/**

+	 * Returns the singleton instance of the Eclipse plugin.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the singleton instance.

+	 * @generated

+	 */

+	public static Implementation getPlugin() {

+		return plugin;

+	}

+	

+	/**

+	 * The actual implementation of the Eclipse <b>Plugin</b>.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public static class Implementation extends EclipseUIPlugin {

+		/**

+		 * Creates an instance.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		public Implementation() {

+			super();

+	

+			// Remember the static instance.

+			//

+			plugin = this;

+		}

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANModelActionBarContributor.java b/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANModelActionBarContributor.java
new file mode 100644
index 0000000..c9b6171
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANModelActionBarContributor.java
@@ -0,0 +1,423 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.presentation;

+

+import java.util.ArrayList;

+import java.util.Collection;

+

+import org.eclipse.emf.common.ui.viewer.IViewerProvider;

+

+import org.eclipse.emf.edit.domain.EditingDomain;

+import org.eclipse.emf.edit.domain.IEditingDomainProvider;

+

+import org.eclipse.emf.edit.ui.action.ControlAction;

+import org.eclipse.emf.edit.ui.action.CreateChildAction;

+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;

+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;

+import org.eclipse.emf.edit.ui.action.LoadResourceAction;

+import org.eclipse.emf.edit.ui.action.ValidateAction;

+

+import org.eclipse.jface.action.Action;

+import org.eclipse.jface.action.ActionContributionItem;

+import org.eclipse.jface.action.IAction;

+import org.eclipse.jface.action.IContributionItem;

+import org.eclipse.jface.action.IContributionManager;

+import org.eclipse.jface.action.IMenuListener;

+import org.eclipse.jface.action.IMenuManager;

+import org.eclipse.jface.action.IToolBarManager;

+import org.eclipse.jface.action.MenuManager;

+import org.eclipse.jface.action.Separator;

+import org.eclipse.jface.action.SubContributionItem;

+

+import org.eclipse.jface.viewers.ISelection;

+import org.eclipse.jface.viewers.ISelectionChangedListener;

+import org.eclipse.jface.viewers.ISelectionProvider;

+import org.eclipse.jface.viewers.IStructuredSelection;

+import org.eclipse.jface.viewers.SelectionChangedEvent;

+import org.eclipse.jface.viewers.Viewer;

+

+import org.eclipse.ui.IEditorPart;

+import org.eclipse.ui.PartInitException;

+

+/**

+ * This is the action bar contributor for the SANModel model editor.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class SANModelActionBarContributor

+	extends EditingDomainActionBarContributor

+	implements ISelectionChangedListener {

+	/**

+	 * This keeps track of the active editor.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IEditorPart activeEditorPart;

+

+	/**

+	 * This keeps track of the current selection provider.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ISelectionProvider selectionProvider;

+

+	/**

+	 * This action opens the Properties view.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IAction showPropertiesViewAction =

+		new Action(SANEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {

+			@Override

+			public void run() {

+				try {

+					getPage().showView("org.eclipse.ui.views.PropertySheet");

+				}

+				catch (PartInitException exception) {

+					SANEditorPlugin.INSTANCE.log(exception);

+				}

+			}

+		};

+

+	/**

+	 * This action refreshes the viewer of the current editor if the editor

+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IAction refreshViewerAction =

+		new Action(SANEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {

+			@Override

+			public boolean isEnabled() {

+				return activeEditorPart instanceof IViewerProvider;

+			}

+

+			@Override

+			public void run() {

+				if (activeEditorPart instanceof IViewerProvider) {

+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();

+					if (viewer != null) {

+						viewer.refresh();

+					}

+				}

+			}

+		};

+

+	/**

+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor

+	 * generated for the current selection by the item provider.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<IAction> createChildActions;

+

+	/**

+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IMenuManager createChildMenuManager;

+

+	/**

+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor

+	 * generated for the current selection by the item provider.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<IAction> createSiblingActions;

+

+	/**

+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IMenuManager createSiblingMenuManager;

+

+	/**

+	 * This creates an instance of the contributor.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelActionBarContributor() {

+		super(ADDITIONS_LAST_STYLE);

+		loadResourceAction = new LoadResourceAction();

+		validateAction = new ValidateAction();

+		controlAction = new ControlAction();

+	}

+

+	/**

+	 * This adds Separators for editor additions to the tool bar.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void contributeToToolBar(IToolBarManager toolBarManager) {

+		toolBarManager.add(new Separator("sanmodel-settings"));

+		toolBarManager.add(new Separator("sanmodel-additions"));

+	}

+

+	/**

+	 * This adds to the menu bar a menu and some separators for editor additions,

+	 * as well as the sub-menus for object creation items.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void contributeToMenu(IMenuManager menuManager) {

+		super.contributeToMenu(menuManager);

+

+		IMenuManager submenuManager = new MenuManager(SANEditorPlugin.INSTANCE.getString("_UI_SANModelEditor_menu"), "org.polarsys.chess.mobius.model.SANMenuID");

+		menuManager.insertAfter("additions", submenuManager);

+		submenuManager.add(new Separator("settings"));

+		submenuManager.add(new Separator("actions"));

+		submenuManager.add(new Separator("additions"));

+		submenuManager.add(new Separator("additions-end"));

+

+		// Prepare for CreateChild item addition or removal.

+		//

+		createChildMenuManager = new MenuManager(SANEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));

+		submenuManager.insertBefore("additions", createChildMenuManager);

+

+		// Prepare for CreateSibling item addition or removal.

+		//

+		createSiblingMenuManager = new MenuManager(SANEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));

+		submenuManager.insertBefore("additions", createSiblingMenuManager);

+

+		// Force an update because Eclipse hides empty menus now.

+		//

+		submenuManager.addMenuListener

+			(new IMenuListener() {

+				 public void menuAboutToShow(IMenuManager menuManager) {

+					 menuManager.updateAll(true);

+				 }

+			 });

+

+		addGlobalActions(submenuManager);

+	}

+

+	/**

+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void setActiveEditor(IEditorPart part) {

+		super.setActiveEditor(part);

+		activeEditorPart = part;

+

+		// Switch to the new selection provider.

+		//

+		if (selectionProvider != null) {

+			selectionProvider.removeSelectionChangedListener(this);

+		}

+		if (part == null) {

+			selectionProvider = null;

+		}

+		else {

+			selectionProvider = part.getSite().getSelectionProvider();

+			selectionProvider.addSelectionChangedListener(this);

+

+			// Fake a selection changed event to update the menus.

+			//

+			if (selectionProvider.getSelection() != null) {

+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));

+			}

+		}

+	}

+

+	/**

+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},

+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings

+	 * that can be added to the selected object and updating the menus accordingly.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void selectionChanged(SelectionChangedEvent event) {

+		// Remove any menu items for old selection.

+		//

+		if (createChildMenuManager != null) {

+			depopulateManager(createChildMenuManager, createChildActions);

+		}

+		if (createSiblingMenuManager != null) {

+			depopulateManager(createSiblingMenuManager, createSiblingActions);

+		}

+

+		// Query the new selection for appropriate new child/sibling descriptors

+		//

+		Collection<?> newChildDescriptors = null;

+		Collection<?> newSiblingDescriptors = null;

+

+		ISelection selection = event.getSelection();

+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {

+			Object object = ((IStructuredSelection)selection).getFirstElement();

+

+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();

+

+			newChildDescriptors = domain.getNewChildDescriptors(object, null);

+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);

+		}

+

+		// Generate actions for selection; populate and redraw the menus.

+		//

+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);

+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);

+

+		if (createChildMenuManager != null) {

+			populateManager(createChildMenuManager, createChildActions, null);

+			createChildMenuManager.update(true);

+		}

+		if (createSiblingMenuManager != null) {

+			populateManager(createSiblingMenuManager, createSiblingActions, null);

+			createSiblingMenuManager.update(true);

+		}

+	}

+

+	/**

+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,

+	 * and returns the collection of these actions.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {

+		Collection<IAction> actions = new ArrayList<IAction>();

+		if (descriptors != null) {

+			for (Object descriptor : descriptors) {

+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));

+			}

+		}

+		return actions;

+	}

+

+	/**

+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,

+	 * and returns the collection of these actions.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {

+		Collection<IAction> actions = new ArrayList<IAction>();

+		if (descriptors != null) {

+			for (Object descriptor : descriptors) {

+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));

+			}

+		}

+		return actions;

+	}

+

+	/**

+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s

+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,

+	 * by inserting them before the specified contribution item <code>contributionID</code>.

+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {

+		if (actions != null) {

+			for (IAction action : actions) {

+				if (contributionID != null) {

+					manager.insertBefore(contributionID, action);

+				}

+				else {

+					manager.add(action);

+				}

+			}

+		}

+	}

+		

+	/**

+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s

+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {

+		if (actions != null) {

+			IContributionItem[] items = manager.getItems();

+			for (int i = 0; i < items.length; i++) {

+				// Look into SubContributionItems

+				//

+				IContributionItem contributionItem = items[i];

+				while (contributionItem instanceof SubContributionItem) {

+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();

+				}

+

+				// Delete the ActionContributionItems with matching action.

+				//

+				if (contributionItem instanceof ActionContributionItem) {

+					IAction action = ((ActionContributionItem)contributionItem).getAction();

+					if (actions.contains(action)) {

+						manager.remove(contributionItem);

+					}

+				}

+			}

+		}

+	}

+

+	/**

+	 * This populates the pop-up menu before it appears.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void menuAboutToShow(IMenuManager menuManager) {

+		super.menuAboutToShow(menuManager);

+		MenuManager submenuManager = null;

+

+		submenuManager = new MenuManager(SANEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));

+		populateManager(submenuManager, createChildActions, null);

+		menuManager.insertBefore("edit", submenuManager);

+

+		submenuManager = new MenuManager(SANEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));

+		populateManager(submenuManager, createSiblingActions, null);

+		menuManager.insertBefore("edit", submenuManager);

+	}

+

+	/**

+	 * This inserts global actions before the "additions-end" separator.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void addGlobalActions(IMenuManager menuManager) {

+		menuManager.insertAfter("additions-end", new Separator("ui-actions"));

+		menuManager.insertAfter("ui-actions", showPropertiesViewAction);

+

+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		

+		menuManager.insertAfter("ui-actions", refreshViewerAction);

+

+		super.addGlobalActions(menuManager);

+	}

+

+	/**

+	 * This ensures that a delete action will clean up all references to deleted objects.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected boolean removeAllReferencesOnDelete() {

+		return true;

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANModelEditor.java b/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANModelEditor.java
new file mode 100644
index 0000000..89cba3a
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANModelEditor.java
@@ -0,0 +1,1819 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.presentation;

+

+

+import java.io.IOException;

+import java.io.InputStream;

+

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.Collections;

+import java.util.EventObject;

+import java.util.HashMap;

+import java.util.Iterator;

+import java.util.LinkedHashMap;

+import java.util.List;

+import java.util.Map;

+

+import org.eclipse.core.resources.IFile;

+import org.eclipse.core.resources.IMarker;

+import org.eclipse.core.resources.IResource;

+import org.eclipse.core.resources.IResourceChangeEvent;

+import org.eclipse.core.resources.IResourceChangeListener;

+import org.eclipse.core.resources.IResourceDelta;

+import org.eclipse.core.resources.IResourceDeltaVisitor;

+import org.eclipse.core.resources.ResourcesPlugin;

+

+import org.eclipse.core.runtime.CoreException;

+import org.eclipse.core.runtime.IPath;

+import org.eclipse.core.runtime.IProgressMonitor;

+import org.eclipse.core.runtime.NullProgressMonitor;

+

+import org.eclipse.jface.action.IMenuListener;

+import org.eclipse.jface.action.IMenuManager;

+import org.eclipse.jface.action.IStatusLineManager;

+import org.eclipse.jface.action.IToolBarManager;

+import org.eclipse.jface.action.MenuManager;

+import org.eclipse.jface.action.Separator;

+

+import org.eclipse.jface.dialogs.MessageDialog;

+import org.eclipse.jface.dialogs.ProgressMonitorDialog;

+

+import org.eclipse.jface.util.LocalSelectionTransfer;

+

+import org.eclipse.jface.viewers.ColumnWeightData;

+import org.eclipse.jface.viewers.ISelection;

+import org.eclipse.jface.viewers.ISelectionChangedListener;

+import org.eclipse.jface.viewers.ISelectionProvider;

+import org.eclipse.jface.viewers.IStructuredSelection;

+import org.eclipse.jface.viewers.ListViewer;

+import org.eclipse.jface.viewers.SelectionChangedEvent;

+import org.eclipse.jface.viewers.StructuredSelection;

+import org.eclipse.jface.viewers.StructuredViewer;

+import org.eclipse.jface.viewers.TableLayout;

+import org.eclipse.jface.viewers.TableViewer;

+import org.eclipse.jface.viewers.TreeViewer;

+import org.eclipse.jface.viewers.Viewer;

+

+import org.eclipse.swt.SWT;

+

+import org.eclipse.swt.custom.CTabFolder;

+

+import org.eclipse.swt.dnd.DND;

+import org.eclipse.swt.dnd.FileTransfer;

+import org.eclipse.swt.dnd.Transfer;

+

+import org.eclipse.swt.events.ControlAdapter;

+import org.eclipse.swt.events.ControlEvent;

+

+import org.eclipse.swt.graphics.Point;

+

+import org.eclipse.swt.layout.FillLayout;

+

+import org.eclipse.swt.widgets.Composite;

+import org.eclipse.swt.widgets.Menu;

+import org.eclipse.swt.widgets.Table;

+import org.eclipse.swt.widgets.TableColumn;

+import org.eclipse.swt.widgets.Tree;

+import org.eclipse.swt.widgets.TreeColumn;

+

+import org.eclipse.ui.IActionBars;

+import org.eclipse.ui.IEditorInput;

+import org.eclipse.ui.IEditorPart;

+import org.eclipse.ui.IEditorSite;

+import org.eclipse.ui.IPartListener;

+import org.eclipse.ui.IWorkbenchPart;

+import org.eclipse.ui.PartInitException;

+

+import org.eclipse.ui.dialogs.SaveAsDialog;

+

+import org.eclipse.ui.ide.IGotoMarker;

+

+import org.eclipse.ui.part.FileEditorInput;

+import org.eclipse.ui.part.MultiPageEditorPart;

+

+import org.eclipse.ui.views.contentoutline.ContentOutline;

+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;

+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;

+

+import org.eclipse.ui.views.properties.IPropertySheetPage;

+import org.eclipse.ui.views.properties.PropertySheet;

+import org.eclipse.ui.views.properties.PropertySheetPage;

+

+import org.eclipse.emf.common.command.BasicCommandStack;

+import org.eclipse.emf.common.command.Command;

+import org.eclipse.emf.common.command.CommandStack;

+import org.eclipse.emf.common.command.CommandStackListener;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.common.ui.MarkerHelper;

+import org.eclipse.emf.common.ui.ViewerPane;

+

+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;

+

+import org.eclipse.emf.common.ui.viewer.IViewerProvider;

+

+import org.eclipse.emf.common.util.BasicDiagnostic;

+import org.eclipse.emf.common.util.Diagnostic;

+import org.eclipse.emf.common.util.URI;

+

+

+import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.emf.ecore.resource.ResourceSet;

+

+import org.eclipse.emf.ecore.util.EContentAdapter;

+import org.eclipse.emf.ecore.util.EcoreUtil;

+

+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;

+import org.eclipse.emf.edit.domain.EditingDomain;

+import org.eclipse.emf.edit.domain.IEditingDomainProvider;

+

+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;

+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;

+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;

+

+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;

+

+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;

+

+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;

+

+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;

+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;

+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;

+

+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;

+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;

+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;

+

+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;

+import org.eclipse.emf.edit.ui.util.EditUIUtil;

+

+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;

+

+import org.polarsys.chess.mobius.model.SAN.provider.SANModelItemProviderAdapterFactory;

+

+import org.eclipse.ui.actions.WorkspaceModifyOperation;

+

+

+/**

+ * This is an example of a SANModel model editor.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class SANModelEditor

+	extends MultiPageEditorPart

+	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {

+	/**

+	 * This keeps track of the editing domain that is used to track all changes to the model.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected AdapterFactoryEditingDomain editingDomain;

+

+	/**

+	 * This is the one adapter factory used for providing views of the model.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ComposedAdapterFactory adapterFactory;

+

+	/**

+	 * This is the content outline page.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IContentOutlinePage contentOutlinePage;

+

+	/**

+	 * This is a kludge...

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IStatusLineManager contentOutlineStatusLineManager;

+

+	/**

+	 * This is the content outline page's viewer.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected TreeViewer contentOutlineViewer;

+

+	/**

+	 * This is the property sheet page.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();

+

+	/**

+	 * This is the viewer that shadows the selection in the content outline.

+	 * The parent relation must be correctly defined for this to work.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected TreeViewer selectionViewer;

+

+	/**

+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected TreeViewer parentViewer;

+

+	/**

+	 * This shows how a tree view works.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected TreeViewer treeViewer;

+

+	/**

+	 * This shows how a list view works.

+	 * A list viewer doesn't support icons.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ListViewer listViewer;

+

+	/**

+	 * This shows how a table view works.

+	 * A table can be used as a list with icons.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected TableViewer tableViewer;

+

+	/**

+	 * This shows how a tree view with columns works.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected TreeViewer treeViewerWithColumns;

+

+	/**

+	 * This keeps track of the active viewer pane, in the book.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ViewerPane currentViewerPane;

+

+	/**

+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Viewer currentViewer;

+

+	/**

+	 * This listens to which ever viewer is active.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ISelectionChangedListener selectionChangedListener;

+

+	/**

+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();

+

+	/**

+	 * This keeps track of the selection of the editor as a whole.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ISelection editorSelection = StructuredSelection.EMPTY;

+

+	/**

+	 * The MarkerHelper is responsible for creating workspace resource markers presented

+	 * in Eclipse's Problems View.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected MarkerHelper markerHelper = new EditUIMarkerHelper();

+

+	/**

+	 * This listens for when the outline becomes active

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IPartListener partListener =

+		new IPartListener() {

+			public void partActivated(IWorkbenchPart p) {

+				if (p instanceof ContentOutline) {

+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {

+						getActionBarContributor().setActiveEditor(SANModelEditor.this);

+

+						setCurrentViewer(contentOutlineViewer);

+					}

+				}

+				else if (p instanceof PropertySheet) {

+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {

+						getActionBarContributor().setActiveEditor(SANModelEditor.this);

+						handleActivate();

+					}

+				}

+				else if (p == SANModelEditor.this) {

+					handleActivate();

+				}

+			}

+			public void partBroughtToTop(IWorkbenchPart p) {

+				// Ignore.

+			}

+			public void partClosed(IWorkbenchPart p) {

+				// Ignore.

+			}

+			public void partDeactivated(IWorkbenchPart p) {

+				// Ignore.

+			}

+			public void partOpened(IWorkbenchPart p) {

+				// Ignore.

+			}

+		};

+

+	/**

+	 * Resources that have been removed since last activation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<Resource> removedResources = new ArrayList<Resource>();

+

+	/**

+	 * Resources that have been changed since last activation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<Resource> changedResources = new ArrayList<Resource>();

+

+	/**

+	 * Resources that have been saved.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<Resource> savedResources = new ArrayList<Resource>();

+

+	/**

+	 * Map to store the diagnostic associated with a resource.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();

+

+	/**

+	 * Controls whether the problem indication should be updated.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected boolean updateProblemIndication = true;

+

+	/**

+	 * Adapter used to update the problem indication when resources are demanded loaded.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected EContentAdapter problemIndicationAdapter =

+		new EContentAdapter() {

+			@Override

+			public void notifyChanged(Notification notification) {

+				if (notification.getNotifier() instanceof Resource) {

+					switch (notification.getFeatureID(Resource.class)) {

+						case Resource.RESOURCE__IS_LOADED:

+						case Resource.RESOURCE__ERRORS:

+						case Resource.RESOURCE__WARNINGS: {

+							Resource resource = (Resource)notification.getNotifier();

+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);

+							if (diagnostic.getSeverity() != Diagnostic.OK) {

+								resourceToDiagnosticMap.put(resource, diagnostic);

+							}

+							else {

+								resourceToDiagnosticMap.remove(resource);

+							}

+

+							if (updateProblemIndication) {

+								getSite().getShell().getDisplay().asyncExec

+									(new Runnable() {

+										 public void run() {

+											 updateProblemIndication();

+										 }

+									 });

+							}

+							break;

+						}

+					}

+				}

+				else {

+					super.notifyChanged(notification);

+				}

+			}

+

+			@Override

+			protected void setTarget(Resource target) {

+				basicSetTarget(target);

+			}

+

+			@Override

+			protected void unsetTarget(Resource target) {

+				basicUnsetTarget(target);

+				resourceToDiagnosticMap.remove(target);

+				if (updateProblemIndication) {

+					getSite().getShell().getDisplay().asyncExec

+						(new Runnable() {

+							 public void run() {

+								 updateProblemIndication();

+							 }

+						 });

+				}

+			}

+		};

+

+	/**

+	 * This listens for workspace changes.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IResourceChangeListener resourceChangeListener =

+		new IResourceChangeListener() {

+			public void resourceChanged(IResourceChangeEvent event) {

+				IResourceDelta delta = event.getDelta();

+				try {

+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {

+						protected ResourceSet resourceSet = editingDomain.getResourceSet();

+						protected Collection<Resource> changedResources = new ArrayList<Resource>();

+						protected Collection<Resource> removedResources = new ArrayList<Resource>();

+

+						public boolean visit(IResourceDelta delta) {

+							if (delta.getResource().getType() == IResource.FILE) {

+								if (delta.getKind() == IResourceDelta.REMOVED ||

+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {

+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);

+									if (resource != null) {

+										if (delta.getKind() == IResourceDelta.REMOVED) {

+											removedResources.add(resource);

+										}

+										else if (!savedResources.remove(resource)) {

+											changedResources.add(resource);

+										}

+									}

+								}

+								return false;

+							}

+

+							return true;

+						}

+

+						public Collection<Resource> getChangedResources() {

+							return changedResources;

+						}

+

+						public Collection<Resource> getRemovedResources() {

+							return removedResources;

+						}

+					}

+

+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();

+					delta.accept(visitor);

+

+					if (!visitor.getRemovedResources().isEmpty()) {

+						getSite().getShell().getDisplay().asyncExec

+							(new Runnable() {

+								 public void run() {

+									 removedResources.addAll(visitor.getRemovedResources());

+									 if (!isDirty()) {

+										 getSite().getPage().closeEditor(SANModelEditor.this, false);

+									 }

+								 }

+							 });

+					}

+

+					if (!visitor.getChangedResources().isEmpty()) {

+						getSite().getShell().getDisplay().asyncExec

+							(new Runnable() {

+								 public void run() {

+									 changedResources.addAll(visitor.getChangedResources());

+									 if (getSite().getPage().getActiveEditor() == SANModelEditor.this) {

+										 handleActivate();

+									 }

+								 }

+							 });

+					}

+				}

+				catch (CoreException exception) {

+					SANEditorPlugin.INSTANCE.log(exception);

+				}

+			}

+		};

+

+	/**

+	 * Handles activation of the editor or it's associated views.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void handleActivate() {

+		// Recompute the read only state.

+		//

+		if (editingDomain.getResourceToReadOnlyMap() != null) {

+		  editingDomain.getResourceToReadOnlyMap().clear();

+

+		  // Refresh any actions that may become enabled or disabled.

+		  //

+		  setSelection(getSelection());

+		}

+

+		if (!removedResources.isEmpty()) {

+			if (handleDirtyConflict()) {

+				getSite().getPage().closeEditor(SANModelEditor.this, false);

+			}

+			else {

+				removedResources.clear();

+				changedResources.clear();

+				savedResources.clear();

+			}

+		}

+		else if (!changedResources.isEmpty()) {

+			changedResources.removeAll(savedResources);

+			handleChangedResources();

+			changedResources.clear();

+			savedResources.clear();

+		}

+	}

+

+	/**

+	 * Handles what to do with changed resources on activation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void handleChangedResources() {

+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {

+			if (isDirty()) {

+				changedResources.addAll(editingDomain.getResourceSet().getResources());

+			}

+			editingDomain.getCommandStack().flush();

+

+			updateProblemIndication = false;

+			for (Resource resource : changedResources) {

+				if (resource.isLoaded()) {

+					resource.unload();

+					try {

+						resource.load(Collections.EMPTY_MAP);

+					}

+					catch (IOException exception) {

+						if (!resourceToDiagnosticMap.containsKey(resource)) {

+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));

+						}

+					}

+				}

+			}

+

+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {

+				setSelection(StructuredSelection.EMPTY);

+			}

+

+			updateProblemIndication = true;

+			updateProblemIndication();

+		}

+	}

+

+	/**

+	 * Updates the problems indication with the information described in the specified diagnostic.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void updateProblemIndication() {

+		if (updateProblemIndication) {

+			BasicDiagnostic diagnostic =

+				new BasicDiagnostic

+					(Diagnostic.OK,

+					 "org.polarsys.chess.mobius.model.editor",

+					 0,

+					 null,

+					 new Object [] { editingDomain.getResourceSet() });

+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {

+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {

+					diagnostic.add(childDiagnostic);

+				}

+			}

+

+			int lastEditorPage = getPageCount() - 1;

+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {

+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);

+				if (diagnostic.getSeverity() != Diagnostic.OK) {

+					setActivePage(lastEditorPage);

+				}

+			}

+			else if (diagnostic.getSeverity() != Diagnostic.OK) {

+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();

+				problemEditorPart.setDiagnostic(diagnostic);

+				problemEditorPart.setMarkerHelper(markerHelper);

+				try {

+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());

+					setPageText(lastEditorPage, problemEditorPart.getPartName());

+					setActivePage(lastEditorPage);

+					showTabs();

+				}

+				catch (PartInitException exception) {

+					SANEditorPlugin.INSTANCE.log(exception);

+				}

+			}

+

+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {

+				markerHelper.deleteMarkers(editingDomain.getResourceSet());

+				if (diagnostic.getSeverity() != Diagnostic.OK) {

+					try {

+						markerHelper.createMarkers(diagnostic);

+					}

+					catch (CoreException exception) {

+						SANEditorPlugin.INSTANCE.log(exception);

+					}

+				}

+			}

+		}

+	}

+

+	/**

+	 * Shows a dialog that asks if conflicting changes should be discarded.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected boolean handleDirtyConflict() {

+		return

+			MessageDialog.openQuestion

+				(getSite().getShell(),

+				 getString("_UI_FileConflict_label"),

+				 getString("_WARN_FileConflict"));

+	}

+

+	/**

+	 * This creates a model editor.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelEditor() {

+		super();

+		initializeEditingDomain();

+	}

+

+	/**

+	 * This sets up the editing domain for the model editor.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void initializeEditingDomain() {

+		// Create an adapter factory that yields item providers.

+		//

+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);

+

+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());

+		adapterFactory.addAdapterFactory(new SANModelItemProviderAdapterFactory());

+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());

+

+		// Create the command stack that will notify this editor as commands are executed.

+		//

+		BasicCommandStack commandStack = new BasicCommandStack();

+

+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.

+		//

+		commandStack.addCommandStackListener

+			(new CommandStackListener() {

+				 public void commandStackChanged(final EventObject event) {

+					 getContainer().getDisplay().asyncExec

+						 (new Runnable() {

+							  public void run() {

+								  firePropertyChange(IEditorPart.PROP_DIRTY);

+

+								  // Try to select the affected objects.

+								  //

+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();

+								  if (mostRecentCommand != null) {

+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());

+								  }

+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {

+									  PropertySheetPage propertySheetPage = i.next();

+									  if (propertySheetPage.getControl().isDisposed()) {

+										  i.remove();

+									  }

+									  else {

+										  propertySheetPage.refresh();

+									  }

+								  }

+							  }

+						  });

+				 }

+			 });

+

+		// Create the editing domain with a special command stack.

+		//

+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());

+	}

+

+	/**

+	 * This is here for the listener to be able to call it.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+			@Override

+	protected void firePropertyChange(int action) {

+		super.firePropertyChange(action);

+	}

+

+	/**

+	 * This sets the selection into whichever viewer is active.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setSelectionToViewer(Collection<?> collection) {

+		final Collection<?> theSelection = collection;

+		// Make sure it's okay.

+		//

+		if (theSelection != null && !theSelection.isEmpty()) {

+			Runnable runnable =

+				new Runnable() {

+					public void run() {

+						// Try to select the items in the current content viewer of the editor.

+						//

+						if (currentViewer != null) {

+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);

+						}

+					}

+				};

+			getSite().getShell().getDisplay().asyncExec(runnable);

+		}

+	}

+

+	/**

+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.

+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}

+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EditingDomain getEditingDomain() {

+		return editingDomain;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {

+			super(adapterFactory);

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		@Override

+		public Object [] getElements(Object object) {

+			Object parent = super.getParent(object);

+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		@Override

+		public Object [] getChildren(Object object) {

+			Object parent = super.getParent(object);

+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		@Override

+		public boolean hasChildren(Object object) {

+			Object parent = super.getParent(object);

+			return parent != null;

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		@Override

+		public Object getParent(Object object) {

+			return null;

+		}

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setCurrentViewerPane(ViewerPane viewerPane) {

+		if (currentViewerPane != viewerPane) {

+			if (currentViewerPane != null) {

+				currentViewerPane.showFocus(false);

+			}

+			currentViewerPane = viewerPane;

+		}

+		setCurrentViewer(currentViewerPane.getViewer());

+	}

+

+	/**

+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,

+	 * is the current one.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setCurrentViewer(Viewer viewer) {

+		// If it is changing...

+		//

+		if (currentViewer != viewer) {

+			if (selectionChangedListener == null) {

+				// Create the listener on demand.

+				//

+				selectionChangedListener =

+					new ISelectionChangedListener() {

+						// This just notifies those things that are affected by the section.

+						//

+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {

+							setSelection(selectionChangedEvent.getSelection());

+						}

+					};

+			}

+

+			// Stop listening to the old one.

+			//

+			if (currentViewer != null) {

+				currentViewer.removeSelectionChangedListener(selectionChangedListener);

+			}

+

+			// Start listening to the new one.

+			//

+			if (viewer != null) {

+				viewer.addSelectionChangedListener(selectionChangedListener);

+			}

+

+			// Remember it.

+			//

+			currentViewer = viewer;

+

+			// Set the editors selection based on the current viewer's selection.

+			//

+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());

+		}

+	}

+

+	/**

+	 * This returns the viewer as required by the {@link IViewerProvider} interface.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Viewer getViewer() {

+		return currentViewer;

+	}

+

+	/**

+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void createContextMenuFor(StructuredViewer viewer) {

+		MenuManager contextMenu = new MenuManager("#PopUp");

+		contextMenu.add(new Separator("additions"));

+		contextMenu.setRemoveAllWhenShown(true);

+		contextMenu.addMenuListener(this);

+		Menu menu= contextMenu.createContextMenu(viewer.getControl());

+		viewer.getControl().setMenu(menu);

+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));

+

+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;

+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };

+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));

+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));

+	}

+

+	/**

+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void createModel() {

+		URI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter());

+		Exception exception = null;

+		Resource resource = null;

+		try {

+			// Load the resource through the editing domain.

+			//

+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);

+		}

+		catch (Exception e) {

+			exception = e;

+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);

+		}

+

+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);

+		if (diagnostic.getSeverity() != Diagnostic.OK) {

+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));

+		}

+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);

+	}

+

+	/**

+	 * Returns a diagnostic describing the errors and warnings listed in the resource

+	 * and the specified exception (if any).

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {

+		boolean hasErrors = !resource.getErrors().isEmpty();

+		if (hasErrors || !resource.getWarnings().isEmpty()) {

+			BasicDiagnostic basicDiagnostic =

+				new BasicDiagnostic

+					(hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING,

+					 "org.polarsys.chess.mobius.model.editor",

+					 0,

+					 getString("_UI_CreateModelError_message", resource.getURI()),

+					 new Object [] { exception == null ? (Object)resource : exception });

+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));

+			return basicDiagnostic;

+		}

+		else if (exception != null) {

+			return

+				new BasicDiagnostic

+					(Diagnostic.ERROR,

+					 "org.polarsys.chess.mobius.model.editor",

+					 0,

+					 getString("_UI_CreateModelError_message", resource.getURI()),

+					 new Object[] { exception });

+		}

+		else {

+			return Diagnostic.OK_INSTANCE;

+		}

+	}

+

+	/**

+	 * This is the method used by the framework to install your own controls.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void createPages() {

+		// Creates the model from the editor input

+		//

+		createModel();

+

+		// Only creates the other pages if there is something that can be edited

+		//

+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {

+			// Create a page for the selection tree view.

+			//

+			{

+				ViewerPane viewerPane =

+					new ViewerPane(getSite().getPage(), SANModelEditor.this) {

+						@Override

+						public Viewer createViewer(Composite composite) {

+							Tree tree = new Tree(composite, SWT.MULTI);

+							TreeViewer newTreeViewer = new TreeViewer(tree);

+							return newTreeViewer;

+						}

+						@Override

+						public void requestActivation() {

+							super.requestActivation();

+							setCurrentViewerPane(this);

+						}

+					};

+				viewerPane.createControl(getContainer());

+

+				selectionViewer = (TreeViewer)viewerPane.getViewer();

+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

+

+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));

+				selectionViewer.setInput(editingDomain.getResourceSet());

+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);

+				viewerPane.setTitle(editingDomain.getResourceSet());

+

+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);

+

+				createContextMenuFor(selectionViewer);

+				int pageIndex = addPage(viewerPane.getControl());

+				setPageText(pageIndex, getString("_UI_SelectionPage_label"));

+			}

+

+			// Create a page for the parent tree view.

+			//

+			{

+				ViewerPane viewerPane =

+					new ViewerPane(getSite().getPage(), SANModelEditor.this) {

+						@Override

+						public Viewer createViewer(Composite composite) {

+							Tree tree = new Tree(composite, SWT.MULTI);

+							TreeViewer newTreeViewer = new TreeViewer(tree);

+							return newTreeViewer;

+						}

+						@Override

+						public void requestActivation() {

+							super.requestActivation();

+							setCurrentViewerPane(this);

+						}

+					};

+				viewerPane.createControl(getContainer());

+

+				parentViewer = (TreeViewer)viewerPane.getViewer();

+				parentViewer.setAutoExpandLevel(30);

+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));

+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));

+

+				createContextMenuFor(parentViewer);

+				int pageIndex = addPage(viewerPane.getControl());

+				setPageText(pageIndex, getString("_UI_ParentPage_label"));

+			}

+

+			// This is the page for the list viewer

+			//

+			{

+				ViewerPane viewerPane =

+					new ViewerPane(getSite().getPage(), SANModelEditor.this) {

+						@Override

+						public Viewer createViewer(Composite composite) {

+							return new ListViewer(composite);

+						}

+						@Override

+						public void requestActivation() {

+							super.requestActivation();

+							setCurrentViewerPane(this);

+						}

+					};

+				viewerPane.createControl(getContainer());

+				listViewer = (ListViewer)viewerPane.getViewer();

+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));

+

+				createContextMenuFor(listViewer);

+				int pageIndex = addPage(viewerPane.getControl());

+				setPageText(pageIndex, getString("_UI_ListPage_label"));

+			}

+

+			// This is the page for the tree viewer

+			//

+			{

+				ViewerPane viewerPane =

+					new ViewerPane(getSite().getPage(), SANModelEditor.this) {

+						@Override

+						public Viewer createViewer(Composite composite) {

+							return new TreeViewer(composite);

+						}

+						@Override

+						public void requestActivation() {

+							super.requestActivation();

+							setCurrentViewerPane(this);

+						}

+					};

+				viewerPane.createControl(getContainer());

+				treeViewer = (TreeViewer)viewerPane.getViewer();

+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));

+

+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);

+

+				createContextMenuFor(treeViewer);

+				int pageIndex = addPage(viewerPane.getControl());

+				setPageText(pageIndex, getString("_UI_TreePage_label"));

+			}

+

+			// This is the page for the table viewer.

+			//

+			{

+				ViewerPane viewerPane =

+					new ViewerPane(getSite().getPage(), SANModelEditor.this) {

+						@Override

+						public Viewer createViewer(Composite composite) {

+							return new TableViewer(composite);

+						}

+						@Override

+						public void requestActivation() {

+							super.requestActivation();

+							setCurrentViewerPane(this);

+						}

+					};

+				viewerPane.createControl(getContainer());

+				tableViewer = (TableViewer)viewerPane.getViewer();

+

+				Table table = tableViewer.getTable();

+				TableLayout layout = new TableLayout();

+				table.setLayout(layout);

+				table.setHeaderVisible(true);

+				table.setLinesVisible(true);

+

+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);

+				layout.addColumnData(new ColumnWeightData(3, 100, true));

+				objectColumn.setText(getString("_UI_ObjectColumn_label"));

+				objectColumn.setResizable(true);

+

+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);

+				layout.addColumnData(new ColumnWeightData(2, 100, true));

+				selfColumn.setText(getString("_UI_SelfColumn_label"));

+				selfColumn.setResizable(true);

+

+				tableViewer.setColumnProperties(new String [] {"a", "b"});

+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));

+

+				createContextMenuFor(tableViewer);

+				int pageIndex = addPage(viewerPane.getControl());

+				setPageText(pageIndex, getString("_UI_TablePage_label"));

+			}

+

+			// This is the page for the table tree viewer.

+			//

+			{

+				ViewerPane viewerPane =

+					new ViewerPane(getSite().getPage(), SANModelEditor.this) {

+						@Override

+						public Viewer createViewer(Composite composite) {

+							return new TreeViewer(composite);

+						}

+						@Override

+						public void requestActivation() {

+							super.requestActivation();

+							setCurrentViewerPane(this);

+						}

+					};

+				viewerPane.createControl(getContainer());

+

+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();

+

+				Tree tree = treeViewerWithColumns.getTree();

+				tree.setLayoutData(new FillLayout());

+				tree.setHeaderVisible(true);

+				tree.setLinesVisible(true);

+

+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);

+				objectColumn.setText(getString("_UI_ObjectColumn_label"));

+				objectColumn.setResizable(true);

+				objectColumn.setWidth(250);

+

+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);

+				selfColumn.setText(getString("_UI_SelfColumn_label"));

+				selfColumn.setResizable(true);

+				selfColumn.setWidth(200);

+

+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});

+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));

+

+				createContextMenuFor(treeViewerWithColumns);

+				int pageIndex = addPage(viewerPane.getControl());

+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));

+			}

+

+			getSite().getShell().getDisplay().asyncExec

+				(new Runnable() {

+					 public void run() {

+						 setActivePage(0);

+					 }

+				 });

+		}

+

+		// Ensures that this editor will only display the page's tab

+		// area if there are more than one page

+		//

+		getContainer().addControlListener

+			(new ControlAdapter() {

+				boolean guard = false;

+				@Override

+				public void controlResized(ControlEvent event) {

+					if (!guard) {

+						guard = true;

+						hideTabs();

+						guard = false;

+					}

+				}

+			 });

+

+		getSite().getShell().getDisplay().asyncExec

+			(new Runnable() {

+				 public void run() {

+					 updateProblemIndication();

+				 }

+			 });

+	}

+

+	/**

+	 * If there is just one page in the multi-page editor part,

+	 * this hides the single tab at the bottom.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void hideTabs() {

+		if (getPageCount() <= 1) {

+			setPageText(0, "");

+			if (getContainer() instanceof CTabFolder) {

+				((CTabFolder)getContainer()).setTabHeight(1);

+				Point point = getContainer().getSize();

+				getContainer().setSize(point.x, point.y + 6);

+			}

+		}

+	}

+

+	/**

+	 * If there is more than one page in the multi-page editor part,

+	 * this shows the tabs at the bottom.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void showTabs() {

+		if (getPageCount() > 1) {

+			setPageText(0, getString("_UI_SelectionPage_label"));

+			if (getContainer() instanceof CTabFolder) {

+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);

+				Point point = getContainer().getSize();

+				getContainer().setSize(point.x, point.y - 6);

+			}

+		}

+	}

+

+	/**

+	 * This is used to track the active viewer.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected void pageChange(int pageIndex) {

+		super.pageChange(pageIndex);

+

+		if (contentOutlinePage != null) {

+			handleContentOutlineSelection(contentOutlinePage.getSelection());

+		}

+	}

+

+	/**

+	 * This is how the framework determines which interfaces we implement.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("rawtypes")

+	@Override

+	public Object getAdapter(Class key) {

+		if (key.equals(IContentOutlinePage.class)) {

+			return showOutlineView() ? getContentOutlinePage() : null;

+		}

+		else if (key.equals(IPropertySheetPage.class)) {

+			return getPropertySheetPage();

+		}

+		else if (key.equals(IGotoMarker.class)) {

+			return this;

+		}

+		else {

+			return super.getAdapter(key);

+		}

+	}

+

+	/**

+	 * This accesses a cached version of the content outliner.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public IContentOutlinePage getContentOutlinePage() {

+		if (contentOutlinePage == null) {

+			// The content outline is just a tree.

+			//

+			class MyContentOutlinePage extends ContentOutlinePage {

+				@Override

+				public void createControl(Composite parent) {

+					super.createControl(parent);

+					contentOutlineViewer = getTreeViewer();

+					contentOutlineViewer.addSelectionChangedListener(this);

+

+					// Set up the tree viewer.

+					//

+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));

+					contentOutlineViewer.setInput(editingDomain.getResourceSet());

+

+					// Make sure our popups work.

+					//

+					createContextMenuFor(contentOutlineViewer);

+

+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {

+					  // Select the root object in the view.

+					  //

+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);

+					}

+				}

+

+				@Override

+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {

+					super.makeContributions(menuManager, toolBarManager, statusLineManager);

+					contentOutlineStatusLineManager = statusLineManager;

+				}

+

+				@Override

+				public void setActionBars(IActionBars actionBars) {

+					super.setActionBars(actionBars);

+					getActionBarContributor().shareGlobalActions(this, actionBars);

+				}

+			}

+

+			contentOutlinePage = new MyContentOutlinePage();

+

+			// Listen to selection so that we can handle it is a special way.

+			//

+			contentOutlinePage.addSelectionChangedListener

+				(new ISelectionChangedListener() {

+					 // This ensures that we handle selections correctly.

+					 //

+					 public void selectionChanged(SelectionChangedEvent event) {

+						 handleContentOutlineSelection(event.getSelection());

+					 }

+				 });

+		}

+

+		return contentOutlinePage;

+	}

+

+	/**

+	 * This accesses a cached version of the property sheet.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public IPropertySheetPage getPropertySheetPage() {

+		PropertySheetPage propertySheetPage =

+			new ExtendedPropertySheetPage(editingDomain) {

+				@Override

+				public void setSelectionToViewer(List<?> selection) {

+					SANModelEditor.this.setSelectionToViewer(selection);

+					SANModelEditor.this.setFocus();

+				}

+

+				@Override

+				public void setActionBars(IActionBars actionBars) {

+					super.setActionBars(actionBars);

+					getActionBarContributor().shareGlobalActions(this, actionBars);

+				}

+			};

+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));

+		propertySheetPages.add(propertySheetPage);

+

+		return propertySheetPage;

+	}

+

+	/**

+	 * This deals with how we want selection in the outliner to affect the other views.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void handleContentOutlineSelection(ISelection selection) {

+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {

+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();

+			if (selectedElements.hasNext()) {

+				// Get the first selected element.

+				//

+				Object selectedElement = selectedElements.next();

+

+				// If it's the selection viewer, then we want it to select the same selection as this selection.

+				//

+				if (currentViewerPane.getViewer() == selectionViewer) {

+					ArrayList<Object> selectionList = new ArrayList<Object>();

+					selectionList.add(selectedElement);

+					while (selectedElements.hasNext()) {

+						selectionList.add(selectedElements.next());

+					}

+

+					// Set the selection to the widget.

+					//

+					selectionViewer.setSelection(new StructuredSelection(selectionList));

+				}

+				else {

+					// Set the input to the widget.

+					//

+					if (currentViewerPane.getViewer().getInput() != selectedElement) {

+						currentViewerPane.getViewer().setInput(selectedElement);

+						currentViewerPane.setTitle(selectedElement);

+					}

+				}

+			}

+		}

+	}

+

+	/**

+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean isDirty() {

+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();

+	}

+

+	/**

+	 * This is for implementing {@link IEditorPart} and simply saves the model file.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void doSave(IProgressMonitor progressMonitor) {

+		// Save only resources that have actually changed.

+		//

+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();

+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);

+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);

+

+		// Do the work within an operation because this is a long running activity that modifies the workbench.

+		//

+		WorkspaceModifyOperation operation =

+			new WorkspaceModifyOperation() {

+				// This is the method that gets invoked when the operation runs.

+				//

+				@Override

+				public void execute(IProgressMonitor monitor) {

+					// Save the resources to the file system.

+					//

+					boolean first = true;

+					for (Resource resource : editingDomain.getResourceSet().getResources()) {

+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {

+							try {

+								long timeStamp = resource.getTimeStamp();

+								resource.save(saveOptions);

+								if (resource.getTimeStamp() != timeStamp) {

+									savedResources.add(resource);

+								}

+							}

+							catch (Exception exception) {

+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));

+							}

+							first = false;

+						}

+					}

+				}

+			};

+

+		updateProblemIndication = false;

+		try {

+			// This runs the options, and shows progress.

+			//

+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);

+

+			// Refresh the necessary state.

+			//

+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();

+			firePropertyChange(IEditorPart.PROP_DIRTY);

+		}

+		catch (Exception exception) {

+			// Something went wrong that shouldn't.

+			//

+			SANEditorPlugin.INSTANCE.log(exception);

+		}

+		updateProblemIndication = true;

+		updateProblemIndication();

+	}

+

+	/**

+	 * This returns whether something has been persisted to the URI of the specified resource.

+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected boolean isPersisted(Resource resource) {

+		boolean result = false;

+		try {

+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());

+			if (stream != null) {

+				result = true;

+				stream.close();

+			}

+		}

+		catch (IOException e) {

+			// Ignore

+		}

+		return result;

+	}

+

+	/**

+	 * This always returns true because it is not currently supported.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean isSaveAsAllowed() {

+		return true;

+	}

+

+	/**

+	 * This also changes the editor's input.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void doSaveAs() {

+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());

+		saveAsDialog.open();

+		IPath path = saveAsDialog.getResult();

+		if (path != null) {

+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);

+			if (file != null) {

+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));

+			}

+		}

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void doSaveAs(URI uri, IEditorInput editorInput) {

+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);

+		setInputWithNotify(editorInput);

+		setPartName(editorInput.getName());

+		IProgressMonitor progressMonitor =

+			getActionBars().getStatusLineManager() != null ?

+				getActionBars().getStatusLineManager().getProgressMonitor() :

+				new NullProgressMonitor();

+		doSave(progressMonitor);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void gotoMarker(IMarker marker) {

+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);

+		if (!targetObjects.isEmpty()) {

+			setSelectionToViewer(targetObjects);

+		}

+	}

+

+	/**

+	 * This is called during startup.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void init(IEditorSite site, IEditorInput editorInput) {

+		setSite(site);

+		setInputWithNotify(editorInput);

+		setPartName(editorInput.getName());

+		site.setSelectionProvider(this);

+		site.getPage().addPartListener(partListener);

+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void setFocus() {

+		if (currentViewerPane != null) {

+			currentViewerPane.setFocus();

+		}

+		else {

+			getControl(getActivePage()).setFocus();

+		}

+	}

+

+	/**

+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void addSelectionChangedListener(ISelectionChangedListener listener) {

+		selectionChangedListeners.add(listener);

+	}

+

+	/**

+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {

+		selectionChangedListeners.remove(listener);

+	}

+

+	/**

+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public ISelection getSelection() {

+		return editorSelection;

+	}

+

+	/**

+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.

+	 * Calling this result will notify the listeners.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setSelection(ISelection selection) {

+		editorSelection = selection;

+

+		for (ISelectionChangedListener listener : selectionChangedListeners) {

+			listener.selectionChanged(new SelectionChangedEvent(this, selection));

+		}

+		setStatusLineManager(selection);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setStatusLineManager(ISelection selection) {

+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?

+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();

+

+		if (statusLineManager != null) {

+			if (selection instanceof IStructuredSelection) {

+				Collection<?> collection = ((IStructuredSelection)selection).toList();

+				switch (collection.size()) {

+					case 0: {

+						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));

+						break;

+					}

+					case 1: {

+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());

+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));

+						break;

+					}

+					default: {

+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));

+						break;

+					}

+				}

+			}

+			else {

+				statusLineManager.setMessage("");

+			}

+		}

+	}

+

+	/**

+	 * This looks up a string in the plugin's plugin.properties file.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private static String getString(String key) {

+		return SANEditorPlugin.INSTANCE.getString(key);

+	}

+

+	/**

+	 * This looks up a string in plugin.properties, making a substitution.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private static String getString(String key, Object s1) {

+		return SANEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });

+	}

+

+	/**

+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void menuAboutToShow(IMenuManager menuManager) {

+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EditingDomainActionBarContributor getActionBarContributor() {

+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public IActionBars getActionBars() {

+		return getActionBarContributor().getActionBars();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public AdapterFactory getAdapterFactory() {

+		return adapterFactory;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void dispose() {

+		updateProblemIndication = false;

+

+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);

+

+		getSite().getPage().removePartListener(partListener);

+

+		adapterFactory.dispose();

+

+		if (getActionBarContributor().getActiveEditor() == this) {

+			getActionBarContributor().setActiveEditor(null);

+		}

+

+		for (PropertySheetPage propertySheetPage : propertySheetPages) {

+			propertySheetPage.dispose();

+		}

+

+		if (contentOutlinePage != null) {

+			contentOutlinePage.dispose();

+		}

+

+		super.dispose();

+	}

+

+	/**

+	 * Returns whether the outline view should be presented to the user.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected boolean showOutlineView() {

+		return true;

+	}

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANModelModelWizard.java b/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANModelModelWizard.java
new file mode 100644
index 0000000..8e88638
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model.editor/src/org/polarsys/chess/mobius/model/SAN/presentation/SANModelModelWizard.java
@@ -0,0 +1,627 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.presentation;

+

+

+import java.util.ArrayList;

+import java.util.Arrays;

+import java.util.Collection;

+import java.util.Collections;

+import java.util.HashMap;

+import java.util.List;

+import java.util.Map;

+import java.util.MissingResourceException;

+import java.util.StringTokenizer;

+

+import org.eclipse.emf.common.CommonPlugin;

+

+import org.eclipse.emf.common.util.URI;

+

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.EClassifier;

+

+import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.emf.ecore.resource.ResourceSet;

+

+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;

+

+import org.eclipse.emf.ecore.EObject;

+

+import org.eclipse.emf.ecore.xmi.XMLResource;

+

+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;

+

+import org.eclipse.core.resources.IContainer;

+import org.eclipse.core.resources.IFile;

+import org.eclipse.core.resources.IFolder;

+import org.eclipse.core.resources.IProject;

+import org.eclipse.core.resources.IResource;

+import org.eclipse.core.resources.ResourcesPlugin;

+

+import org.eclipse.core.runtime.IProgressMonitor;

+

+import org.eclipse.jface.dialogs.MessageDialog;

+

+import org.eclipse.jface.viewers.IStructuredSelection;

+

+import org.eclipse.jface.wizard.Wizard;

+import org.eclipse.jface.wizard.WizardPage;

+

+import org.eclipse.swt.SWT;

+

+import org.eclipse.swt.events.ModifyListener;

+import org.eclipse.swt.events.ModifyEvent;

+

+import org.eclipse.swt.layout.GridData;

+import org.eclipse.swt.layout.GridLayout;

+

+import org.eclipse.swt.widgets.Combo;

+import org.eclipse.swt.widgets.Composite;

+import org.eclipse.swt.widgets.Label;

+

+import org.eclipse.ui.INewWizard;

+import org.eclipse.ui.IWorkbench;

+

+import org.eclipse.ui.actions.WorkspaceModifyOperation;

+

+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;

+

+import org.eclipse.ui.part.FileEditorInput;

+import org.eclipse.ui.part.ISetSelectionTarget;

+

+import org.polarsys.chess.mobius.model.SAN.SANModelFactory;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.model.SAN.provider.SANEditPlugin;

+

+

+import org.eclipse.core.runtime.Path;

+

+import org.eclipse.jface.viewers.ISelection;

+import org.eclipse.jface.viewers.StructuredSelection;

+

+import org.eclipse.ui.IWorkbenchPage;

+import org.eclipse.ui.IWorkbenchPart;

+import org.eclipse.ui.IWorkbenchWindow;

+import org.eclipse.ui.PartInitException;

+

+

+/**

+ * This is a simple wizard for creating a new model file.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class SANModelModelWizard extends Wizard implements INewWizard {

+	/**

+	 * The supported extensions for created files.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public static final List<String> FILE_EXTENSIONS =

+		Collections.unmodifiableList(Arrays.asList(SANEditorPlugin.INSTANCE.getString("_UI_SANModelEditorFilenameExtensions").split("\\s*,\\s*")));

+

+	/**

+	 * A formatted list of supported file extensions, suitable for display.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public static final String FORMATTED_FILE_EXTENSIONS =

+		SANEditorPlugin.INSTANCE.getString("_UI_SANModelEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");

+

+	/**

+	 * This caches an instance of the model package.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SANModelPackage sanModelPackage = SANModelPackage.eINSTANCE;

+

+	/**

+	 * This caches an instance of the model factory.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SANModelFactory sanModelFactory = sanModelPackage.getSANModelFactory();

+

+	/**

+	 * This is the file creation page.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SANModelModelWizardNewFileCreationPage newFileCreationPage;

+

+	/**

+	 * This is the initial object creation page.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SANModelModelWizardInitialObjectCreationPage initialObjectCreationPage;

+

+	/**

+	 * Remember the selection during initialization for populating the default container.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IStructuredSelection selection;

+

+	/**

+	 * Remember the workbench during initialization.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IWorkbench workbench;

+

+	/**

+	 * Caches the names of the types that can be created as the root object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected List<String> initialObjectNames;

+

+	/**

+	 * This just records the information.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void init(IWorkbench workbench, IStructuredSelection selection) {

+		this.workbench = workbench;

+		this.selection = selection;

+		setWindowTitle(SANEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));

+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(SANEditorPlugin.INSTANCE.getImage("full/wizban/NewSANModel")));

+	}

+

+	/**

+	 * Returns the names of the types that can be created as the root object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected Collection<String> getInitialObjectNames() {

+		if (initialObjectNames == null) {

+			initialObjectNames = new ArrayList<String>();

+			for (EClassifier eClassifier : sanModelPackage.getEClassifiers()) {

+				if (eClassifier instanceof EClass) {

+					EClass eClass = (EClass)eClassifier;

+					if (!eClass.isAbstract()) {

+						initialObjectNames.add(eClass.getName());

+					}

+				}

+			}

+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());

+		}

+		return initialObjectNames;

+	}

+

+	/**

+	 * Create a new model.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected EObject createInitialModel() {

+		EClass eClass = (EClass)sanModelPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());

+		EObject rootObject = sanModelFactory.create(eClass);

+		return rootObject;

+	}

+

+	/**

+	 * Do the work after everything is specified.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean performFinish() {

+		try {

+			// Remember the file.

+			//

+			final IFile modelFile = getModelFile();

+

+			// Do the work within an operation.

+			//

+			WorkspaceModifyOperation operation =

+				new WorkspaceModifyOperation() {

+					@Override

+					protected void execute(IProgressMonitor progressMonitor) {

+						try {

+							// Create a resource set

+							//

+							ResourceSet resourceSet = new ResourceSetImpl();

+

+							// Get the URI of the model file.

+							//

+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);

+

+							// Create a resource for this file.

+							//

+							Resource resource = resourceSet.createResource(fileURI);

+

+							// Add the initial model object to the contents.

+							//

+							EObject rootObject = createInitialModel();

+							if (rootObject != null) {

+								resource.getContents().add(rootObject);

+							}

+

+							// Save the contents of the resource to the file system.

+							//

+							Map<Object, Object> options = new HashMap<Object, Object>();

+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());

+							resource.save(options);

+						}

+						catch (Exception exception) {

+							SANEditorPlugin.INSTANCE.log(exception);

+						}

+						finally {

+							progressMonitor.done();

+						}

+					}

+				};

+

+			getContainer().run(false, false, operation);

+

+			// Select the new file resource in the current view.

+			//

+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();

+			IWorkbenchPage page = workbenchWindow.getActivePage();

+			final IWorkbenchPart activePart = page.getActivePart();

+			if (activePart instanceof ISetSelectionTarget) {

+				final ISelection targetSelection = new StructuredSelection(modelFile);

+				getShell().getDisplay().asyncExec

+					(new Runnable() {

+						 public void run() {

+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);

+						 }

+					 });

+			}

+

+			// Open an editor on the new file.

+			//

+			try {

+				page.openEditor

+					(new FileEditorInput(modelFile),

+					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 

+			}

+			catch (PartInitException exception) {

+				MessageDialog.openError(workbenchWindow.getShell(), SANEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());

+				return false;

+			}

+

+			return true;

+		}

+		catch (Exception exception) {

+			SANEditorPlugin.INSTANCE.log(exception);

+			return false;

+		}

+	}

+

+	/**

+	 * This is the one page of the wizard.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public class SANModelModelWizardNewFileCreationPage extends WizardNewFileCreationPage {

+		/**

+		 * Pass in the selection.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		public SANModelModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {

+			super(pageId, selection);

+		}

+

+		/**

+		 * The framework calls this to see if the file is correct.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		@Override

+		protected boolean validatePage() {

+			if (super.validatePage()) {

+				String extension = new Path(getFileName()).getFileExtension();

+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {

+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";

+					setErrorMessage(SANEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));

+					return false;

+				}

+				return true;

+			}

+			return false;

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		public IFile getModelFile() {

+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));

+		}

+	}

+

+	/**

+	 * This is the page where the type of object to create is selected.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public class SANModelModelWizardInitialObjectCreationPage extends WizardPage {

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		protected Combo initialObjectField;

+

+		/**

+		 * @generated

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 */

+		protected List<String> encodings;

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		protected Combo encodingField;

+

+		/**

+		 * Pass in the selection.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		public SANModelModelWizardInitialObjectCreationPage(String pageId) {

+			super(pageId);

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		public void createControl(Composite parent) {

+			Composite composite = new Composite(parent, SWT.NONE); {

+				GridLayout layout = new GridLayout();

+				layout.numColumns = 1;

+				layout.verticalSpacing = 12;

+				composite.setLayout(layout);

+

+				GridData data = new GridData();

+				data.verticalAlignment = GridData.FILL;

+				data.grabExcessVerticalSpace = true;

+				data.horizontalAlignment = GridData.FILL;

+				composite.setLayoutData(data);

+			}

+

+			Label containerLabel = new Label(composite, SWT.LEFT);

+			{

+				containerLabel.setText(SANEditorPlugin.INSTANCE.getString("_UI_ModelObject"));

+

+				GridData data = new GridData();

+				data.horizontalAlignment = GridData.FILL;

+				containerLabel.setLayoutData(data);

+			}

+

+			initialObjectField = new Combo(composite, SWT.BORDER);

+			{

+				GridData data = new GridData();

+				data.horizontalAlignment = GridData.FILL;

+				data.grabExcessHorizontalSpace = true;

+				initialObjectField.setLayoutData(data);

+			}

+

+			for (String objectName : getInitialObjectNames()) {

+				initialObjectField.add(getLabel(objectName));

+			}

+

+			if (initialObjectField.getItemCount() == 1) {

+				initialObjectField.select(0);

+			}

+			initialObjectField.addModifyListener(validator);

+

+			Label encodingLabel = new Label(composite, SWT.LEFT);

+			{

+				encodingLabel.setText(SANEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));

+

+				GridData data = new GridData();

+				data.horizontalAlignment = GridData.FILL;

+				encodingLabel.setLayoutData(data);

+			}

+			encodingField = new Combo(composite, SWT.BORDER);

+			{

+				GridData data = new GridData();

+				data.horizontalAlignment = GridData.FILL;

+				data.grabExcessHorizontalSpace = true;

+				encodingField.setLayoutData(data);

+			}

+

+			for (String encoding : getEncodings()) {

+				encodingField.add(encoding);

+			}

+

+			encodingField.select(0);

+			encodingField.addModifyListener(validator);

+

+			setPageComplete(validatePage());

+			setControl(composite);

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		protected ModifyListener validator =

+			new ModifyListener() {

+				public void modifyText(ModifyEvent e) {

+					setPageComplete(validatePage());

+				}

+			};

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		protected boolean validatePage() {

+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		@Override

+		public void setVisible(boolean visible) {

+			super.setVisible(visible);

+			if (visible) {

+				if (initialObjectField.getItemCount() == 1) {

+					initialObjectField.clearSelection();

+					encodingField.setFocus();

+				}

+				else {

+					encodingField.clearSelection();

+					initialObjectField.setFocus();

+				}

+			}

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		public String getInitialObjectName() {

+			String label = initialObjectField.getText();

+

+			for (String name : getInitialObjectNames()) {

+				if (getLabel(name).equals(label)) {

+					return name;

+				}

+			}

+			return null;

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		public String getEncoding() {

+			return encodingField.getText();

+		}

+

+		/**

+		 * Returns the label for the specified type name.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		protected String getLabel(String typeName) {

+			try {

+				return SANEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");

+			}

+			catch(MissingResourceException mre) {

+				SANEditorPlugin.INSTANCE.log(mre);

+			}

+			return typeName;

+		}

+

+		/**

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		protected Collection<String> getEncodings() {

+			if (encodings == null) {

+				encodings = new ArrayList<String>();

+				for (StringTokenizer stringTokenizer = new StringTokenizer(SANEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {

+					encodings.add(stringTokenizer.nextToken());

+				}

+			}

+			return encodings;

+		}

+	}

+

+	/**

+	 * The framework calls this to create the contents of the wizard.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+		@Override

+	public void addPages() {

+		// Create a page, set the title, and the initial model file name.

+		//

+		newFileCreationPage = new SANModelModelWizardNewFileCreationPage("Whatever", selection);

+		newFileCreationPage.setTitle(SANEditorPlugin.INSTANCE.getString("_UI_SANModelModelWizard_label"));

+		newFileCreationPage.setDescription(SANEditorPlugin.INSTANCE.getString("_UI_SANModelModelWizard_description"));

+		newFileCreationPage.setFileName(SANEditorPlugin.INSTANCE.getString("_UI_SANModelEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));

+		addPage(newFileCreationPage);

+

+		// Try and get the resource selection to determine a current directory for the file dialog.

+		//

+		if (selection != null && !selection.isEmpty()) {

+			// Get the resource...

+			//

+			Object selectedElement = selection.iterator().next();

+			if (selectedElement instanceof IResource) {

+				// Get the resource parent, if its a file.

+				//

+				IResource selectedResource = (IResource)selectedElement;

+				if (selectedResource.getType() == IResource.FILE) {

+					selectedResource = selectedResource.getParent();

+				}

+

+				// This gives us a directory...

+				//

+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {

+					// Set this for the container.

+					//

+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());

+

+					// Make up a unique new name here.

+					//

+					String defaultModelBaseFilename = SANEditorPlugin.INSTANCE.getString("_UI_SANModelEditorFilenameDefaultBase");

+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);

+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;

+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {

+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;

+					}

+					newFileCreationPage.setFileName(modelFilename);

+				}

+			}

+		}

+		initialObjectCreationPage = new SANModelModelWizardInitialObjectCreationPage("Whatever2");

+		initialObjectCreationPage.setTitle(SANEditorPlugin.INSTANCE.getString("_UI_SANModelModelWizard_label"));

+		initialObjectCreationPage.setDescription(SANEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));

+		addPage(initialObjectCreationPage);

+	}

+

+	/**

+	 * Get the file from the page.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public IFile getModelFile() {

+		return newFileCreationPage.getModelFile();

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/.classpath b/plugins/mobius/org.polarsys.chess.mobius.model/.classpath
new file mode 100644
index 0000000..b862a29
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

+	<classpathentry kind="src" path="src"/>

+	<classpathentry kind="output" path="bin"/>

+</classpath>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/.project b/plugins/mobius/org.polarsys.chess.mobius.model/.project
new file mode 100644
index 0000000..0aba4b9
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.polarsys.chess.mobius.model</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ManifestBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.SchemaBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.pde.PluginNature</nature>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+	</natures>

+</projectDescription>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/.settings/org.eclipse.jdt.core.prefs b/plugins/mobius/org.polarsys.chess.mobius.model/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..295926d
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1

+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

+org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.source=1.8

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/META-INF/MANIFEST.MF b/plugins/mobius/org.polarsys.chess.mobius.model/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a803af7
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.polarsys.chess.mobius.model;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,

+ org.eclipse.core.runtime,

+ org.eclipse.emf.ecore;visibility:=reexport

+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.polarsys.chess.mobius.model.SAN,
+ org.polarsys.chess.mobius.model.SAN.impl,
+ org.polarsys.chess.mobius.model.SAN.util
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/build.properties b/plugins/mobius/org.polarsys.chess.mobius.model/build.properties
new file mode 100644
index 0000000..4d3b182
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/build.properties
@@ -0,0 +1,10 @@
+#

+

+bin.includes = .,\

+               model/,\

+               META-INF/,\

+               plugin.xml,\

+               plugin.properties

+jars.compile.order = .

+source.. = src/

+output.. = bin/

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/model/SAN.ecore b/plugins/mobius/org.polarsys.chess.mobius.model/model/SAN.ecore
new file mode 100644
index 0000000..be63e6c
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/model/SAN.ecore
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="SAN" nsURI="http://www.polarsys.org/chess/SAN" nsPrefix="SAN">

+  <eClassifiers xsi:type="ecore:EClass" name="SANModel" eSuperTypes="#//NamedElement">

+    <eOperations name="getAllNodes" upperBound="-1" eType="#//Node"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1" eType="#//Node"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//GraphicalElement">

+    <eOperations name="validate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>

+      <eParameters name="context">

+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">

+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>

+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>

+        </eGenericType>

+      </eParameters>

+    </eOperations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="Node" abstract="true" eSuperTypes="#//NamedElement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="globalVariable" upperBound="-1"

+        eType="#//GlobalVariable" containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ComposedNode" abstract="true" eSuperTypes="#//Node">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="stateVariables" upperBound="-1"

+        eType="#//SharedState" containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="child" lowerBound="2" upperBound="-1"

+        eType="#//Node" containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="SharedState" eSuperTypes="#//NamedElement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="place" upperBound="-1"

+        eType="#//Place"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="sharedStates" upperBound="-1"

+        eType="#//SharedState"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="Join" eSuperTypes="#//ComposedNode"/>

+  <eClassifiers xsi:type="ecore:EClass" name="Rep" eSuperTypes="#//ComposedNode">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="numbOfReps" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"

+        defaultValueLiteral=""/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="AtomicNode" eSuperTypes="#//Node">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="place" upperBound="-1"

+        eType="#//Place" containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="timedActivity" upperBound="-1"

+        eType="#//TimedActivity" containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="instantaneousActivity"

+        upperBound="-1" eType="#//InstantaneousActivity" containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="inputGate" upperBound="-1"

+        eType="#//InputGate" containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="outputGate" upperBound="-1"

+        eType="#//OutputGate" containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="model" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="Place" eSuperTypes="#//Primitive">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="activity" upperBound="-1"

+        eType="#//Activity"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="inputGate" upperBound="-1"

+        eType="#//InputGate"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialState" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="TimedActivity" eSuperTypes="#//Activity">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeDistributionFunction"

+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="InstantaneousActivity" eSuperTypes="#//Activity"/>

+  <eClassifiers xsi:type="ecore:EClass" name="InputGate" eSuperTypes="#//Primitive">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inputPredicated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inputFunction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="activity" upperBound="-1"

+        eType="#//Activity"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="OutputGate" eSuperTypes="#//InputGate">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="outputFunction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="Activity" abstract="true" eSuperTypes="#//NamedElement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="place" upperBound="-1"

+        eType="#//Place"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="outputGate" upperBound="-1"

+        eType="#//OutputGate"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="case" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="placecase" upperBound="-1"

+        eType="#//ActivityPlaceCase" containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="Gate" abstract="true" eSuperTypes="#//NamedElement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="place" upperBound="-1"

+        eType="#//Place" containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="GlobalVariable" eSuperTypes="#//NamedElement">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ActivityPlaceCase" eSuperTypes="#//GraphicalElement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="place" upperBound="-1"

+        eType="#//Primitive"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="case" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="GraphicalElement">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="Primitive" abstract="true" eSuperTypes="#//NamedElement"/>

+</ecore:EPackage>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/model/SAN.genmodel b/plugins/mobius/org.polarsys.chess.mobius.model/model/SAN.genmodel
new file mode 100644
index 0000000..c0bedf0
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/model/SAN.genmodel
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"

+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.polarsys.chess.mobius.model/src" modelPluginID="org.polarsys.chess.mobius.model"

+    modelName="SAN" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"

+    importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"

+    operationReflection="true" importOrganizing="true">

+  <foreignModel>SAN.ecore</foreignModel>

+  <genPackages prefix="SANModel" basePackage="org.polarsys.chess.mobius.model" disposableProviderFactory="true"

+      ecorePackage="SAN.ecore#/">

+    <genClasses ecoreClass="SAN.ecore#//SANModel">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//SANModel/node"/>

+      <genOperations ecoreOperation="SAN.ecore#//SANModel/getAllNodes"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SAN.ecore#//NamedElement">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//NamedElement/name"/>

+      <genOperations ecoreOperation="SAN.ecore#//NamedElement/validate">

+        <genParameters ecoreParameter="SAN.ecore#//NamedElement/validate/diagnostics"/>

+        <genParameters ecoreParameter="SAN.ecore#//NamedElement/validate/context"/>

+      </genOperations>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SAN.ecore#//Node">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//Node/globalVariable"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SAN.ecore#//ComposedNode">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//ComposedNode/stateVariables"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//ComposedNode/child"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//SharedState">

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SAN.ecore#//SharedState/place"/>

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SAN.ecore#//SharedState/sharedStates"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//Join"/>

+    <genClasses ecoreClass="SAN.ecore#//Rep">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//Rep/numbOfReps"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//AtomicNode">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//AtomicNode/place"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//AtomicNode/timedActivity"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//AtomicNode/instantaneousActivity"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//AtomicNode/inputGate"/>

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SAN.ecore#//AtomicNode/outputGate"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//AtomicNode/model"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//Place">

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SAN.ecore#//Place/activity"/>

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SAN.ecore#//Place/inputGate"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//Place/initialState"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//TimedActivity">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//TimedActivity/rate"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//TimedActivity/timeDistributionFunction"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//InstantaneousActivity"/>

+    <genClasses ecoreClass="SAN.ecore#//InputGate">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//InputGate/inputPredicated"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//InputGate/inputFunction"/>

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SAN.ecore#//InputGate/activity"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//OutputGate">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//OutputGate/outputFunction"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SAN.ecore#//Activity">

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SAN.ecore#//Activity/place"/>

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SAN.ecore#//Activity/outputGate"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//Activity/case"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//Activity/placecase"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SAN.ecore#//Gate">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SAN.ecore#//Gate/place"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//GlobalVariable">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//GlobalVariable/type"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//ActivityPlaceCase">

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SAN.ecore#//ActivityPlaceCase/place"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//ActivityPlaceCase/case"/>

+    </genClasses>

+    <genClasses ecoreClass="SAN.ecore#//GraphicalElement">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//GraphicalElement/x"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SAN.ecore#//GraphicalElement/y"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SAN.ecore#//Primitive"/>

+  </genPackages>

+</genmodel:GenModel>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/plugin.properties b/plugins/mobius/org.polarsys.chess.mobius.model/plugin.properties
new file mode 100644
index 0000000..c6b8ac4
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/plugin.properties
@@ -0,0 +1,4 @@
+#

+

+pluginName = SAN Model

+providerName = www.example.org

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/plugin.xml b/plugins/mobius/org.polarsys.chess.mobius.model/plugin.xml
new file mode 100644
index 0000000..a0e78ee
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.0"?>

+

+<!--

+-->

+

+<plugin>

+

+   <extension point="org.eclipse.emf.ecore.generated_package">

+      <!-- @generated SAN -->

+      <package

+            uri="http://www.polarsys.org/chess/SAN"

+            class="org.polarsys.chess.mobius.model.SAN.SANModelPackage"

+            genModel="model/SAN.genmodel"/>

+   </extension>

+

+</plugin>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Activator.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Activator.java
new file mode 100644
index 0000000..c160b6d
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Activator.java
@@ -0,0 +1,69 @@
+/*********************************************************************

+* Copyright (c) 2019 Intecs Solutions SpA

+*

+* This program and the accompanying materials are made

+* available under the terms of the Eclipse Public License 2.0

+* which is available at https://www.eclipse.org/legal/epl-2.0/

+*

+* SPDX-License-Identifier: EPL-2.0

+*

+* Contributors: 

+*   Intecs Solutions - Initial API and implementation

+*   

+**********************************************************************/

+

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.ui.plugin.AbstractUIPlugin;

+import org.osgi.framework.BundleContext;

+

+/**

+ * The activator class controls the plug-in life cycle.

+ */

+public class Activator extends AbstractUIPlugin {

+

+	/**

+	 * The plug-in ID.

+	 */

+	public static final String PLUGIN_ID = "org.polarsys.chess.mobius.model";

+

+	/**

+	 * The shared instance.

+	 */

+	private static Activator plugin;

+

+	/**

+	 * The constructor.

+	 */

+	public Activator() {

+	}

+

+	/**

+	 * {@inheritDoc}

+	 *

+	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)

+	 */

+	public void start(BundleContext context) throws Exception {

+		super.start(context);

+		plugin = this;

+	}

+

+	/**

+	 * {@inheritDoc}

+	 *

+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)

+	 */

+	public void stop(BundleContext context) throws Exception {

+		plugin = null;

+		super.stop(context);

+	}

+

+	/**

+	 * Returns the shared instance.

+	 *

+	 * @return the shared instance

+	 */

+	public static Activator getDefault() {

+		return plugin;

+	}

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Activity.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Activity.java
new file mode 100644
index 0000000..5e971b8
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Activity.java
@@ -0,0 +1,91 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Activity</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Activity#getPlace <em>Place</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Activity#getOutputGate <em>Output Gate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Activity#getCase <em>Case</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Activity#getPlacecase <em>Placecase</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getActivity()

+ * @model abstract="true"

+ * @generated

+ */

+public interface Activity extends NamedElement {

+	/**

+	 * Returns the value of the '<em><b>Place</b></em>' reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.Place}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Place</em>' reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Place</em>' reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getActivity_Place()

+	 * @model

+	 * @generated

+	 */

+	EList<Place> getPlace();

+

+	/**

+	 * Returns the value of the '<em><b>Output Gate</b></em>' reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.OutputGate}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Output Gate</em>' reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Output Gate</em>' reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getActivity_OutputGate()

+	 * @model

+	 * @generated

+	 */

+	EList<OutputGate> getOutputGate();

+

+	/**

+	 * Returns the value of the '<em><b>Case</b></em>' attribute list.

+	 * The list contents are of type {@link java.lang.String}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Case</em>' attribute list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Case</em>' attribute list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getActivity_Case()

+	 * @model

+	 * @generated

+	 */

+	EList<String> getCase();

+

+	/**

+	 * Returns the value of the '<em><b>Placecase</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Placecase</em>' containment reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Placecase</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getActivity_Placecase()

+	 * @model containment="true"

+	 * @generated

+	 */

+	EList<ActivityPlaceCase> getPlacecase();

+

+} // Activity

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/ActivityPlaceCase.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/ActivityPlaceCase.java
new file mode 100644
index 0000000..583497b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/ActivityPlaceCase.java
@@ -0,0 +1,67 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Activity Place Case</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase#getPlace <em>Place</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase#getCase <em>Case</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getActivityPlaceCase()

+ * @model

+ * @generated

+ */

+public interface ActivityPlaceCase extends GraphicalElement {

+	/**

+	 * Returns the value of the '<em><b>Place</b></em>' reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.Primitive}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Place</em>' reference isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Place</em>' reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getActivityPlaceCase_Place()

+	 * @model

+	 * @generated

+	 */

+	EList<Primitive> getPlace();

+

+	/**

+	 * Returns the value of the '<em><b>Case</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Case</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Case</em>' attribute.

+	 * @see #setCase(int)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getActivityPlaceCase_Case()

+	 * @model

+	 * @generated

+	 */

+	int getCase();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase#getCase <em>Case</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Case</em>' attribute.

+	 * @see #getCase()

+	 * @generated

+	 */

+	void setCase(int value);

+

+} // ActivityPlaceCase

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/AtomicNode.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/AtomicNode.java
new file mode 100644
index 0000000..58071e4
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/AtomicNode.java
@@ -0,0 +1,135 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Atomic Node</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getPlace <em>Place</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getTimedActivity <em>Timed Activity</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getInstantaneousActivity <em>Instantaneous Activity</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getInputGate <em>Input Gate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getOutputGate <em>Output Gate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getModel <em>Model</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getAtomicNode()

+ * @model

+ * @generated

+ */

+public interface AtomicNode extends Node {

+	/**

+	 * Returns the value of the '<em><b>Place</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.Place}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Place</em>' containment reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Place</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getAtomicNode_Place()

+	 * @model containment="true"

+	 * @generated

+	 */

+	EList<Place> getPlace();

+

+	/**

+	 * Returns the value of the '<em><b>Timed Activity</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.TimedActivity}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Timed Activity</em>' containment reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Timed Activity</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getAtomicNode_TimedActivity()

+	 * @model containment="true"

+	 * @generated

+	 */

+	EList<TimedActivity> getTimedActivity();

+

+	/**

+	 * Returns the value of the '<em><b>Instantaneous Activity</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.InstantaneousActivity}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Instantaneous Activity</em>' containment reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Instantaneous Activity</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getAtomicNode_InstantaneousActivity()

+	 * @model containment="true"

+	 * @generated

+	 */

+	EList<InstantaneousActivity> getInstantaneousActivity();

+

+	/**

+	 * Returns the value of the '<em><b>Input Gate</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.InputGate}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Input Gate</em>' containment reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Input Gate</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getAtomicNode_InputGate()

+	 * @model containment="true"

+	 * @generated

+	 */

+	EList<InputGate> getInputGate();

+

+	/**

+	 * Returns the value of the '<em><b>Output Gate</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.OutputGate}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Output Gate</em>' reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Output Gate</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getAtomicNode_OutputGate()

+	 * @model containment="true"

+	 * @generated

+	 */

+	EList<OutputGate> getOutputGate();

+

+	/**

+	 * Returns the value of the '<em><b>Model</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Model</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Model</em>' attribute.

+	 * @see #setModel(String)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getAtomicNode_Model()

+	 * @model

+	 * @generated

+	 */

+	String getModel();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getModel <em>Model</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Model</em>' attribute.

+	 * @see #getModel()

+	 * @generated

+	 */

+	void setModel(String value);

+

+} // AtomicNode

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/ComposedNode.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/ComposedNode.java
new file mode 100644
index 0000000..3f922e6
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/ComposedNode.java
@@ -0,0 +1,57 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Composed Node</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.ComposedNode#getStateVariables <em>State Variables</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.ComposedNode#getChild <em>Child</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getComposedNode()

+ * @model abstract="true"

+ * @generated

+ */

+public interface ComposedNode extends Node {

+	/**

+	 * Returns the value of the '<em><b>State Variables</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.SharedState}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>State Variables</em>' containment reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>State Variables</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getComposedNode_StateVariables()

+	 * @model containment="true"

+	 * @generated

+	 */

+	EList<SharedState> getStateVariables();

+

+	/**

+	 * Returns the value of the '<em><b>Child</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.Node}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Child</em>' containment reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Child</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getComposedNode_Child()

+	 * @model containment="true" lower="2"

+	 * @generated

+	 */

+	EList<Node> getChild();

+

+} // ComposedNode

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Gate.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Gate.java
new file mode 100644
index 0000000..91323da
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Gate.java
@@ -0,0 +1,40 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Gate</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Gate#getPlace <em>Place</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getGate()

+ * @model abstract="true"

+ * @generated

+ */

+public interface Gate extends NamedElement {

+	/**

+	 * Returns the value of the '<em><b>Place</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.Place}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Place</em>' containment reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Place</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getGate_Place()

+	 * @model containment="true"

+	 * @generated

+	 */

+	EList<Place> getPlace();

+

+} // Gate

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/GlobalVariable.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/GlobalVariable.java
new file mode 100644
index 0000000..60008b2
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/GlobalVariable.java
@@ -0,0 +1,48 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Global Variable</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.GlobalVariable#getType <em>Type</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getGlobalVariable()

+ * @model

+ * @generated

+ */

+public interface GlobalVariable extends NamedElement {

+	/**

+	 * Returns the value of the '<em><b>Type</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Type</em>' attribute list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Type</em>' attribute.

+	 * @see #setType(String)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getGlobalVariable_Type()

+	 * @model

+	 * @generated

+	 */

+	String getType();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.GlobalVariable#getType <em>Type</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Type</em>' attribute.

+	 * @see #getType()

+	 * @generated

+	 */

+	void setType(String value);

+

+} // GlobalVariable

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/GraphicalElement.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/GraphicalElement.java
new file mode 100644
index 0000000..f2ba74b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/GraphicalElement.java
@@ -0,0 +1,77 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.ecore.EObject;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Graphical Element</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.GraphicalElement#getX <em>X</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.GraphicalElement#getY <em>Y</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getGraphicalElement()

+ * @model

+ * @generated

+ */

+public interface GraphicalElement extends EObject {

+	/**

+	 * Returns the value of the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>X</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>X</em>' attribute.

+	 * @see #setX(int)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getGraphicalElement_X()

+	 * @model

+	 * @generated

+	 */

+	int getX();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.GraphicalElement#getX <em>X</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>X</em>' attribute.

+	 * @see #getX()

+	 * @generated

+	 */

+	void setX(int value);

+

+	/**

+	 * Returns the value of the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Y</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Y</em>' attribute.

+	 * @see #setY(int)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getGraphicalElement_Y()

+	 * @model

+	 * @generated

+	 */

+	int getY();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.GraphicalElement#getY <em>Y</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Y</em>' attribute.

+	 * @see #getY()

+	 * @generated

+	 */

+	void setY(int value);

+

+} // GraphicalElement

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/InputGate.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/InputGate.java
new file mode 100644
index 0000000..f1608ea
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/InputGate.java
@@ -0,0 +1,94 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Input Gate</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.InputGate#getInputPredicated <em>Input Predicated</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.InputGate#getInputFunction <em>Input Function</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.InputGate#getActivity <em>Activity</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getInputGate()

+ * @model

+ * @generated

+ */

+public interface InputGate extends Primitive {

+	/**

+	 * Returns the value of the '<em><b>Input Predicated</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Input Predicated</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Input Predicated</em>' attribute.

+	 * @see #setInputPredicated(String)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getInputGate_InputPredicated()

+	 * @model

+	 * @generated

+	 */

+	String getInputPredicated();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.InputGate#getInputPredicated <em>Input Predicated</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Input Predicated</em>' attribute.

+	 * @see #getInputPredicated()

+	 * @generated

+	 */

+	void setInputPredicated(String value);

+

+	/**

+	 * Returns the value of the '<em><b>Input Function</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Input Function</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Input Function</em>' attribute.

+	 * @see #setInputFunction(String)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getInputGate_InputFunction()

+	 * @model

+	 * @generated

+	 */

+	String getInputFunction();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.InputGate#getInputFunction <em>Input Function</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Input Function</em>' attribute.

+	 * @see #getInputFunction()

+	 * @generated

+	 */

+	void setInputFunction(String value);

+

+	/**

+	 * Returns the value of the '<em><b>Activity</b></em>' reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.Activity}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Activity</em>' reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Activity</em>' reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getInputGate_Activity()

+	 * @model

+	 * @generated

+	 */

+	EList<Activity> getActivity();

+

+} // InputGate

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/InstantaneousActivity.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/InstantaneousActivity.java
new file mode 100644
index 0000000..222925b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/InstantaneousActivity.java
@@ -0,0 +1,16 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Instantaneous Activity</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getInstantaneousActivity()

+ * @model

+ * @generated

+ */

+public interface InstantaneousActivity extends Activity {

+} // InstantaneousActivity

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Join.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Join.java
new file mode 100644
index 0000000..f152317
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Join.java
@@ -0,0 +1,17 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Join</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getJoin()

+ * @model

+ * @generated

+ */

+public interface Join extends ComposedNode {

+

+} // Join

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/NamedElement.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/NamedElement.java
new file mode 100644
index 0000000..78adaca
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/NamedElement.java
@@ -0,0 +1,59 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import java.util.Map;

+import org.eclipse.emf.common.util.DiagnosticChain;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Named Element</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.NamedElement#getName <em>Name</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getNamedElement()

+ * @model abstract="true"

+ * @generated

+ */

+public interface NamedElement extends GraphicalElement {

+	/**

+	 * Returns the value of the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Name</em>' attribute.

+	 * @see #setName(String)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getNamedElement_Name()

+	 * @model

+	 * @generated

+	 */

+	String getName();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.NamedElement#getName <em>Name</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Name</em>' attribute.

+	 * @see #getName()

+	 * @generated

+	 */

+	void setName(String value);

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @model

+	 * @generated

+	 */

+	boolean validate(DiagnosticChain diagnostics, Map<Object, Object> context);

+

+} // NamedElement

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Node.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Node.java
new file mode 100644
index 0000000..ec89eaf
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Node.java
@@ -0,0 +1,41 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Node</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Node#getGlobalVariable <em>Global Variable</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getNode()

+ * @model abstract="true"

+ * @generated

+ */

+public interface Node extends NamedElement {

+

+	/**

+	 * Returns the value of the '<em><b>Global Variable</b></em>' containment reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.GlobalVariable}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Global Variable</em>' containment reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Global Variable</em>' containment reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getNode_GlobalVariable()

+	 * @model containment="true"

+	 * @generated

+	 */

+	EList<GlobalVariable> getGlobalVariable();

+} // Node

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/OutputGate.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/OutputGate.java
new file mode 100644
index 0000000..0c7223f
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/OutputGate.java
@@ -0,0 +1,49 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Output Gate</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.OutputGate#getOutputFunction <em>Output Function</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getOutputGate()

+ * @model

+ * @generated

+ */

+public interface OutputGate extends InputGate {

+	/**

+	 * Returns the value of the '<em><b>Output Function</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Output Function</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Output Function</em>' attribute.

+	 * @see #setOutputFunction(String)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getOutputGate_OutputFunction()

+	 * @model

+	 * @generated

+	 */

+	String getOutputFunction();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.OutputGate#getOutputFunction <em>Output Function</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Output Function</em>' attribute.

+	 * @see #getOutputFunction()

+	 * @generated

+	 */

+	void setOutputFunction(String value);

+

+} // OutputGate

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Place.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Place.java
new file mode 100644
index 0000000..9c5e153
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Place.java
@@ -0,0 +1,84 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Place</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Place#getActivity <em>Activity</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Place#getInputGate <em>Input Gate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Place#getInitialState <em>Initial State</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getPlace()

+ * @model

+ * @generated

+ */

+public interface Place extends Primitive {

+	/**

+	 * Returns the value of the '<em><b>Activity</b></em>' reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.Activity}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Activity</em>' reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Activity</em>' reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getPlace_Activity()

+	 * @model

+	 * @generated

+	 */

+	EList<Activity> getActivity();

+

+	/**

+	 * Returns the value of the '<em><b>Input Gate</b></em>' reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.InputGate}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Input Gate</em>' reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Input Gate</em>' reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getPlace_InputGate()

+	 * @model

+	 * @generated

+	 */

+	EList<InputGate> getInputGate();

+

+	/**

+	 * Returns the value of the '<em><b>Initial State</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Initial State</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Initial State</em>' attribute.

+	 * @see #setInitialState(int)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getPlace_InitialState()

+	 * @model

+	 * @generated

+	 */

+	int getInitialState();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.Place#getInitialState <em>Initial State</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Initial State</em>' attribute.

+	 * @see #getInitialState()

+	 * @generated

+	 */

+	void setInitialState(int value);

+

+} // Place

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Primitive.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Primitive.java
new file mode 100644
index 0000000..3904c60
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Primitive.java
@@ -0,0 +1,17 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Primitive</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getPrimitive()

+ * @model abstract="true"

+ * @generated

+ */

+public interface Primitive extends NamedElement {

+} // Primitive

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Rep.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Rep.java
new file mode 100644
index 0000000..30a6fee
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/Rep.java
@@ -0,0 +1,50 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Rep</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.Rep#getNumbOfReps <em>Numb Of Reps</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getRep()

+ * @model

+ * @generated

+ */

+public interface Rep extends ComposedNode {

+	/**

+	 * Returns the value of the '<em><b>Numb Of Reps</b></em>' attribute.

+	 * The default value is <code>""</code>.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Numb Of Reps</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Numb Of Reps</em>' attribute.

+	 * @see #setNumbOfReps(String)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getRep_NumbOfReps()

+	 * @model default=""

+	 * @generated

+	 */

+	String getNumbOfReps();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.Rep#getNumbOfReps <em>Numb Of Reps</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Numb Of Reps</em>' attribute.

+	 * @see #getNumbOfReps()

+	 * @generated

+	 */

+	void setNumbOfReps(String value);

+

+} // Rep

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SANModel.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SANModel.java
new file mode 100644
index 0000000..6c21d74
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SANModel.java
@@ -0,0 +1,59 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>SAN Model</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.SANModel#getNode <em>Node</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getSANModel()

+ * @model

+ * @generated

+ */

+public interface SANModel extends NamedElement {

+	/**

+	 * Returns the value of the '<em><b>Node</b></em>' containment reference.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Node</em>' containment reference isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Node</em>' containment reference.

+	 * @see #setNode(Node)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getSANModel_Node()

+	 * @model containment="true" required="true"

+	 * @generated

+	 */

+	Node getNode();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.SANModel#getNode <em>Node</em>}' containment reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Node</em>' containment reference.

+	 * @see #getNode()

+	 * @generated

+	 */

+	void setNode(Node value);

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @model kind="operation"

+	 * @generated

+	 */

+	EList<Node> getAllNodes();

+

+} // SANModel

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SANModelFactory.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SANModelFactory.java
new file mode 100644
index 0000000..9f83506
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SANModelFactory.java
@@ -0,0 +1,150 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.ecore.EFactory;

+

+/**

+ * <!-- begin-user-doc -->

+ * The <b>Factory</b> for the model.

+ * It provides a create method for each non-abstract class of the model.

+ * <!-- end-user-doc -->

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage

+ * @generated

+ */

+public interface SANModelFactory extends EFactory {

+	/**

+	 * The singleton instance of the factory.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	SANModelFactory eINSTANCE = org.polarsys.chess.mobius.model.SAN.impl.SANModelFactoryImpl.init();

+

+	/**

+	 * Returns a new object of class '<em>SAN Model</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>SAN Model</em>'.

+	 * @generated

+	 */

+	SANModel createSANModel();

+

+	/**

+	 * Returns a new object of class '<em>Shared State</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Shared State</em>'.

+	 * @generated

+	 */

+	SharedState createSharedState();

+

+	/**

+	 * Returns a new object of class '<em>Join</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Join</em>'.

+	 * @generated

+	 */

+	Join createJoin();

+

+	/**

+	 * Returns a new object of class '<em>Rep</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Rep</em>'.

+	 * @generated

+	 */

+	Rep createRep();

+

+	/**

+	 * Returns a new object of class '<em>Atomic Node</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Atomic Node</em>'.

+	 * @generated

+	 */

+	AtomicNode createAtomicNode();

+

+	/**

+	 * Returns a new object of class '<em>Place</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Place</em>'.

+	 * @generated

+	 */

+	Place createPlace();

+

+	/**

+	 * Returns a new object of class '<em>Timed Activity</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Timed Activity</em>'.

+	 * @generated

+	 */

+	TimedActivity createTimedActivity();

+

+	/**

+	 * Returns a new object of class '<em>Instantaneous Activity</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Instantaneous Activity</em>'.

+	 * @generated

+	 */

+	InstantaneousActivity createInstantaneousActivity();

+

+	/**

+	 * Returns a new object of class '<em>Input Gate</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Input Gate</em>'.

+	 * @generated

+	 */

+	InputGate createInputGate();

+

+	/**

+	 * Returns a new object of class '<em>Output Gate</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Output Gate</em>'.

+	 * @generated

+	 */

+	OutputGate createOutputGate();

+

+	/**

+	 * Returns a new object of class '<em>Global Variable</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Global Variable</em>'.

+	 * @generated

+	 */

+	GlobalVariable createGlobalVariable();

+

+	/**

+	 * Returns a new object of class '<em>Activity Place Case</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Activity Place Case</em>'.

+	 * @generated

+	 */

+	ActivityPlaceCase createActivityPlaceCase();

+

+	/**

+	 * Returns a new object of class '<em>Graphical Element</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Graphical Element</em>'.

+	 * @generated

+	 */

+	GraphicalElement createGraphicalElement();

+

+	/**

+	 * Returns the package supported by this factory.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the package supported by this factory.

+	 * @generated

+	 */

+	SANModelPackage getSANModelPackage();

+

+} //SANModelFactory

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SANModelPackage.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SANModelPackage.java
new file mode 100644
index 0000000..c3a73d7
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SANModelPackage.java
@@ -0,0 +1,2761 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.ecore.EAttribute;

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.EOperation;

+import org.eclipse.emf.ecore.EPackage;

+import org.eclipse.emf.ecore.EReference;

+

+/**

+ * <!-- begin-user-doc -->

+ * The <b>Package</b> for the model.

+ * It contains accessors for the meta objects to represent

+ * <ul>

+ *   <li>each class,</li>

+ *   <li>each feature of each class,</li>

+ *   <li>each operation of each class,</li>

+ *   <li>each enum,</li>

+ *   <li>and each data type</li>

+ * </ul>

+ * <!-- end-user-doc -->

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelFactory

+ * @model kind="package"

+ * @generated

+ */

+public interface SANModelPackage extends EPackage {

+	/**

+	 * The package name.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	String eNAME = "SAN";

+

+	/**

+	 * The package namespace URI.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	String eNS_URI = "http://www.polarsys.org/chess/SAN";

+

+	/**

+	 * The package namespace name.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	String eNS_PREFIX = "SAN";

+

+	/**

+	 * The singleton instance of the package.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	SANModelPackage eINSTANCE = org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl.init();

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.GraphicalElementImpl <em>Graphical Element</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.GraphicalElementImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getGraphicalElement()

+	 * @generated

+	 */

+	int GRAPHICAL_ELEMENT = 17;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GRAPHICAL_ELEMENT__X = 0;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GRAPHICAL_ELEMENT__Y = 1;

+

+	/**

+	 * The number of structural features of the '<em>Graphical Element</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GRAPHICAL_ELEMENT_FEATURE_COUNT = 2;

+

+	/**

+	 * The number of operations of the '<em>Graphical Element</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GRAPHICAL_ELEMENT_OPERATION_COUNT = 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.NamedElementImpl <em>Named Element</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.NamedElementImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getNamedElement()

+	 * @generated

+	 */

+	int NAMED_ELEMENT = 1;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NAMED_ELEMENT__X = GRAPHICAL_ELEMENT__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NAMED_ELEMENT__Y = GRAPHICAL_ELEMENT__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NAMED_ELEMENT__NAME = GRAPHICAL_ELEMENT_FEATURE_COUNT + 0;

+

+	/**

+	 * The number of structural features of the '<em>Named Element</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NAMED_ELEMENT_FEATURE_COUNT = GRAPHICAL_ELEMENT_FEATURE_COUNT + 1;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP = GRAPHICAL_ELEMENT_OPERATION_COUNT + 0;

+

+	/**

+	 * The number of operations of the '<em>Named Element</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NAMED_ELEMENT_OPERATION_COUNT = GRAPHICAL_ELEMENT_OPERATION_COUNT + 1;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.SANModelImpl <em>SAN Model</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getSANModel()

+	 * @generated

+	 */

+	int SAN_MODEL = 0;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SAN_MODEL__X = NAMED_ELEMENT__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SAN_MODEL__Y = NAMED_ELEMENT__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SAN_MODEL__NAME = NAMED_ELEMENT__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Node</b></em>' containment reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SAN_MODEL__NODE = NAMED_ELEMENT_FEATURE_COUNT + 0;

+

+	/**

+	 * The number of structural features of the '<em>SAN Model</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SAN_MODEL_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SAN_MODEL___VALIDATE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The operation id for the '<em>Get All Nodes</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SAN_MODEL___GET_ALL_NODES = NAMED_ELEMENT_OPERATION_COUNT + 0;

+

+	/**

+	 * The number of operations of the '<em>SAN Model</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SAN_MODEL_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 1;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.NodeImpl <em>Node</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.NodeImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getNode()

+	 * @generated

+	 */

+	int NODE = 2;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NODE__X = NAMED_ELEMENT__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NODE__Y = NAMED_ELEMENT__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NODE__NAME = NAMED_ELEMENT__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Global Variable</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NODE__GLOBAL_VARIABLE = NAMED_ELEMENT_FEATURE_COUNT + 0;

+

+	/**

+	 * The number of structural features of the '<em>Node</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NODE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NODE___VALIDATE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Node</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int NODE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.ComposedNodeImpl <em>Composed Node</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.ComposedNodeImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getComposedNode()

+	 * @generated

+	 */

+	int COMPOSED_NODE = 3;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int COMPOSED_NODE__X = NODE__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int COMPOSED_NODE__Y = NODE__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int COMPOSED_NODE__NAME = NODE__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Global Variable</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int COMPOSED_NODE__GLOBAL_VARIABLE = NODE__GLOBAL_VARIABLE;

+

+	/**

+	 * The feature id for the '<em><b>State Variables</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int COMPOSED_NODE__STATE_VARIABLES = NODE_FEATURE_COUNT + 0;

+

+	/**

+	 * The feature id for the '<em><b>Child</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int COMPOSED_NODE__CHILD = NODE_FEATURE_COUNT + 1;

+

+	/**

+	 * The number of structural features of the '<em>Composed Node</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int COMPOSED_NODE_FEATURE_COUNT = NODE_FEATURE_COUNT + 2;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int COMPOSED_NODE___VALIDATE__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Composed Node</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int COMPOSED_NODE_OPERATION_COUNT = NODE_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.SharedStateImpl <em>Shared State</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SharedStateImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getSharedState()

+	 * @generated

+	 */

+	int SHARED_STATE = 4;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SHARED_STATE__X = NAMED_ELEMENT__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SHARED_STATE__Y = NAMED_ELEMENT__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SHARED_STATE__NAME = NAMED_ELEMENT__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Place</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SHARED_STATE__PLACE = NAMED_ELEMENT_FEATURE_COUNT + 0;

+

+	/**

+	 * The feature id for the '<em><b>Shared States</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SHARED_STATE__SHARED_STATES = NAMED_ELEMENT_FEATURE_COUNT + 1;

+

+	/**

+	 * The number of structural features of the '<em>Shared State</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SHARED_STATE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SHARED_STATE___VALIDATE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Shared State</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SHARED_STATE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.JoinImpl <em>Join</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.JoinImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getJoin()

+	 * @generated

+	 */

+	int JOIN = 5;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int JOIN__X = COMPOSED_NODE__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int JOIN__Y = COMPOSED_NODE__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int JOIN__NAME = COMPOSED_NODE__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Global Variable</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int JOIN__GLOBAL_VARIABLE = COMPOSED_NODE__GLOBAL_VARIABLE;

+

+	/**

+	 * The feature id for the '<em><b>State Variables</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int JOIN__STATE_VARIABLES = COMPOSED_NODE__STATE_VARIABLES;

+

+	/**

+	 * The feature id for the '<em><b>Child</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int JOIN__CHILD = COMPOSED_NODE__CHILD;

+

+	/**

+	 * The number of structural features of the '<em>Join</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int JOIN_FEATURE_COUNT = COMPOSED_NODE_FEATURE_COUNT + 0;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int JOIN___VALIDATE__DIAGNOSTICCHAIN_MAP = COMPOSED_NODE___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Join</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int JOIN_OPERATION_COUNT = COMPOSED_NODE_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.RepImpl <em>Rep</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.RepImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getRep()

+	 * @generated

+	 */

+	int REP = 6;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP__X = COMPOSED_NODE__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP__Y = COMPOSED_NODE__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP__NAME = COMPOSED_NODE__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Global Variable</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP__GLOBAL_VARIABLE = COMPOSED_NODE__GLOBAL_VARIABLE;

+

+	/**

+	 * The feature id for the '<em><b>State Variables</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP__STATE_VARIABLES = COMPOSED_NODE__STATE_VARIABLES;

+

+	/**

+	 * The feature id for the '<em><b>Child</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP__CHILD = COMPOSED_NODE__CHILD;

+

+	/**

+	 * The feature id for the '<em><b>Numb Of Reps</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP__NUMB_OF_REPS = COMPOSED_NODE_FEATURE_COUNT + 0;

+

+	/**

+	 * The number of structural features of the '<em>Rep</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP_FEATURE_COUNT = COMPOSED_NODE_FEATURE_COUNT + 1;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP___VALIDATE__DIAGNOSTICCHAIN_MAP = COMPOSED_NODE___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Rep</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int REP_OPERATION_COUNT = COMPOSED_NODE_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl <em>Atomic Node</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getAtomicNode()

+	 * @generated

+	 */

+	int ATOMIC_NODE = 7;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__X = NODE__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__Y = NODE__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__NAME = NODE__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Global Variable</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__GLOBAL_VARIABLE = NODE__GLOBAL_VARIABLE;

+

+	/**

+	 * The feature id for the '<em><b>Place</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__PLACE = NODE_FEATURE_COUNT + 0;

+

+	/**

+	 * The feature id for the '<em><b>Timed Activity</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__TIMED_ACTIVITY = NODE_FEATURE_COUNT + 1;

+

+	/**

+	 * The feature id for the '<em><b>Instantaneous Activity</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__INSTANTANEOUS_ACTIVITY = NODE_FEATURE_COUNT + 2;

+

+	/**

+	 * The feature id for the '<em><b>Input Gate</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__INPUT_GATE = NODE_FEATURE_COUNT + 3;

+

+	/**

+	 * The feature id for the '<em><b>Output Gate</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__OUTPUT_GATE = NODE_FEATURE_COUNT + 4;

+

+	/**

+	 * The feature id for the '<em><b>Model</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE__MODEL = NODE_FEATURE_COUNT + 5;

+

+	/**

+	 * The number of structural features of the '<em>Atomic Node</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE_FEATURE_COUNT = NODE_FEATURE_COUNT + 6;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE___VALIDATE__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Atomic Node</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATOMIC_NODE_OPERATION_COUNT = NODE_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.PrimitiveImpl <em>Primitive</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.PrimitiveImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getPrimitive()

+	 * @generated

+	 */

+	int PRIMITIVE = 18;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PRIMITIVE__X = NAMED_ELEMENT__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PRIMITIVE__Y = NAMED_ELEMENT__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PRIMITIVE__NAME = NAMED_ELEMENT__NAME;

+

+	/**

+	 * The number of structural features of the '<em>Primitive</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PRIMITIVE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PRIMITIVE___VALIDATE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Primitive</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PRIMITIVE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.PlaceImpl <em>Place</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.PlaceImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getPlace()

+	 * @generated

+	 */

+	int PLACE = 8;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PLACE__X = PRIMITIVE__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PLACE__Y = PRIMITIVE__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PLACE__NAME = PRIMITIVE__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Activity</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PLACE__ACTIVITY = PRIMITIVE_FEATURE_COUNT + 0;

+

+	/**

+	 * The feature id for the '<em><b>Input Gate</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PLACE__INPUT_GATE = PRIMITIVE_FEATURE_COUNT + 1;

+

+	/**

+	 * The feature id for the '<em><b>Initial State</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PLACE__INITIAL_STATE = PRIMITIVE_FEATURE_COUNT + 2;

+

+	/**

+	 * The number of structural features of the '<em>Place</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PLACE_FEATURE_COUNT = PRIMITIVE_FEATURE_COUNT + 3;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PLACE___VALIDATE__DIAGNOSTICCHAIN_MAP = PRIMITIVE___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Place</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int PLACE_OPERATION_COUNT = PRIMITIVE_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityImpl <em>Activity</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.ActivityImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getActivity()

+	 * @generated

+	 */

+	int ACTIVITY = 13;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY__X = NAMED_ELEMENT__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY__Y = NAMED_ELEMENT__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY__NAME = NAMED_ELEMENT__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Place</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY__PLACE = NAMED_ELEMENT_FEATURE_COUNT + 0;

+

+	/**

+	 * The feature id for the '<em><b>Output Gate</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY__OUTPUT_GATE = NAMED_ELEMENT_FEATURE_COUNT + 1;

+

+	/**

+	 * The feature id for the '<em><b>Case</b></em>' attribute list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY__CASE = NAMED_ELEMENT_FEATURE_COUNT + 2;

+

+	/**

+	 * The feature id for the '<em><b>Placecase</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY__PLACECASE = NAMED_ELEMENT_FEATURE_COUNT + 3;

+

+	/**

+	 * The number of structural features of the '<em>Activity</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 4;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY___VALIDATE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Activity</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.TimedActivityImpl <em>Timed Activity</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.TimedActivityImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getTimedActivity()

+	 * @generated

+	 */

+	int TIMED_ACTIVITY = 9;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY__X = ACTIVITY__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY__Y = ACTIVITY__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY__NAME = ACTIVITY__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Place</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY__PLACE = ACTIVITY__PLACE;

+

+	/**

+	 * The feature id for the '<em><b>Output Gate</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY__OUTPUT_GATE = ACTIVITY__OUTPUT_GATE;

+

+	/**

+	 * The feature id for the '<em><b>Case</b></em>' attribute list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY__CASE = ACTIVITY__CASE;

+

+	/**

+	 * The feature id for the '<em><b>Placecase</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY__PLACECASE = ACTIVITY__PLACECASE;

+

+	/**

+	 * The feature id for the '<em><b>Rate</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY__RATE = ACTIVITY_FEATURE_COUNT + 0;

+

+	/**

+	 * The feature id for the '<em><b>Time Distribution Function</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION = ACTIVITY_FEATURE_COUNT + 1;

+

+	/**

+	 * The number of structural features of the '<em>Timed Activity</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY_FEATURE_COUNT = ACTIVITY_FEATURE_COUNT + 2;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY___VALIDATE__DIAGNOSTICCHAIN_MAP = ACTIVITY___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Timed Activity</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TIMED_ACTIVITY_OPERATION_COUNT = ACTIVITY_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.InstantaneousActivityImpl <em>Instantaneous Activity</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.InstantaneousActivityImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getInstantaneousActivity()

+	 * @generated

+	 */

+	int INSTANTANEOUS_ACTIVITY = 10;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY__X = ACTIVITY__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY__Y = ACTIVITY__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY__NAME = ACTIVITY__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Place</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY__PLACE = ACTIVITY__PLACE;

+

+	/**

+	 * The feature id for the '<em><b>Output Gate</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY__OUTPUT_GATE = ACTIVITY__OUTPUT_GATE;

+

+	/**

+	 * The feature id for the '<em><b>Case</b></em>' attribute list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY__CASE = ACTIVITY__CASE;

+

+	/**

+	 * The feature id for the '<em><b>Placecase</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY__PLACECASE = ACTIVITY__PLACECASE;

+

+	/**

+	 * The number of structural features of the '<em>Instantaneous Activity</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY_FEATURE_COUNT = ACTIVITY_FEATURE_COUNT + 0;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY___VALIDATE__DIAGNOSTICCHAIN_MAP = ACTIVITY___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Instantaneous Activity</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INSTANTANEOUS_ACTIVITY_OPERATION_COUNT = ACTIVITY_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.InputGateImpl <em>Input Gate</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.InputGateImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getInputGate()

+	 * @generated

+	 */

+	int INPUT_GATE = 11;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INPUT_GATE__X = PRIMITIVE__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INPUT_GATE__Y = PRIMITIVE__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INPUT_GATE__NAME = PRIMITIVE__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Input Predicated</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INPUT_GATE__INPUT_PREDICATED = PRIMITIVE_FEATURE_COUNT + 0;

+

+	/**

+	 * The feature id for the '<em><b>Input Function</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INPUT_GATE__INPUT_FUNCTION = PRIMITIVE_FEATURE_COUNT + 1;

+

+	/**

+	 * The feature id for the '<em><b>Activity</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INPUT_GATE__ACTIVITY = PRIMITIVE_FEATURE_COUNT + 2;

+

+	/**

+	 * The number of structural features of the '<em>Input Gate</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INPUT_GATE_FEATURE_COUNT = PRIMITIVE_FEATURE_COUNT + 3;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INPUT_GATE___VALIDATE__DIAGNOSTICCHAIN_MAP = PRIMITIVE___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Input Gate</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int INPUT_GATE_OPERATION_COUNT = PRIMITIVE_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.OutputGateImpl <em>Output Gate</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.OutputGateImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getOutputGate()

+	 * @generated

+	 */

+	int OUTPUT_GATE = 12;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE__X = INPUT_GATE__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE__Y = INPUT_GATE__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE__NAME = INPUT_GATE__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Input Predicated</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE__INPUT_PREDICATED = INPUT_GATE__INPUT_PREDICATED;

+

+	/**

+	 * The feature id for the '<em><b>Input Function</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE__INPUT_FUNCTION = INPUT_GATE__INPUT_FUNCTION;

+

+	/**

+	 * The feature id for the '<em><b>Activity</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE__ACTIVITY = INPUT_GATE__ACTIVITY;

+

+	/**

+	 * The feature id for the '<em><b>Output Function</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE__OUTPUT_FUNCTION = INPUT_GATE_FEATURE_COUNT + 0;

+

+	/**

+	 * The number of structural features of the '<em>Output Gate</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE_FEATURE_COUNT = INPUT_GATE_FEATURE_COUNT + 1;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE___VALIDATE__DIAGNOSTICCHAIN_MAP = INPUT_GATE___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Output Gate</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int OUTPUT_GATE_OPERATION_COUNT = INPUT_GATE_OPERATION_COUNT + 0;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.GateImpl <em>Gate</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.GateImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getGate()

+	 * @generated

+	 */

+	int GATE = 14;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GATE__X = NAMED_ELEMENT__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GATE__Y = NAMED_ELEMENT__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GATE__NAME = NAMED_ELEMENT__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Place</b></em>' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GATE__PLACE = NAMED_ELEMENT_FEATURE_COUNT + 0;

+

+	/**

+	 * The number of structural features of the '<em>Gate</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GATE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GATE___VALIDATE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Gate</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GATE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;

+

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.GlobalVariableImpl <em>Global Variable</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.GlobalVariableImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getGlobalVariable()

+	 * @generated

+	 */

+	int GLOBAL_VARIABLE = 15;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GLOBAL_VARIABLE__X = NAMED_ELEMENT__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GLOBAL_VARIABLE__Y = NAMED_ELEMENT__Y;

+

+	/**

+	 * The feature id for the '<em><b>Name</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GLOBAL_VARIABLE__NAME = NAMED_ELEMENT__NAME;

+

+	/**

+	 * The feature id for the '<em><b>Type</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GLOBAL_VARIABLE__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 0;

+

+	/**

+	 * The number of structural features of the '<em>Global Variable</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GLOBAL_VARIABLE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;

+

+	/**

+	 * The operation id for the '<em>Validate</em>' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GLOBAL_VARIABLE___VALIDATE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP;

+

+	/**

+	 * The number of operations of the '<em>Global Variable</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int GLOBAL_VARIABLE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;

+

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityPlaceCaseImpl <em>Activity Place Case</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.ActivityPlaceCaseImpl

+	 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getActivityPlaceCase()

+	 * @generated

+	 */

+	int ACTIVITY_PLACE_CASE = 16;

+

+	/**

+	 * The feature id for the '<em><b>X</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY_PLACE_CASE__X = GRAPHICAL_ELEMENT__X;

+

+	/**

+	 * The feature id for the '<em><b>Y</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY_PLACE_CASE__Y = GRAPHICAL_ELEMENT__Y;

+

+	/**

+	 * The feature id for the '<em><b>Place</b></em>' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY_PLACE_CASE__PLACE = GRAPHICAL_ELEMENT_FEATURE_COUNT + 0;

+

+	/**

+	 * The feature id for the '<em><b>Case</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY_PLACE_CASE__CASE = GRAPHICAL_ELEMENT_FEATURE_COUNT + 1;

+

+	/**

+	 * The number of structural features of the '<em>Activity Place Case</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY_PLACE_CASE_FEATURE_COUNT = GRAPHICAL_ELEMENT_FEATURE_COUNT + 2;

+

+	/**

+	 * The number of operations of the '<em>Activity Place Case</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ACTIVITY_PLACE_CASE_OPERATION_COUNT = GRAPHICAL_ELEMENT_OPERATION_COUNT + 0;

+

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.SANModel <em>SAN Model</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>SAN Model</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModel

+	 * @generated

+	 */

+	EClass getSANModel();

+

+	/**

+	 * Returns the meta object for the containment reference '{@link org.polarsys.chess.mobius.model.SAN.SANModel#getNode <em>Node</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference '<em>Node</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModel#getNode()

+	 * @see #getSANModel()

+	 * @generated

+	 */

+	EReference getSANModel_Node();

+

+	/**

+	 * Returns the meta object for the '{@link org.polarsys.chess.mobius.model.SAN.SANModel#getAllNodes() <em>Get All Nodes</em>}' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the '<em>Get All Nodes</em>' operation.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModel#getAllNodes()

+	 * @generated

+	 */

+	EOperation getSANModel__GetAllNodes();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.NamedElement <em>Named Element</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Named Element</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.NamedElement

+	 * @generated

+	 */

+	EClass getNamedElement();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.NamedElement#getName <em>Name</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Name</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.NamedElement#getName()

+	 * @see #getNamedElement()

+	 * @generated

+	 */

+	EAttribute getNamedElement_Name();

+

+	/**

+	 * Returns the meta object for the '{@link org.polarsys.chess.mobius.model.SAN.NamedElement#validate(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate</em>}' operation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the '<em>Validate</em>' operation.

+	 * @see org.polarsys.chess.mobius.model.SAN.NamedElement#validate(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)

+	 * @generated

+	 */

+	EOperation getNamedElement__Validate__DiagnosticChain_Map();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.Node <em>Node</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Node</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Node

+	 * @generated

+	 */

+	EClass getNode();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.Node#getGlobalVariable <em>Global Variable</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>Global Variable</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Node#getGlobalVariable()

+	 * @see #getNode()

+	 * @generated

+	 */

+	EReference getNode_GlobalVariable();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.ComposedNode <em>Composed Node</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Composed Node</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.ComposedNode

+	 * @generated

+	 */

+	EClass getComposedNode();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.ComposedNode#getStateVariables <em>State Variables</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>State Variables</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.ComposedNode#getStateVariables()

+	 * @see #getComposedNode()

+	 * @generated

+	 */

+	EReference getComposedNode_StateVariables();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.ComposedNode#getChild <em>Child</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>Child</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.ComposedNode#getChild()

+	 * @see #getComposedNode()

+	 * @generated

+	 */

+	EReference getComposedNode_Child();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.SharedState <em>Shared State</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Shared State</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.SharedState

+	 * @generated

+	 */

+	EClass getSharedState();

+

+	/**

+	 * Returns the meta object for the reference list '{@link org.polarsys.chess.mobius.model.SAN.SharedState#getPlace <em>Place</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference list '<em>Place</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.SharedState#getPlace()

+	 * @see #getSharedState()

+	 * @generated

+	 */

+	EReference getSharedState_Place();

+

+	/**

+	 * Returns the meta object for the reference list '{@link org.polarsys.chess.mobius.model.SAN.SharedState#getSharedStates <em>Shared States</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference list '<em>Shared States</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.SharedState#getSharedStates()

+	 * @see #getSharedState()

+	 * @generated

+	 */

+	EReference getSharedState_SharedStates();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.Join <em>Join</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Join</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Join

+	 * @generated

+	 */

+	EClass getJoin();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.Rep <em>Rep</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Rep</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Rep

+	 * @generated

+	 */

+	EClass getRep();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.Rep#getNumbOfReps <em>Numb Of Reps</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Numb Of Reps</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Rep#getNumbOfReps()

+	 * @see #getRep()

+	 * @generated

+	 */

+	EAttribute getRep_NumbOfReps();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.AtomicNode <em>Atomic Node</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Atomic Node</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.AtomicNode

+	 * @generated

+	 */

+	EClass getAtomicNode();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getPlace <em>Place</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>Place</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.AtomicNode#getPlace()

+	 * @see #getAtomicNode()

+	 * @generated

+	 */

+	EReference getAtomicNode_Place();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getTimedActivity <em>Timed Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>Timed Activity</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.AtomicNode#getTimedActivity()

+	 * @see #getAtomicNode()

+	 * @generated

+	 */

+	EReference getAtomicNode_TimedActivity();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getInstantaneousActivity <em>Instantaneous Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>Instantaneous Activity</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.AtomicNode#getInstantaneousActivity()

+	 * @see #getAtomicNode()

+	 * @generated

+	 */

+	EReference getAtomicNode_InstantaneousActivity();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getInputGate <em>Input Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>Input Gate</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.AtomicNode#getInputGate()

+	 * @see #getAtomicNode()

+	 * @generated

+	 */

+	EReference getAtomicNode_InputGate();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getOutputGate <em>Output Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>Output Gate</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.AtomicNode#getOutputGate()

+	 * @see #getAtomicNode()

+	 * @generated

+	 */

+	EReference getAtomicNode_OutputGate();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.AtomicNode#getModel <em>Model</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Model</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.AtomicNode#getModel()

+	 * @see #getAtomicNode()

+	 * @generated

+	 */

+	EAttribute getAtomicNode_Model();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.Place <em>Place</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Place</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Place

+	 * @generated

+	 */

+	EClass getPlace();

+

+	/**

+	 * Returns the meta object for the reference list '{@link org.polarsys.chess.mobius.model.SAN.Place#getActivity <em>Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference list '<em>Activity</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Place#getActivity()

+	 * @see #getPlace()

+	 * @generated

+	 */

+	EReference getPlace_Activity();

+

+	/**

+	 * Returns the meta object for the reference list '{@link org.polarsys.chess.mobius.model.SAN.Place#getInputGate <em>Input Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference list '<em>Input Gate</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Place#getInputGate()

+	 * @see #getPlace()

+	 * @generated

+	 */

+	EReference getPlace_InputGate();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.Place#getInitialState <em>Initial State</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Initial State</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Place#getInitialState()

+	 * @see #getPlace()

+	 * @generated

+	 */

+	EAttribute getPlace_InitialState();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.TimedActivity <em>Timed Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Timed Activity</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.TimedActivity

+	 * @generated

+	 */

+	EClass getTimedActivity();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.TimedActivity#getRate <em>Rate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Rate</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.TimedActivity#getRate()

+	 * @see #getTimedActivity()

+	 * @generated

+	 */

+	EAttribute getTimedActivity_Rate();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.TimedActivity#getTimeDistributionFunction <em>Time Distribution Function</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Time Distribution Function</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.TimedActivity#getTimeDistributionFunction()

+	 * @see #getTimedActivity()

+	 * @generated

+	 */

+	EAttribute getTimedActivity_TimeDistributionFunction();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.InstantaneousActivity <em>Instantaneous Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Instantaneous Activity</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.InstantaneousActivity

+	 * @generated

+	 */

+	EClass getInstantaneousActivity();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.InputGate <em>Input Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Input Gate</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.InputGate

+	 * @generated

+	 */

+	EClass getInputGate();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.InputGate#getInputPredicated <em>Input Predicated</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Input Predicated</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.InputGate#getInputPredicated()

+	 * @see #getInputGate()

+	 * @generated

+	 */

+	EAttribute getInputGate_InputPredicated();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.InputGate#getInputFunction <em>Input Function</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Input Function</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.InputGate#getInputFunction()

+	 * @see #getInputGate()

+	 * @generated

+	 */

+	EAttribute getInputGate_InputFunction();

+

+	/**

+	 * Returns the meta object for the reference list '{@link org.polarsys.chess.mobius.model.SAN.InputGate#getActivity <em>Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference list '<em>Activity</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.InputGate#getActivity()

+	 * @see #getInputGate()

+	 * @generated

+	 */

+	EReference getInputGate_Activity();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.OutputGate <em>Output Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Output Gate</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.OutputGate

+	 * @generated

+	 */

+	EClass getOutputGate();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.OutputGate#getOutputFunction <em>Output Function</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Output Function</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.OutputGate#getOutputFunction()

+	 * @see #getOutputGate()

+	 * @generated

+	 */

+	EAttribute getOutputGate_OutputFunction();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.Activity <em>Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Activity</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Activity

+	 * @generated

+	 */

+	EClass getActivity();

+

+	/**

+	 * Returns the meta object for the reference list '{@link org.polarsys.chess.mobius.model.SAN.Activity#getPlace <em>Place</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference list '<em>Place</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Activity#getPlace()

+	 * @see #getActivity()

+	 * @generated

+	 */

+	EReference getActivity_Place();

+

+	/**

+	 * Returns the meta object for the reference list '{@link org.polarsys.chess.mobius.model.SAN.Activity#getOutputGate <em>Output Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference list '<em>Output Gate</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Activity#getOutputGate()

+	 * @see #getActivity()

+	 * @generated

+	 */

+	EReference getActivity_OutputGate();

+

+	/**

+	 * Returns the meta object for the attribute list '{@link org.polarsys.chess.mobius.model.SAN.Activity#getCase <em>Case</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute list '<em>Case</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Activity#getCase()

+	 * @see #getActivity()

+	 * @generated

+	 */

+	EAttribute getActivity_Case();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.Activity#getPlacecase <em>Placecase</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>Placecase</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Activity#getPlacecase()

+	 * @see #getActivity()

+	 * @generated

+	 */

+	EReference getActivity_Placecase();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.Gate <em>Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Gate</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Gate

+	 * @generated

+	 */

+	EClass getGate();

+

+	/**

+	 * Returns the meta object for the containment reference list '{@link org.polarsys.chess.mobius.model.SAN.Gate#getPlace <em>Place</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the containment reference list '<em>Place</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Gate#getPlace()

+	 * @see #getGate()

+	 * @generated

+	 */

+	EReference getGate_Place();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.GlobalVariable <em>Global Variable</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Global Variable</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.GlobalVariable

+	 * @generated

+	 */

+	EClass getGlobalVariable();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.GlobalVariable#getType <em>Type</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Type</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.GlobalVariable#getType()

+	 * @see #getGlobalVariable()

+	 * @generated

+	 */

+	EAttribute getGlobalVariable_Type();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase <em>Activity Place Case</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Activity Place Case</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase

+	 * @generated

+	 */

+	EClass getActivityPlaceCase();

+

+	/**

+	 * Returns the meta object for the reference list '{@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase#getPlace <em>Place</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference list '<em>Place</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase#getPlace()

+	 * @see #getActivityPlaceCase()

+	 * @generated

+	 */

+	EReference getActivityPlaceCase_Place();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase#getCase <em>Case</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Case</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase#getCase()

+	 * @see #getActivityPlaceCase()

+	 * @generated

+	 */

+	EAttribute getActivityPlaceCase_Case();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.GraphicalElement <em>Graphical Element</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Graphical Element</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.GraphicalElement

+	 * @generated

+	 */

+	EClass getGraphicalElement();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.GraphicalElement#getX <em>X</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>X</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.GraphicalElement#getX()

+	 * @see #getGraphicalElement()

+	 * @generated

+	 */

+	EAttribute getGraphicalElement_X();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.mobius.model.SAN.GraphicalElement#getY <em>Y</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Y</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.GraphicalElement#getY()

+	 * @see #getGraphicalElement()

+	 * @generated

+	 */

+	EAttribute getGraphicalElement_Y();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.mobius.model.SAN.Primitive <em>Primitive</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Primitive</em>'.

+	 * @see org.polarsys.chess.mobius.model.SAN.Primitive

+	 * @generated

+	 */

+	EClass getPrimitive();

+

+	/**

+	 * Returns the factory that creates the instances of the model.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the factory that creates the instances of the model.

+	 * @generated

+	 */

+	SANModelFactory getSANModelFactory();

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * Defines literals for the meta objects that represent

+	 * <ul>

+	 *   <li>each class,</li>

+	 *   <li>each feature of each class,</li>

+	 *   <li>each operation of each class,</li>

+	 *   <li>each enum,</li>

+	 *   <li>and each data type</li>

+	 * </ul>

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	interface Literals {

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.SANModelImpl <em>SAN Model</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getSANModel()

+		 * @generated

+		 */

+		EClass SAN_MODEL = eINSTANCE.getSANModel();

+

+		/**

+		 * The meta object literal for the '<em><b>Node</b></em>' containment reference feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference SAN_MODEL__NODE = eINSTANCE.getSANModel_Node();

+

+		/**

+		 * The meta object literal for the '<em><b>Get All Nodes</b></em>' operation.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EOperation SAN_MODEL___GET_ALL_NODES = eINSTANCE.getSANModel__GetAllNodes();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.NamedElementImpl <em>Named Element</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.NamedElementImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getNamedElement()

+		 * @generated

+		 */

+		EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();

+

+		/**

+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();

+

+		/**

+		 * The meta object literal for the '<em><b>Validate</b></em>' operation.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EOperation NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP = eINSTANCE.getNamedElement__Validate__DiagnosticChain_Map();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.NodeImpl <em>Node</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.NodeImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getNode()

+		 * @generated

+		 */

+		EClass NODE = eINSTANCE.getNode();

+

+		/**

+		 * The meta object literal for the '<em><b>Global Variable</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference NODE__GLOBAL_VARIABLE = eINSTANCE.getNode_GlobalVariable();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.ComposedNodeImpl <em>Composed Node</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.ComposedNodeImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getComposedNode()

+		 * @generated

+		 */

+		EClass COMPOSED_NODE = eINSTANCE.getComposedNode();

+

+		/**

+		 * The meta object literal for the '<em><b>State Variables</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference COMPOSED_NODE__STATE_VARIABLES = eINSTANCE.getComposedNode_StateVariables();

+

+		/**

+		 * The meta object literal for the '<em><b>Child</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference COMPOSED_NODE__CHILD = eINSTANCE.getComposedNode_Child();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.SharedStateImpl <em>Shared State</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SharedStateImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getSharedState()

+		 * @generated

+		 */

+		EClass SHARED_STATE = eINSTANCE.getSharedState();

+

+		/**

+		 * The meta object literal for the '<em><b>Place</b></em>' reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference SHARED_STATE__PLACE = eINSTANCE.getSharedState_Place();

+

+		/**

+		 * The meta object literal for the '<em><b>Shared States</b></em>' reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference SHARED_STATE__SHARED_STATES = eINSTANCE.getSharedState_SharedStates();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.JoinImpl <em>Join</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.JoinImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getJoin()

+		 * @generated

+		 */

+		EClass JOIN = eINSTANCE.getJoin();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.RepImpl <em>Rep</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.RepImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getRep()

+		 * @generated

+		 */

+		EClass REP = eINSTANCE.getRep();

+

+		/**

+		 * The meta object literal for the '<em><b>Numb Of Reps</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute REP__NUMB_OF_REPS = eINSTANCE.getRep_NumbOfReps();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl <em>Atomic Node</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getAtomicNode()

+		 * @generated

+		 */

+		EClass ATOMIC_NODE = eINSTANCE.getAtomicNode();

+

+		/**

+		 * The meta object literal for the '<em><b>Place</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ATOMIC_NODE__PLACE = eINSTANCE.getAtomicNode_Place();

+

+		/**

+		 * The meta object literal for the '<em><b>Timed Activity</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ATOMIC_NODE__TIMED_ACTIVITY = eINSTANCE.getAtomicNode_TimedActivity();

+

+		/**

+		 * The meta object literal for the '<em><b>Instantaneous Activity</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ATOMIC_NODE__INSTANTANEOUS_ACTIVITY = eINSTANCE.getAtomicNode_InstantaneousActivity();

+

+		/**

+		 * The meta object literal for the '<em><b>Input Gate</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ATOMIC_NODE__INPUT_GATE = eINSTANCE.getAtomicNode_InputGate();

+

+		/**

+		 * The meta object literal for the '<em><b>Output Gate</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ATOMIC_NODE__OUTPUT_GATE = eINSTANCE.getAtomicNode_OutputGate();

+

+		/**

+		 * The meta object literal for the '<em><b>Model</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute ATOMIC_NODE__MODEL = eINSTANCE.getAtomicNode_Model();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.PlaceImpl <em>Place</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.PlaceImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getPlace()

+		 * @generated

+		 */

+		EClass PLACE = eINSTANCE.getPlace();

+

+		/**

+		 * The meta object literal for the '<em><b>Activity</b></em>' reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference PLACE__ACTIVITY = eINSTANCE.getPlace_Activity();

+

+		/**

+		 * The meta object literal for the '<em><b>Input Gate</b></em>' reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference PLACE__INPUT_GATE = eINSTANCE.getPlace_InputGate();

+

+		/**

+		 * The meta object literal for the '<em><b>Initial State</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute PLACE__INITIAL_STATE = eINSTANCE.getPlace_InitialState();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.TimedActivityImpl <em>Timed Activity</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.TimedActivityImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getTimedActivity()

+		 * @generated

+		 */

+		EClass TIMED_ACTIVITY = eINSTANCE.getTimedActivity();

+

+		/**

+		 * The meta object literal for the '<em><b>Rate</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute TIMED_ACTIVITY__RATE = eINSTANCE.getTimedActivity_Rate();

+

+		/**

+		 * The meta object literal for the '<em><b>Time Distribution Function</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION = eINSTANCE.getTimedActivity_TimeDistributionFunction();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.InstantaneousActivityImpl <em>Instantaneous Activity</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.InstantaneousActivityImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getInstantaneousActivity()

+		 * @generated

+		 */

+		EClass INSTANTANEOUS_ACTIVITY = eINSTANCE.getInstantaneousActivity();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.InputGateImpl <em>Input Gate</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.InputGateImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getInputGate()

+		 * @generated

+		 */

+		EClass INPUT_GATE = eINSTANCE.getInputGate();

+

+		/**

+		 * The meta object literal for the '<em><b>Input Predicated</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute INPUT_GATE__INPUT_PREDICATED = eINSTANCE.getInputGate_InputPredicated();

+

+		/**

+		 * The meta object literal for the '<em><b>Input Function</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute INPUT_GATE__INPUT_FUNCTION = eINSTANCE.getInputGate_InputFunction();

+

+		/**

+		 * The meta object literal for the '<em><b>Activity</b></em>' reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference INPUT_GATE__ACTIVITY = eINSTANCE.getInputGate_Activity();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.OutputGateImpl <em>Output Gate</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.OutputGateImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getOutputGate()

+		 * @generated

+		 */

+		EClass OUTPUT_GATE = eINSTANCE.getOutputGate();

+

+		/**

+		 * The meta object literal for the '<em><b>Output Function</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute OUTPUT_GATE__OUTPUT_FUNCTION = eINSTANCE.getOutputGate_OutputFunction();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityImpl <em>Activity</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.ActivityImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getActivity()

+		 * @generated

+		 */

+		EClass ACTIVITY = eINSTANCE.getActivity();

+

+		/**

+		 * The meta object literal for the '<em><b>Place</b></em>' reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ACTIVITY__PLACE = eINSTANCE.getActivity_Place();

+

+		/**

+		 * The meta object literal for the '<em><b>Output Gate</b></em>' reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ACTIVITY__OUTPUT_GATE = eINSTANCE.getActivity_OutputGate();

+

+		/**

+		 * The meta object literal for the '<em><b>Case</b></em>' attribute list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute ACTIVITY__CASE = eINSTANCE.getActivity_Case();

+

+		/**

+		 * The meta object literal for the '<em><b>Placecase</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ACTIVITY__PLACECASE = eINSTANCE.getActivity_Placecase();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.GateImpl <em>Gate</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.GateImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getGate()

+		 * @generated

+		 */

+		EClass GATE = eINSTANCE.getGate();

+

+		/**

+		 * The meta object literal for the '<em><b>Place</b></em>' containment reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference GATE__PLACE = eINSTANCE.getGate_Place();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.GlobalVariableImpl <em>Global Variable</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.GlobalVariableImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getGlobalVariable()

+		 * @generated

+		 */

+		EClass GLOBAL_VARIABLE = eINSTANCE.getGlobalVariable();

+

+		/**

+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute GLOBAL_VARIABLE__TYPE = eINSTANCE.getGlobalVariable_Type();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityPlaceCaseImpl <em>Activity Place Case</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.ActivityPlaceCaseImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getActivityPlaceCase()

+		 * @generated

+		 */

+		EClass ACTIVITY_PLACE_CASE = eINSTANCE.getActivityPlaceCase();

+

+		/**

+		 * The meta object literal for the '<em><b>Place</b></em>' reference list feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ACTIVITY_PLACE_CASE__PLACE = eINSTANCE.getActivityPlaceCase_Place();

+

+		/**

+		 * The meta object literal for the '<em><b>Case</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute ACTIVITY_PLACE_CASE__CASE = eINSTANCE.getActivityPlaceCase_Case();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.GraphicalElementImpl <em>Graphical Element</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.GraphicalElementImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getGraphicalElement()

+		 * @generated

+		 */

+		EClass GRAPHICAL_ELEMENT = eINSTANCE.getGraphicalElement();

+

+		/**

+		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute GRAPHICAL_ELEMENT__X = eINSTANCE.getGraphicalElement_X();

+

+		/**

+		 * The meta object literal for the '<em><b>Y</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute GRAPHICAL_ELEMENT__Y = eINSTANCE.getGraphicalElement_Y();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.mobius.model.SAN.impl.PrimitiveImpl <em>Primitive</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.PrimitiveImpl

+		 * @see org.polarsys.chess.mobius.model.SAN.impl.SANModelPackageImpl#getPrimitive()

+		 * @generated

+		 */

+		EClass PRIMITIVE = eINSTANCE.getPrimitive();

+

+	}

+

+} //SANModelPackage

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SharedState.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SharedState.java
new file mode 100644
index 0000000..6fd6cd0
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/SharedState.java
@@ -0,0 +1,58 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+import org.eclipse.emf.common.util.EList;

+

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Shared State</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.SharedState#getPlace <em>Place</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.SharedState#getSharedStates <em>Shared States</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getSharedState()

+ * @model

+ * @generated

+ */

+public interface SharedState extends NamedElement {

+	/**

+	 * Returns the value of the '<em><b>Place</b></em>' reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.Place}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Place</em>' reference isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Place</em>' reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getSharedState_Place()

+	 * @model

+	 * @generated

+	 */

+	EList<Place> getPlace();

+

+	/**

+	 * Returns the value of the '<em><b>Shared States</b></em>' reference list.

+	 * The list contents are of type {@link org.polarsys.chess.mobius.model.SAN.SharedState}.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Shared States</em>' reference list isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Shared States</em>' reference list.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getSharedState_SharedStates()

+	 * @model

+	 * @generated

+	 */

+	EList<SharedState> getSharedStates();

+

+} // SharedState

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/TimedActivity.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/TimedActivity.java
new file mode 100644
index 0000000..2db06e6
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/TimedActivity.java
@@ -0,0 +1,76 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN;

+

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Timed Activity</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.TimedActivity#getRate <em>Rate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.TimedActivity#getTimeDistributionFunction <em>Time Distribution Function</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getTimedActivity()

+ * @model

+ * @generated

+ */

+public interface TimedActivity extends Activity {

+

+	/**

+	 * Returns the value of the '<em><b>Rate</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Rate</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Rate</em>' attribute.

+	 * @see #setRate(String)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getTimedActivity_Rate()

+	 * @model

+	 * @generated

+	 */

+	String getRate();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.TimedActivity#getRate <em>Rate</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Rate</em>' attribute.

+	 * @see #getRate()

+	 * @generated

+	 */

+	void setRate(String value);

+

+	/**

+	 * Returns the value of the '<em><b>Time Distribution Function</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Time Distribution Function</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Time Distribution Function</em>' attribute.

+	 * @see #setTimeDistributionFunction(String)

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#getTimedActivity_TimeDistributionFunction()

+	 * @model

+	 * @generated

+	 */

+	String getTimeDistributionFunction();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.mobius.model.SAN.TimedActivity#getTimeDistributionFunction <em>Time Distribution Function</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Time Distribution Function</em>' attribute.

+	 * @see #getTimeDistributionFunction()

+	 * @generated

+	 */

+	void setTimeDistributionFunction(String value);

+} // TimedActivity

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/ActivityImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/ActivityImpl.java
new file mode 100644
index 0000000..37d6dc4
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/ActivityImpl.java
@@ -0,0 +1,269 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.util.Collection;

+import org.eclipse.emf.common.notify.NotificationChain;

+import org.eclipse.emf.common.util.EList;

+

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.InternalEObject;

+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;

+import org.eclipse.emf.ecore.util.EObjectContainmentEList;

+import org.eclipse.emf.ecore.util.EObjectResolvingEList;

+

+import org.eclipse.emf.ecore.util.InternalEList;

+import org.polarsys.chess.mobius.model.SAN.Activity;

+import org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase;

+import org.polarsys.chess.mobius.model.SAN.OutputGate;

+import org.polarsys.chess.mobius.model.SAN.Place;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Activity</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityImpl#getPlace <em>Place</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityImpl#getOutputGate <em>Output Gate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityImpl#getCase <em>Case</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityImpl#getPlacecase <em>Placecase</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public abstract class ActivityImpl extends NamedElementImpl implements Activity {

+	/**

+	 * The cached value of the '{@link #getPlace() <em>Place</em>}' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getPlace()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<Place> place;

+

+	/**

+	 * The cached value of the '{@link #getOutputGate() <em>Output Gate</em>}' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getOutputGate()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<OutputGate> outputGate;

+

+	/**

+	 * The cached value of the '{@link #getCase() <em>Case</em>}' attribute list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getCase()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<String> case_;

+

+	/**

+	 * The cached value of the '{@link #getPlacecase() <em>Placecase</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getPlacecase()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<ActivityPlaceCase> placecase;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ActivityImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.ACTIVITY;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<Place> getPlace() {

+		if (place == null) {

+			place = new EObjectResolvingEList<Place>(Place.class, this, SANModelPackage.ACTIVITY__PLACE);

+		}

+		return place;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<OutputGate> getOutputGate() {

+		if (outputGate == null) {

+			outputGate = new EObjectResolvingEList<OutputGate>(OutputGate.class, this, SANModelPackage.ACTIVITY__OUTPUT_GATE);

+		}

+		return outputGate;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<String> getCase() {

+		if (case_ == null) {

+			case_ = new EDataTypeUniqueEList<String>(String.class, this, SANModelPackage.ACTIVITY__CASE);

+		}

+		return case_;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<ActivityPlaceCase> getPlacecase() {

+		if (placecase == null) {

+			placecase = new EObjectContainmentEList<ActivityPlaceCase>(ActivityPlaceCase.class, this, SANModelPackage.ACTIVITY__PLACECASE);

+		}

+		return placecase;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {

+		switch (featureID) {

+			case SANModelPackage.ACTIVITY__PLACECASE:

+				return ((InternalEList<?>)getPlacecase()).basicRemove(otherEnd, msgs);

+		}

+		return super.eInverseRemove(otherEnd, featureID, msgs);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.ACTIVITY__PLACE:

+				return getPlace();

+			case SANModelPackage.ACTIVITY__OUTPUT_GATE:

+				return getOutputGate();

+			case SANModelPackage.ACTIVITY__CASE:

+				return getCase();

+			case SANModelPackage.ACTIVITY__PLACECASE:

+				return getPlacecase();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.ACTIVITY__PLACE:

+				getPlace().clear();

+				getPlace().addAll((Collection<? extends Place>)newValue);

+				return;

+			case SANModelPackage.ACTIVITY__OUTPUT_GATE:

+				getOutputGate().clear();

+				getOutputGate().addAll((Collection<? extends OutputGate>)newValue);

+				return;

+			case SANModelPackage.ACTIVITY__CASE:

+				getCase().clear();

+				getCase().addAll((Collection<? extends String>)newValue);

+				return;

+			case SANModelPackage.ACTIVITY__PLACECASE:

+				getPlacecase().clear();

+				getPlacecase().addAll((Collection<? extends ActivityPlaceCase>)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.ACTIVITY__PLACE:

+				getPlace().clear();

+				return;

+			case SANModelPackage.ACTIVITY__OUTPUT_GATE:

+				getOutputGate().clear();

+				return;

+			case SANModelPackage.ACTIVITY__CASE:

+				getCase().clear();

+				return;

+			case SANModelPackage.ACTIVITY__PLACECASE:

+				getPlacecase().clear();

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.ACTIVITY__PLACE:

+				return place != null && !place.isEmpty();

+			case SANModelPackage.ACTIVITY__OUTPUT_GATE:

+				return outputGate != null && !outputGate.isEmpty();

+			case SANModelPackage.ACTIVITY__CASE:

+				return case_ != null && !case_.isEmpty();

+			case SANModelPackage.ACTIVITY__PLACECASE:

+				return placecase != null && !placecase.isEmpty();

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (case: ");

+		result.append(case_);

+		result.append(')');

+		return result.toString();

+	}

+

+} //ActivityImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/ActivityPlaceCaseImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/ActivityPlaceCaseImpl.java
new file mode 100644
index 0000000..97d3137
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/ActivityPlaceCaseImpl.java
@@ -0,0 +1,199 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.util.Collection;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.eclipse.emf.ecore.util.EObjectResolvingEList;

+import org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase;

+import org.polarsys.chess.mobius.model.SAN.Primitive;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Activity Place Case</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityPlaceCaseImpl#getPlace <em>Place</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.ActivityPlaceCaseImpl#getCase <em>Case</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class ActivityPlaceCaseImpl extends GraphicalElementImpl implements ActivityPlaceCase {

+	/**

+	 * The cached value of the '{@link #getPlace() <em>Place</em>}' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getPlace()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<Primitive> place;

+

+	/**

+	 * The default value of the '{@link #getCase() <em>Case</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getCase()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final int CASE_EDEFAULT = 0;

+

+	/**

+	 * The cached value of the '{@link #getCase() <em>Case</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getCase()

+	 * @generated

+	 * @ordered

+	 */

+	protected int case_ = CASE_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ActivityPlaceCaseImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.ACTIVITY_PLACE_CASE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<Primitive> getPlace() {

+		if (place == null) {

+			place = new EObjectResolvingEList<Primitive>(Primitive.class, this, SANModelPackage.ACTIVITY_PLACE_CASE__PLACE);

+		}

+		return place;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public int getCase() {

+		return case_;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setCase(int newCase) {

+		int oldCase = case_;

+		case_ = newCase;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.ACTIVITY_PLACE_CASE__CASE, oldCase, case_));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.ACTIVITY_PLACE_CASE__PLACE:

+				return getPlace();

+			case SANModelPackage.ACTIVITY_PLACE_CASE__CASE:

+				return getCase();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.ACTIVITY_PLACE_CASE__PLACE:

+				getPlace().clear();

+				getPlace().addAll((Collection<? extends Primitive>)newValue);

+				return;

+			case SANModelPackage.ACTIVITY_PLACE_CASE__CASE:

+				setCase((Integer)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.ACTIVITY_PLACE_CASE__PLACE:

+				getPlace().clear();

+				return;

+			case SANModelPackage.ACTIVITY_PLACE_CASE__CASE:

+				setCase(CASE_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.ACTIVITY_PLACE_CASE__PLACE:

+				return place != null && !place.isEmpty();

+			case SANModelPackage.ACTIVITY_PLACE_CASE__CASE:

+				return case_ != CASE_EDEFAULT;

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (case: ");

+		result.append(case_);

+		result.append(')');

+		return result.toString();

+	}

+

+} //ActivityPlaceCaseImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/AtomicNodeImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/AtomicNodeImpl.java
new file mode 100644
index 0000000..41fae78
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/AtomicNodeImpl.java
@@ -0,0 +1,368 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.util.Collection;

+

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.common.notify.NotificationChain;

+

+import org.eclipse.emf.common.util.EList;

+

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.InternalEObject;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.eclipse.emf.ecore.util.EObjectContainmentEList;

+import org.eclipse.emf.ecore.util.InternalEList;

+

+import org.polarsys.chess.mobius.model.SAN.AtomicNode;

+import org.polarsys.chess.mobius.model.SAN.InputGate;

+import org.polarsys.chess.mobius.model.SAN.InstantaneousActivity;

+import org.polarsys.chess.mobius.model.SAN.OutputGate;

+import org.polarsys.chess.mobius.model.SAN.Place;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.model.SAN.TimedActivity;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Atomic Node</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl#getPlace <em>Place</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl#getTimedActivity <em>Timed Activity</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl#getInstantaneousActivity <em>Instantaneous Activity</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl#getInputGate <em>Input Gate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl#getOutputGate <em>Output Gate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.AtomicNodeImpl#getModel <em>Model</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class AtomicNodeImpl extends NodeImpl implements AtomicNode {

+	/**

+	 * The cached value of the '{@link #getPlace() <em>Place</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getPlace()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<Place> place;

+

+	/**

+	 * The cached value of the '{@link #getTimedActivity() <em>Timed Activity</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getTimedActivity()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<TimedActivity> timedActivity;

+

+	/**

+	 * The cached value of the '{@link #getInstantaneousActivity() <em>Instantaneous Activity</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getInstantaneousActivity()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<InstantaneousActivity> instantaneousActivity;

+

+	/**

+	 * The cached value of the '{@link #getInputGate() <em>Input Gate</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getInputGate()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<InputGate> inputGate;

+

+	/**

+	 * The cached value of the '{@link #getOutputGate() <em>Output Gate</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getOutputGate()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<OutputGate> outputGate;

+

+	/**

+	 * The default value of the '{@link #getModel() <em>Model</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getModel()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String MODEL_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getModel() <em>Model</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getModel()

+	 * @generated

+	 * @ordered

+	 */

+	protected String model = MODEL_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected AtomicNodeImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.ATOMIC_NODE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<Place> getPlace() {

+		if (place == null) {

+			place = new EObjectContainmentEList<Place>(Place.class, this, SANModelPackage.ATOMIC_NODE__PLACE);

+		}

+		return place;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<TimedActivity> getTimedActivity() {

+		if (timedActivity == null) {

+			timedActivity = new EObjectContainmentEList<TimedActivity>(TimedActivity.class, this, SANModelPackage.ATOMIC_NODE__TIMED_ACTIVITY);

+		}

+		return timedActivity;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<InstantaneousActivity> getInstantaneousActivity() {

+		if (instantaneousActivity == null) {

+			instantaneousActivity = new EObjectContainmentEList<InstantaneousActivity>(InstantaneousActivity.class, this, SANModelPackage.ATOMIC_NODE__INSTANTANEOUS_ACTIVITY);

+		}

+		return instantaneousActivity;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<InputGate> getInputGate() {

+		if (inputGate == null) {

+			inputGate = new EObjectContainmentEList<InputGate>(InputGate.class, this, SANModelPackage.ATOMIC_NODE__INPUT_GATE);

+		}

+		return inputGate;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<OutputGate> getOutputGate() {

+		if (outputGate == null) {

+			outputGate = new EObjectContainmentEList<OutputGate>(OutputGate.class, this, SANModelPackage.ATOMIC_NODE__OUTPUT_GATE);

+		}

+		return outputGate;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getModel() {

+		return model;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setModel(String newModel) {

+		String oldModel = model;

+		model = newModel;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.ATOMIC_NODE__MODEL, oldModel, model));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {

+		switch (featureID) {

+			case SANModelPackage.ATOMIC_NODE__PLACE:

+				return ((InternalEList<?>)getPlace()).basicRemove(otherEnd, msgs);

+			case SANModelPackage.ATOMIC_NODE__TIMED_ACTIVITY:

+				return ((InternalEList<?>)getTimedActivity()).basicRemove(otherEnd, msgs);

+			case SANModelPackage.ATOMIC_NODE__INSTANTANEOUS_ACTIVITY:

+				return ((InternalEList<?>)getInstantaneousActivity()).basicRemove(otherEnd, msgs);

+			case SANModelPackage.ATOMIC_NODE__INPUT_GATE:

+				return ((InternalEList<?>)getInputGate()).basicRemove(otherEnd, msgs);

+			case SANModelPackage.ATOMIC_NODE__OUTPUT_GATE:

+				return ((InternalEList<?>)getOutputGate()).basicRemove(otherEnd, msgs);

+		}

+		return super.eInverseRemove(otherEnd, featureID, msgs);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.ATOMIC_NODE__PLACE:

+				return getPlace();

+			case SANModelPackage.ATOMIC_NODE__TIMED_ACTIVITY:

+				return getTimedActivity();

+			case SANModelPackage.ATOMIC_NODE__INSTANTANEOUS_ACTIVITY:

+				return getInstantaneousActivity();

+			case SANModelPackage.ATOMIC_NODE__INPUT_GATE:

+				return getInputGate();

+			case SANModelPackage.ATOMIC_NODE__OUTPUT_GATE:

+				return getOutputGate();

+			case SANModelPackage.ATOMIC_NODE__MODEL:

+				return getModel();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.ATOMIC_NODE__PLACE:

+				getPlace().clear();

+				getPlace().addAll((Collection<? extends Place>)newValue);

+				return;

+			case SANModelPackage.ATOMIC_NODE__TIMED_ACTIVITY:

+				getTimedActivity().clear();

+				getTimedActivity().addAll((Collection<? extends TimedActivity>)newValue);

+				return;

+			case SANModelPackage.ATOMIC_NODE__INSTANTANEOUS_ACTIVITY:

+				getInstantaneousActivity().clear();

+				getInstantaneousActivity().addAll((Collection<? extends InstantaneousActivity>)newValue);

+				return;

+			case SANModelPackage.ATOMIC_NODE__INPUT_GATE:

+				getInputGate().clear();

+				getInputGate().addAll((Collection<? extends InputGate>)newValue);

+				return;

+			case SANModelPackage.ATOMIC_NODE__OUTPUT_GATE:

+				getOutputGate().clear();

+				getOutputGate().addAll((Collection<? extends OutputGate>)newValue);

+				return;

+			case SANModelPackage.ATOMIC_NODE__MODEL:

+				setModel((String)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.ATOMIC_NODE__PLACE:

+				getPlace().clear();

+				return;

+			case SANModelPackage.ATOMIC_NODE__TIMED_ACTIVITY:

+				getTimedActivity().clear();

+				return;

+			case SANModelPackage.ATOMIC_NODE__INSTANTANEOUS_ACTIVITY:

+				getInstantaneousActivity().clear();

+				return;

+			case SANModelPackage.ATOMIC_NODE__INPUT_GATE:

+				getInputGate().clear();

+				return;

+			case SANModelPackage.ATOMIC_NODE__OUTPUT_GATE:

+				getOutputGate().clear();

+				return;

+			case SANModelPackage.ATOMIC_NODE__MODEL:

+				setModel(MODEL_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.ATOMIC_NODE__PLACE:

+				return place != null && !place.isEmpty();

+			case SANModelPackage.ATOMIC_NODE__TIMED_ACTIVITY:

+				return timedActivity != null && !timedActivity.isEmpty();

+			case SANModelPackage.ATOMIC_NODE__INSTANTANEOUS_ACTIVITY:

+				return instantaneousActivity != null && !instantaneousActivity.isEmpty();

+			case SANModelPackage.ATOMIC_NODE__INPUT_GATE:

+				return inputGate != null && !inputGate.isEmpty();

+			case SANModelPackage.ATOMIC_NODE__OUTPUT_GATE:

+				return outputGate != null && !outputGate.isEmpty();

+			case SANModelPackage.ATOMIC_NODE__MODEL:

+				return MODEL_EDEFAULT == null ? model != null : !MODEL_EDEFAULT.equals(model);

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (model: ");

+		result.append(model);

+		result.append(')');

+		return result.toString();

+	}

+

+} //AtomicNodeImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/ComposedNodeImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/ComposedNodeImpl.java
new file mode 100644
index 0000000..402495d
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/ComposedNodeImpl.java
@@ -0,0 +1,187 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.util.Collection;

+

+import org.eclipse.emf.common.notify.NotificationChain;

+

+import org.eclipse.emf.common.util.EList;

+

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.InternalEObject;

+

+import org.eclipse.emf.ecore.util.EObjectContainmentEList;

+import org.eclipse.emf.ecore.util.InternalEList;

+

+import org.polarsys.chess.mobius.model.SAN.ComposedNode;

+import org.polarsys.chess.mobius.model.SAN.Node;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.model.SAN.SharedState;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Composed Node</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.ComposedNodeImpl#getStateVariables <em>State Variables</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.ComposedNodeImpl#getChild <em>Child</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public abstract class ComposedNodeImpl extends NodeImpl implements ComposedNode {

+	/**

+	 * The cached value of the '{@link #getStateVariables() <em>State Variables</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getStateVariables()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<SharedState> stateVariables;

+

+	/**

+	 * The cached value of the '{@link #getChild() <em>Child</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getChild()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<Node> child;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected ComposedNodeImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.COMPOSED_NODE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<SharedState> getStateVariables() {

+		if (stateVariables == null) {

+			stateVariables = new EObjectContainmentEList<SharedState>(SharedState.class, this, SANModelPackage.COMPOSED_NODE__STATE_VARIABLES);

+		}

+		return stateVariables;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<Node> getChild() {

+		if (child == null) {

+			child = new EObjectContainmentEList<Node>(Node.class, this, SANModelPackage.COMPOSED_NODE__CHILD);

+		}

+		return child;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {

+		switch (featureID) {

+			case SANModelPackage.COMPOSED_NODE__STATE_VARIABLES:

+				return ((InternalEList<?>)getStateVariables()).basicRemove(otherEnd, msgs);

+			case SANModelPackage.COMPOSED_NODE__CHILD:

+				return ((InternalEList<?>)getChild()).basicRemove(otherEnd, msgs);

+		}

+		return super.eInverseRemove(otherEnd, featureID, msgs);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.COMPOSED_NODE__STATE_VARIABLES:

+				return getStateVariables();

+			case SANModelPackage.COMPOSED_NODE__CHILD:

+				return getChild();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.COMPOSED_NODE__STATE_VARIABLES:

+				getStateVariables().clear();

+				getStateVariables().addAll((Collection<? extends SharedState>)newValue);

+				return;

+			case SANModelPackage.COMPOSED_NODE__CHILD:

+				getChild().clear();

+				getChild().addAll((Collection<? extends Node>)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.COMPOSED_NODE__STATE_VARIABLES:

+				getStateVariables().clear();

+				return;

+			case SANModelPackage.COMPOSED_NODE__CHILD:

+				getChild().clear();

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.COMPOSED_NODE__STATE_VARIABLES:

+				return stateVariables != null && !stateVariables.isEmpty();

+			case SANModelPackage.COMPOSED_NODE__CHILD:

+				return child != null && !child.isEmpty();

+		}

+		return super.eIsSet(featureID);

+	}

+

+} //ComposedNodeImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/GateImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/GateImpl.java
new file mode 100644
index 0000000..3df5b69
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/GateImpl.java
@@ -0,0 +1,150 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.util.Collection;

+

+import org.eclipse.emf.common.notify.NotificationChain;

+

+import org.eclipse.emf.common.util.EList;

+

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.InternalEObject;

+

+import org.eclipse.emf.ecore.util.EObjectContainmentEList;

+import org.eclipse.emf.ecore.util.InternalEList;

+

+import org.polarsys.chess.mobius.model.SAN.Gate;

+import org.polarsys.chess.mobius.model.SAN.Place;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Gate</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.GateImpl#getPlace <em>Place</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public abstract class GateImpl extends NamedElementImpl implements Gate {

+	/**

+	 * The cached value of the '{@link #getPlace() <em>Place</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getPlace()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<Place> place;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected GateImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.GATE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<Place> getPlace() {

+		if (place == null) {

+			place = new EObjectContainmentEList<Place>(Place.class, this, SANModelPackage.GATE__PLACE);

+		}

+		return place;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {

+		switch (featureID) {

+			case SANModelPackage.GATE__PLACE:

+				return ((InternalEList<?>)getPlace()).basicRemove(otherEnd, msgs);

+		}

+		return super.eInverseRemove(otherEnd, featureID, msgs);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.GATE__PLACE:

+				return getPlace();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.GATE__PLACE:

+				getPlace().clear();

+				getPlace().addAll((Collection<? extends Place>)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.GATE__PLACE:

+				getPlace().clear();

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.GATE__PLACE:

+				return place != null && !place.isEmpty();

+		}

+		return super.eIsSet(featureID);

+	}

+

+} //GateImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/GlobalVariableImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/GlobalVariableImpl.java
new file mode 100644
index 0000000..51a6076
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/GlobalVariableImpl.java
@@ -0,0 +1,160 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.polarsys.chess.mobius.model.SAN.GlobalVariable;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Global Variable</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.GlobalVariableImpl#getType <em>Type</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class GlobalVariableImpl extends NamedElementImpl implements GlobalVariable {

+	/**

+	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getType()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String TYPE_EDEFAULT = null;

+	/**

+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getType()

+	 * @generated

+	 * @ordered

+	 */

+	protected String type = TYPE_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected GlobalVariableImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.GLOBAL_VARIABLE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getType() {

+		return type;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setType(String newType) {

+		String oldType = type;

+		type = newType;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.GLOBAL_VARIABLE__TYPE, oldType, type));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.GLOBAL_VARIABLE__TYPE:

+				return getType();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.GLOBAL_VARIABLE__TYPE:

+				setType((String)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.GLOBAL_VARIABLE__TYPE:

+				setType(TYPE_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.GLOBAL_VARIABLE__TYPE:

+				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (type: ");

+		result.append(type);

+		result.append(')');

+		return result.toString();

+	}

+

+} //GlobalVariableImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/GraphicalElementImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/GraphicalElementImpl.java
new file mode 100644
index 0000000..9893217
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/GraphicalElementImpl.java
@@ -0,0 +1,217 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;

+

+import org.polarsys.chess.mobius.model.SAN.GraphicalElement;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Graphical Element</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.GraphicalElementImpl#getX <em>X</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.GraphicalElementImpl#getY <em>Y</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class GraphicalElementImpl extends MinimalEObjectImpl.Container implements GraphicalElement {

+	/**

+	 * The default value of the '{@link #getX() <em>X</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getX()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final int X_EDEFAULT = 0;

+

+	/**

+	 * The cached value of the '{@link #getX() <em>X</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getX()

+	 * @generated

+	 * @ordered

+	 */

+	protected int x = X_EDEFAULT;

+

+	/**

+	 * The default value of the '{@link #getY() <em>Y</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getY()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final int Y_EDEFAULT = 0;

+

+	/**

+	 * The cached value of the '{@link #getY() <em>Y</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getY()

+	 * @generated

+	 * @ordered

+	 */

+	protected int y = Y_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected GraphicalElementImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.GRAPHICAL_ELEMENT;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public int getX() {

+		return x;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setX(int newX) {

+		int oldX = x;

+		x = newX;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.GRAPHICAL_ELEMENT__X, oldX, x));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public int getY() {

+		return y;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setY(int newY) {

+		int oldY = y;

+		y = newY;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.GRAPHICAL_ELEMENT__Y, oldY, y));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.GRAPHICAL_ELEMENT__X:

+				return getX();

+			case SANModelPackage.GRAPHICAL_ELEMENT__Y:

+				return getY();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.GRAPHICAL_ELEMENT__X:

+				setX((Integer)newValue);

+				return;

+			case SANModelPackage.GRAPHICAL_ELEMENT__Y:

+				setY((Integer)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.GRAPHICAL_ELEMENT__X:

+				setX(X_EDEFAULT);

+				return;

+			case SANModelPackage.GRAPHICAL_ELEMENT__Y:

+				setY(Y_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.GRAPHICAL_ELEMENT__X:

+				return x != X_EDEFAULT;

+			case SANModelPackage.GRAPHICAL_ELEMENT__Y:

+				return y != Y_EDEFAULT;

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (x: ");

+		result.append(x);

+		result.append(", y: ");

+		result.append(y);

+		result.append(')');

+		return result.toString();

+	}

+

+} //GraphicalElementImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/InputGateImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/InputGateImpl.java
new file mode 100644
index 0000000..9a00428
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/InputGateImpl.java
@@ -0,0 +1,258 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.util.Collection;

+

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.common.util.EList;

+

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+

+import org.eclipse.emf.ecore.util.EObjectResolvingEList;

+

+import org.polarsys.chess.mobius.model.SAN.Activity;

+import org.polarsys.chess.mobius.model.SAN.InputGate;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Input Gate</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.InputGateImpl#getInputPredicated <em>Input Predicated</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.InputGateImpl#getInputFunction <em>Input Function</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.InputGateImpl#getActivity <em>Activity</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class InputGateImpl extends PrimitiveImpl implements InputGate {

+	/**

+	 * The default value of the '{@link #getInputPredicated() <em>Input Predicated</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getInputPredicated()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String INPUT_PREDICATED_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getInputPredicated() <em>Input Predicated</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getInputPredicated()

+	 * @generated

+	 * @ordered

+	 */

+	protected String inputPredicated = INPUT_PREDICATED_EDEFAULT;

+

+	/**

+	 * The default value of the '{@link #getInputFunction() <em>Input Function</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getInputFunction()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String INPUT_FUNCTION_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getInputFunction() <em>Input Function</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getInputFunction()

+	 * @generated

+	 * @ordered

+	 */

+	protected String inputFunction = INPUT_FUNCTION_EDEFAULT;

+

+	/**

+	 * The cached value of the '{@link #getActivity() <em>Activity</em>}' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getActivity()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<Activity> activity;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected InputGateImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.INPUT_GATE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getInputPredicated() {

+		return inputPredicated;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setInputPredicated(String newInputPredicated) {

+		String oldInputPredicated = inputPredicated;

+		inputPredicated = newInputPredicated;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.INPUT_GATE__INPUT_PREDICATED, oldInputPredicated, inputPredicated));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getInputFunction() {

+		return inputFunction;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setInputFunction(String newInputFunction) {

+		String oldInputFunction = inputFunction;

+		inputFunction = newInputFunction;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.INPUT_GATE__INPUT_FUNCTION, oldInputFunction, inputFunction));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<Activity> getActivity() {

+		if (activity == null) {

+			activity = new EObjectResolvingEList<Activity>(Activity.class, this, SANModelPackage.INPUT_GATE__ACTIVITY);

+		}

+		return activity;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.INPUT_GATE__INPUT_PREDICATED:

+				return getInputPredicated();

+			case SANModelPackage.INPUT_GATE__INPUT_FUNCTION:

+				return getInputFunction();

+			case SANModelPackage.INPUT_GATE__ACTIVITY:

+				return getActivity();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.INPUT_GATE__INPUT_PREDICATED:

+				setInputPredicated((String)newValue);

+				return;

+			case SANModelPackage.INPUT_GATE__INPUT_FUNCTION:

+				setInputFunction((String)newValue);

+				return;

+			case SANModelPackage.INPUT_GATE__ACTIVITY:

+				getActivity().clear();

+				getActivity().addAll((Collection<? extends Activity>)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.INPUT_GATE__INPUT_PREDICATED:

+				setInputPredicated(INPUT_PREDICATED_EDEFAULT);

+				return;

+			case SANModelPackage.INPUT_GATE__INPUT_FUNCTION:

+				setInputFunction(INPUT_FUNCTION_EDEFAULT);

+				return;

+			case SANModelPackage.INPUT_GATE__ACTIVITY:

+				getActivity().clear();

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.INPUT_GATE__INPUT_PREDICATED:

+				return INPUT_PREDICATED_EDEFAULT == null ? inputPredicated != null : !INPUT_PREDICATED_EDEFAULT.equals(inputPredicated);

+			case SANModelPackage.INPUT_GATE__INPUT_FUNCTION:

+				return INPUT_FUNCTION_EDEFAULT == null ? inputFunction != null : !INPUT_FUNCTION_EDEFAULT.equals(inputFunction);

+			case SANModelPackage.INPUT_GATE__ACTIVITY:

+				return activity != null && !activity.isEmpty();

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (inputPredicated: ");

+		result.append(inputPredicated);

+		result.append(", inputFunction: ");

+		result.append(inputFunction);

+		result.append(')');

+		return result.toString();

+	}

+

+} //InputGateImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/InstantaneousActivityImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/InstantaneousActivityImpl.java
new file mode 100644
index 0000000..a7e4664
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/InstantaneousActivityImpl.java
@@ -0,0 +1,36 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.ecore.EClass;

+import org.polarsys.chess.mobius.model.SAN.InstantaneousActivity;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Instantaneous Activity</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * @generated

+ */

+public class InstantaneousActivityImpl extends ActivityImpl implements InstantaneousActivity {

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected InstantaneousActivityImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.INSTANTANEOUS_ACTIVITY;

+	}

+

+} //InstantaneousActivityImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/JoinImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/JoinImpl.java
new file mode 100644
index 0000000..327998e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/JoinImpl.java
@@ -0,0 +1,36 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.ecore.EClass;

+import org.polarsys.chess.mobius.model.SAN.Join;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Join</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * @generated

+ */

+public class JoinImpl extends ComposedNodeImpl implements Join {

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected JoinImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.JOIN;

+	}

+

+} //JoinImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/NamedElementImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/NamedElementImpl.java
new file mode 100644
index 0000000..f0e2f91
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/NamedElementImpl.java
@@ -0,0 +1,210 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.lang.reflect.InvocationTargetException;

+import java.util.Map;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.common.util.BasicDiagnostic;

+import org.eclipse.emf.common.util.Diagnostic;

+import org.eclipse.emf.common.util.DiagnosticChain;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.eclipse.emf.ecore.plugin.EcorePlugin;

+import org.eclipse.emf.ecore.util.EObjectValidator;

+import org.polarsys.chess.mobius.model.SAN.NamedElement;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.model.SAN.util.SANModelValidator;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Named Element</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.NamedElementImpl#getName <em>Name</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public abstract class NamedElementImpl extends GraphicalElementImpl implements NamedElement {

+	/**

+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getName()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String NAME_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getName()

+	 * @generated

+	 * @ordered

+	 */

+	protected String name = NAME_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected NamedElementImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.NAMED_ELEMENT;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getName() {

+		return name;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setName(String newName) {

+		String oldName = name;

+		name = newName;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.NAMED_ELEMENT__NAME, oldName, name));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated NOT

+	 */

+	public boolean validate(DiagnosticChain diagnostics, Map<Object, Object> context) {

+		// TODO: implement this method

+		// -> specify the condition that violates the invariant

+		// -> verify the details of the diagnostic, including severity and message

+		// Ensure that you remove @generated or mark it @generated NOT

+		if (this.getName().isEmpty()) {

+			if (diagnostics != null) {

+				diagnostics.add

+					(new BasicDiagnostic

+						(Diagnostic.ERROR,

+						 SANModelValidator.DIAGNOSTIC_SOURCE,

+						 SANModelValidator.NAMED_ELEMENT__VALIDATE,

+						 EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "The name cannot be empty", EObjectValidator.getObjectLabel(this, context) }),

+						 new Object [] { this }));

+			}

+			return false;

+		}

+		return true;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.NAMED_ELEMENT__NAME:

+				return getName();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.NAMED_ELEMENT__NAME:

+				setName((String)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.NAMED_ELEMENT__NAME:

+				setName(NAME_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.NAMED_ELEMENT__NAME:

+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	@SuppressWarnings("unchecked")

+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {

+		switch (operationID) {

+			case SANModelPackage.NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP:

+				return validate((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));

+		}

+		return super.eInvoke(operationID, arguments);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (name: ");

+		result.append(name);

+		result.append(')');

+		return result.toString();

+	}

+

+} //NamedElementImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/NodeImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/NodeImpl.java
new file mode 100644
index 0000000..442ec4e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/NodeImpl.java
@@ -0,0 +1,146 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.util.Collection;

+import org.eclipse.emf.common.notify.NotificationChain;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.InternalEObject;

+import org.eclipse.emf.ecore.util.EObjectContainmentEList;

+import org.eclipse.emf.ecore.util.InternalEList;

+import org.polarsys.chess.mobius.model.SAN.GlobalVariable;

+import org.polarsys.chess.mobius.model.SAN.Node;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Node</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.NodeImpl#getGlobalVariable <em>Global Variable</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public abstract class NodeImpl extends NamedElementImpl implements Node {

+	/**

+	 * The cached value of the '{@link #getGlobalVariable() <em>Global Variable</em>}' containment reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getGlobalVariable()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<GlobalVariable> globalVariable;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected NodeImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.NODE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<GlobalVariable> getGlobalVariable() {

+		if (globalVariable == null) {

+			globalVariable = new EObjectContainmentEList<GlobalVariable>(GlobalVariable.class, this, SANModelPackage.NODE__GLOBAL_VARIABLE);

+		}

+		return globalVariable;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {

+		switch (featureID) {

+			case SANModelPackage.NODE__GLOBAL_VARIABLE:

+				return ((InternalEList<?>)getGlobalVariable()).basicRemove(otherEnd, msgs);

+		}

+		return super.eInverseRemove(otherEnd, featureID, msgs);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.NODE__GLOBAL_VARIABLE:

+				return getGlobalVariable();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.NODE__GLOBAL_VARIABLE:

+				getGlobalVariable().clear();

+				getGlobalVariable().addAll((Collection<? extends GlobalVariable>)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.NODE__GLOBAL_VARIABLE:

+				getGlobalVariable().clear();

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.NODE__GLOBAL_VARIABLE:

+				return globalVariable != null && !globalVariable.isEmpty();

+		}

+		return super.eIsSet(featureID);

+	}

+

+} //NodeImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/OutputGateImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/OutputGateImpl.java
new file mode 100644
index 0000000..b44310c
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/OutputGateImpl.java
@@ -0,0 +1,162 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+

+import org.polarsys.chess.mobius.model.SAN.OutputGate;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Output Gate</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.OutputGateImpl#getOutputFunction <em>Output Function</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class OutputGateImpl extends InputGateImpl implements OutputGate {

+	/**

+	 * The default value of the '{@link #getOutputFunction() <em>Output Function</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getOutputFunction()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String OUTPUT_FUNCTION_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getOutputFunction() <em>Output Function</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getOutputFunction()

+	 * @generated

+	 * @ordered

+	 */

+	protected String outputFunction = OUTPUT_FUNCTION_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected OutputGateImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.OUTPUT_GATE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getOutputFunction() {

+		return outputFunction;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setOutputFunction(String newOutputFunction) {

+		String oldOutputFunction = outputFunction;

+		outputFunction = newOutputFunction;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.OUTPUT_GATE__OUTPUT_FUNCTION, oldOutputFunction, outputFunction));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.OUTPUT_GATE__OUTPUT_FUNCTION:

+				return getOutputFunction();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.OUTPUT_GATE__OUTPUT_FUNCTION:

+				setOutputFunction((String)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.OUTPUT_GATE__OUTPUT_FUNCTION:

+				setOutputFunction(OUTPUT_FUNCTION_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.OUTPUT_GATE__OUTPUT_FUNCTION:

+				return OUTPUT_FUNCTION_EDEFAULT == null ? outputFunction != null : !OUTPUT_FUNCTION_EDEFAULT.equals(outputFunction);

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (outputFunction: ");

+		result.append(outputFunction);

+		result.append(')');

+		return result.toString();

+	}

+

+} //OutputGateImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/PlaceImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/PlaceImpl.java
new file mode 100644
index 0000000..0f80c99
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/PlaceImpl.java
@@ -0,0 +1,237 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.util.Collection;

+

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.common.util.EList;

+

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.eclipse.emf.ecore.util.EObjectResolvingEList;

+

+import org.polarsys.chess.mobius.model.SAN.Activity;

+import org.polarsys.chess.mobius.model.SAN.InputGate;

+import org.polarsys.chess.mobius.model.SAN.Place;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Place</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.PlaceImpl#getActivity <em>Activity</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.PlaceImpl#getInputGate <em>Input Gate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.PlaceImpl#getInitialState <em>Initial State</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class PlaceImpl extends PrimitiveImpl implements Place {

+	/**

+	 * The cached value of the '{@link #getActivity() <em>Activity</em>}' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getActivity()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<Activity> activity;

+

+	/**

+	 * The cached value of the '{@link #getInputGate() <em>Input Gate</em>}' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getInputGate()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<InputGate> inputGate;

+

+	/**

+	 * The default value of the '{@link #getInitialState() <em>Initial State</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getInitialState()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final int INITIAL_STATE_EDEFAULT = 0;

+

+	/**

+	 * The cached value of the '{@link #getInitialState() <em>Initial State</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getInitialState()

+	 * @generated

+	 * @ordered

+	 */

+	protected int initialState = INITIAL_STATE_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected PlaceImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.PLACE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<Activity> getActivity() {

+		if (activity == null) {

+			activity = new EObjectResolvingEList<Activity>(Activity.class, this, SANModelPackage.PLACE__ACTIVITY);

+		}

+		return activity;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<InputGate> getInputGate() {

+		if (inputGate == null) {

+			inputGate = new EObjectResolvingEList<InputGate>(InputGate.class, this, SANModelPackage.PLACE__INPUT_GATE);

+		}

+		return inputGate;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public int getInitialState() {

+		return initialState;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setInitialState(int newInitialState) {

+		int oldInitialState = initialState;

+		initialState = newInitialState;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.PLACE__INITIAL_STATE, oldInitialState, initialState));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.PLACE__ACTIVITY:

+				return getActivity();

+			case SANModelPackage.PLACE__INPUT_GATE:

+				return getInputGate();

+			case SANModelPackage.PLACE__INITIAL_STATE:

+				return getInitialState();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.PLACE__ACTIVITY:

+				getActivity().clear();

+				getActivity().addAll((Collection<? extends Activity>)newValue);

+				return;

+			case SANModelPackage.PLACE__INPUT_GATE:

+				getInputGate().clear();

+				getInputGate().addAll((Collection<? extends InputGate>)newValue);

+				return;

+			case SANModelPackage.PLACE__INITIAL_STATE:

+				setInitialState((Integer)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.PLACE__ACTIVITY:

+				getActivity().clear();

+				return;

+			case SANModelPackage.PLACE__INPUT_GATE:

+				getInputGate().clear();

+				return;

+			case SANModelPackage.PLACE__INITIAL_STATE:

+				setInitialState(INITIAL_STATE_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.PLACE__ACTIVITY:

+				return activity != null && !activity.isEmpty();

+			case SANModelPackage.PLACE__INPUT_GATE:

+				return inputGate != null && !inputGate.isEmpty();

+			case SANModelPackage.PLACE__INITIAL_STATE:

+				return initialState != INITIAL_STATE_EDEFAULT;

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (initialState: ");

+		result.append(initialState);

+		result.append(')');

+		return result.toString();

+	}

+

+} //PlaceImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/PrimitiveImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/PrimitiveImpl.java
new file mode 100644
index 0000000..342396f
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/PrimitiveImpl.java
@@ -0,0 +1,37 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.ecore.EClass;

+

+import org.polarsys.chess.mobius.model.SAN.Primitive;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Primitive</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * @generated

+ */

+public abstract class PrimitiveImpl extends NamedElementImpl implements Primitive {

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected PrimitiveImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.PRIMITIVE;

+	}

+

+} //PrimitiveImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/RepImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/RepImpl.java
new file mode 100644
index 0000000..e528187
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/RepImpl.java
@@ -0,0 +1,159 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.polarsys.chess.mobius.model.SAN.Rep;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Rep</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.RepImpl#getNumbOfReps <em>Numb Of Reps</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class RepImpl extends ComposedNodeImpl implements Rep {

+	/**

+	 * The default value of the '{@link #getNumbOfReps() <em>Numb Of Reps</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getNumbOfReps()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String NUMB_OF_REPS_EDEFAULT = "";

+

+	/**

+	 * The cached value of the '{@link #getNumbOfReps() <em>Numb Of Reps</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getNumbOfReps()

+	 * @generated

+	 * @ordered

+	 */

+	protected String numbOfReps = NUMB_OF_REPS_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected RepImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.REP;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getNumbOfReps() {

+		return numbOfReps;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setNumbOfReps(String newNumbOfReps) {

+		String oldNumbOfReps = numbOfReps;

+		numbOfReps = newNumbOfReps;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.REP__NUMB_OF_REPS, oldNumbOfReps, numbOfReps));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.REP__NUMB_OF_REPS:

+				return getNumbOfReps();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.REP__NUMB_OF_REPS:

+				setNumbOfReps((String)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.REP__NUMB_OF_REPS:

+				setNumbOfReps(NUMB_OF_REPS_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.REP__NUMB_OF_REPS:

+				return NUMB_OF_REPS_EDEFAULT == null ? numbOfReps != null : !NUMB_OF_REPS_EDEFAULT.equals(numbOfReps);

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (numbOfReps: ");

+		result.append(numbOfReps);

+		result.append(')');

+		return result.toString();

+	}

+

+} //RepImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SANModelFactoryImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SANModelFactoryImpl.java
new file mode 100644
index 0000000..533a998
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SANModelFactoryImpl.java
@@ -0,0 +1,227 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.ecore.EPackage;

+

+import org.eclipse.emf.ecore.impl.EFactoryImpl;

+

+import org.eclipse.emf.ecore.plugin.EcorePlugin;

+

+import org.polarsys.chess.mobius.model.SAN.*;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model <b>Factory</b>.

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class SANModelFactoryImpl extends EFactoryImpl implements SANModelFactory {

+	/**

+	 * Creates the default factory implementation.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public static SANModelFactory init() {

+		try {

+			SANModelFactory theSANModelFactory = (SANModelFactory)EPackage.Registry.INSTANCE.getEFactory(SANModelPackage.eNS_URI);

+			if (theSANModelFactory != null) {

+				return theSANModelFactory;

+			}

+		}

+		catch (Exception exception) {

+			EcorePlugin.INSTANCE.log(exception);

+		}

+		return new SANModelFactoryImpl();

+	}

+

+	/**

+	 * Creates an instance of the factory.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelFactoryImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public EObject create(EClass eClass) {

+		switch (eClass.getClassifierID()) {

+			case SANModelPackage.SAN_MODEL: return createSANModel();

+			case SANModelPackage.SHARED_STATE: return createSharedState();

+			case SANModelPackage.JOIN: return createJoin();

+			case SANModelPackage.REP: return createRep();

+			case SANModelPackage.ATOMIC_NODE: return createAtomicNode();

+			case SANModelPackage.PLACE: return createPlace();

+			case SANModelPackage.TIMED_ACTIVITY: return createTimedActivity();

+			case SANModelPackage.INSTANTANEOUS_ACTIVITY: return createInstantaneousActivity();

+			case SANModelPackage.INPUT_GATE: return createInputGate();

+			case SANModelPackage.OUTPUT_GATE: return createOutputGate();

+			case SANModelPackage.GLOBAL_VARIABLE: return createGlobalVariable();

+			case SANModelPackage.ACTIVITY_PLACE_CASE: return createActivityPlaceCase();

+			case SANModelPackage.GRAPHICAL_ELEMENT: return createGraphicalElement();

+			default:

+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");

+		}

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModel createSANModel() {

+		SANModelImpl sanModel = new SANModelImpl();

+		return sanModel;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SharedState createSharedState() {

+		SharedStateImpl sharedState = new SharedStateImpl();

+		return sharedState;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Join createJoin() {

+		JoinImpl join = new JoinImpl();

+		return join;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Rep createRep() {

+		RepImpl rep = new RepImpl();

+		return rep;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public AtomicNode createAtomicNode() {

+		AtomicNodeImpl atomicNode = new AtomicNodeImpl();

+		return atomicNode;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Place createPlace() {

+		PlaceImpl place = new PlaceImpl();

+		return place;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public TimedActivity createTimedActivity() {

+		TimedActivityImpl timedActivity = new TimedActivityImpl();

+		return timedActivity;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public InstantaneousActivity createInstantaneousActivity() {

+		InstantaneousActivityImpl instantaneousActivity = new InstantaneousActivityImpl();

+		return instantaneousActivity;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public InputGate createInputGate() {

+		InputGateImpl inputGate = new InputGateImpl();

+		return inputGate;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public OutputGate createOutputGate() {

+		OutputGateImpl outputGate = new OutputGateImpl();

+		return outputGate;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public GlobalVariable createGlobalVariable() {

+		GlobalVariableImpl globalVariable = new GlobalVariableImpl();

+		return globalVariable;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public ActivityPlaceCase createActivityPlaceCase() {

+		ActivityPlaceCaseImpl activityPlaceCase = new ActivityPlaceCaseImpl();

+		return activityPlaceCase;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public GraphicalElement createGraphicalElement() {

+		GraphicalElementImpl graphicalElement = new GraphicalElementImpl();

+		return graphicalElement;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelPackage getSANModelPackage() {

+		return (SANModelPackage)getEPackage();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @deprecated

+	 * @generated

+	 */

+	@Deprecated

+	public static SANModelPackage getPackage() {

+		return SANModelPackage.eINSTANCE;

+	}

+

+} //SANModelFactoryImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SANModelImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SANModelImpl.java
new file mode 100644
index 0000000..14816e8
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SANModelImpl.java
@@ -0,0 +1,226 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.lang.reflect.InvocationTargetException;

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.common.notify.NotificationChain;

+import org.eclipse.emf.common.util.BasicEList;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.InternalEObject;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.polarsys.chess.mobius.model.SAN.Join;

+import org.polarsys.chess.mobius.model.SAN.Node;

+import org.polarsys.chess.mobius.model.SAN.Rep;

+import org.polarsys.chess.mobius.model.SAN.SANModel;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>SAN Model</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.SANModelImpl#getNode <em>Node</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class SANModelImpl extends NamedElementImpl implements SANModel {

+	/**

+	 * The cached value of the '{@link #getNode() <em>Node</em>}' containment reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getNode()

+	 * @generated

+	 * @ordered

+	 */

+	protected Node node;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SANModelImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.SAN_MODEL;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Node getNode() {

+		return node;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public NotificationChain basicSetNode(Node newNode, NotificationChain msgs) {

+		Node oldNode = node;

+		node = newNode;

+		if (eNotificationRequired()) {

+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SANModelPackage.SAN_MODEL__NODE, oldNode, newNode);

+			if (msgs == null) msgs = notification; else msgs.add(notification);

+		}

+		return msgs;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setNode(Node newNode) {

+		if (newNode != node) {

+			NotificationChain msgs = null;

+			if (node != null)

+				msgs = ((InternalEObject)node).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SANModelPackage.SAN_MODEL__NODE, null, msgs);

+			if (newNode != null)

+				msgs = ((InternalEObject)newNode).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SANModelPackage.SAN_MODEL__NODE, null, msgs);

+			msgs = basicSetNode(newNode, msgs);

+			if (msgs != null) msgs.dispatch();

+		}

+		else if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.SAN_MODEL__NODE, newNode, newNode));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated NOT

+	 */

+	public EList<Node> getAllNodes() {

+		Node node = this.getNode();

+		EList<Node> nodes = getAllNodes(node);

+		nodes.add(node);

+		return nodes;

+	}

+	

+	private EList<Node> getAllNodes(Node node){

+		EList<Node> nodes = new BasicEList<Node>();

+		if (node instanceof Join){

+			Join join = (Join) node;

+			EList<Node> children = join.getChild();

+			for (Node child : children){

+				EList<Node> nodes2= getAllNodes(child);

+				nodes.addAll(nodes2);

+				nodes.add(child);

+			}

+		}

+		else if (node instanceof Rep){

+			Node child = ((Rep) node).getChild().get(0);

+			EList<Node> nodes2= getAllNodes(child);

+			nodes.addAll(nodes2);

+			nodes.add(child);

+			

+		}

+		//if it is an atomic model just return an empty list

+		return nodes;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {

+		switch (featureID) {

+			case SANModelPackage.SAN_MODEL__NODE:

+				return basicSetNode(null, msgs);

+		}

+		return super.eInverseRemove(otherEnd, featureID, msgs);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.SAN_MODEL__NODE:

+				return getNode();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.SAN_MODEL__NODE:

+				setNode((Node)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.SAN_MODEL__NODE:

+				setNode((Node)null);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.SAN_MODEL__NODE:

+				return node != null;

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {

+		switch (operationID) {

+			case SANModelPackage.SAN_MODEL___GET_ALL_NODES:

+				return getAllNodes();

+		}

+		return super.eInvoke(operationID, arguments);

+	}

+

+} //SANModelImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SANModelPackageImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SANModelPackageImpl.java
new file mode 100644
index 0000000..0419db2
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SANModelPackageImpl.java
@@ -0,0 +1,970 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.ecore.EAttribute;

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.EGenericType;

+import org.eclipse.emf.ecore.EOperation;

+import org.eclipse.emf.ecore.EPackage;

+import org.eclipse.emf.ecore.EReference;

+

+import org.eclipse.emf.ecore.EValidator;

+import org.eclipse.emf.ecore.impl.EPackageImpl;

+

+import org.polarsys.chess.mobius.model.SAN.Activity;

+import org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase;

+import org.polarsys.chess.mobius.model.SAN.AtomicNode;

+import org.polarsys.chess.mobius.model.SAN.ComposedNode;

+import org.polarsys.chess.mobius.model.SAN.Gate;

+import org.polarsys.chess.mobius.model.SAN.GlobalVariable;

+import org.polarsys.chess.mobius.model.SAN.GraphicalElement;

+import org.polarsys.chess.mobius.model.SAN.InputGate;

+import org.polarsys.chess.mobius.model.SAN.InstantaneousActivity;

+import org.polarsys.chess.mobius.model.SAN.Join;

+import org.polarsys.chess.mobius.model.SAN.NamedElement;

+import org.polarsys.chess.mobius.model.SAN.Node;

+import org.polarsys.chess.mobius.model.SAN.OutputGate;

+import org.polarsys.chess.mobius.model.SAN.Place;

+import org.polarsys.chess.mobius.model.SAN.Primitive;

+import org.polarsys.chess.mobius.model.SAN.Rep;

+import org.polarsys.chess.mobius.model.SAN.SANModel;

+import org.polarsys.chess.mobius.model.SAN.SANModelFactory;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.model.SAN.SharedState;

+import org.polarsys.chess.mobius.model.SAN.TimedActivity;

+import org.polarsys.chess.mobius.model.SAN.util.SANModelValidator;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model <b>Package</b>.

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class SANModelPackageImpl extends EPackageImpl implements SANModelPackage {

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass sanModelEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass namedElementEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass nodeEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass composedNodeEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass sharedStateEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass joinEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass repEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass atomicNodeEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass placeEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass timedActivityEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass instantaneousActivityEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass inputGateEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass outputGateEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass activityEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass gateEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass globalVariableEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass activityPlaceCaseEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass graphicalElementEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass primitiveEClass = null;

+

+	/**

+	 * Creates an instance of the model <b>Package</b>, registered with

+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package

+	 * package URI value.

+	 * <p>Note: the correct way to create the package is via the static

+	 * factory method {@link #init init()}, which also performs

+	 * initialization of the package, or returns the registered package,

+	 * if one already exists.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.eclipse.emf.ecore.EPackage.Registry

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage#eNS_URI

+	 * @see #init()

+	 * @generated

+	 */

+	private SANModelPackageImpl() {

+		super(eNS_URI, SANModelFactory.eINSTANCE);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private static boolean isInited = false;

+

+	/**

+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.

+	 * 

+	 * <p>This method is used to initialize {@link SANModelPackage#eINSTANCE} when that field is accessed.

+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #eNS_URI

+	 * @see #createPackageContents()

+	 * @see #initializePackageContents()

+	 * @generated

+	 */

+	public static SANModelPackage init() {

+		if (isInited) return (SANModelPackage)EPackage.Registry.INSTANCE.getEPackage(SANModelPackage.eNS_URI);

+

+		// Obtain or create and register package

+		SANModelPackageImpl theSANModelPackage = (SANModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SANModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SANModelPackageImpl());

+

+		isInited = true;

+

+		// Create package meta-data objects

+		theSANModelPackage.createPackageContents();

+

+		// Initialize created meta-data

+		theSANModelPackage.initializePackageContents();

+

+		// Register package validator

+		EValidator.Registry.INSTANCE.put

+			(theSANModelPackage, 

+			 new EValidator.Descriptor() {

+				 public EValidator getEValidator() {

+					 return SANModelValidator.INSTANCE;

+				 }

+			 });

+

+		// Mark meta-data to indicate it can't be changed

+		theSANModelPackage.freeze();

+

+  

+		// Update the registry and return the package

+		EPackage.Registry.INSTANCE.put(SANModelPackage.eNS_URI, theSANModelPackage);

+		return theSANModelPackage;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getSANModel() {

+		return sanModelEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getSANModel_Node() {

+		return (EReference)sanModelEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EOperation getSANModel__GetAllNodes() {

+		return sanModelEClass.getEOperations().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getNamedElement() {

+		return namedElementEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getNamedElement_Name() {

+		return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EOperation getNamedElement__Validate__DiagnosticChain_Map() {

+		return namedElementEClass.getEOperations().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getNode() {

+		return nodeEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getNode_GlobalVariable() {

+		return (EReference)nodeEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getComposedNode() {

+		return composedNodeEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getComposedNode_StateVariables() {

+		return (EReference)composedNodeEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getComposedNode_Child() {

+		return (EReference)composedNodeEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getSharedState() {

+		return sharedStateEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getSharedState_Place() {

+		return (EReference)sharedStateEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getSharedState_SharedStates() {

+		return (EReference)sharedStateEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getJoin() {

+		return joinEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getRep() {

+		return repEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getRep_NumbOfReps() {

+		return (EAttribute)repEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getAtomicNode() {

+		return atomicNodeEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getAtomicNode_Place() {

+		return (EReference)atomicNodeEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getAtomicNode_TimedActivity() {

+		return (EReference)atomicNodeEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getAtomicNode_InstantaneousActivity() {

+		return (EReference)atomicNodeEClass.getEStructuralFeatures().get(2);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getAtomicNode_InputGate() {

+		return (EReference)atomicNodeEClass.getEStructuralFeatures().get(3);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getAtomicNode_OutputGate() {

+		return (EReference)atomicNodeEClass.getEStructuralFeatures().get(4);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getAtomicNode_Model() {

+		return (EAttribute)atomicNodeEClass.getEStructuralFeatures().get(5);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getPlace() {

+		return placeEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getPlace_Activity() {

+		return (EReference)placeEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getPlace_InputGate() {

+		return (EReference)placeEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getPlace_InitialState() {

+		return (EAttribute)placeEClass.getEStructuralFeatures().get(2);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getTimedActivity() {

+		return timedActivityEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getTimedActivity_Rate() {

+		return (EAttribute)timedActivityEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getTimedActivity_TimeDistributionFunction() {

+		return (EAttribute)timedActivityEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getInstantaneousActivity() {

+		return instantaneousActivityEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getInputGate() {

+		return inputGateEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getInputGate_InputPredicated() {

+		return (EAttribute)inputGateEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getInputGate_InputFunction() {

+		return (EAttribute)inputGateEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getInputGate_Activity() {

+		return (EReference)inputGateEClass.getEStructuralFeatures().get(2);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getOutputGate() {

+		return outputGateEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getOutputGate_OutputFunction() {

+		return (EAttribute)outputGateEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getActivity() {

+		return activityEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getActivity_Place() {

+		return (EReference)activityEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getActivity_OutputGate() {

+		return (EReference)activityEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getActivity_Case() {

+		return (EAttribute)activityEClass.getEStructuralFeatures().get(2);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getActivity_Placecase() {

+		return (EReference)activityEClass.getEStructuralFeatures().get(3);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getGate() {

+		return gateEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getGate_Place() {

+		return (EReference)gateEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getGlobalVariable() {

+		return globalVariableEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getGlobalVariable_Type() {

+		return (EAttribute)globalVariableEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getActivityPlaceCase() {

+		return activityPlaceCaseEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getActivityPlaceCase_Place() {

+		return (EReference)activityPlaceCaseEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getActivityPlaceCase_Case() {

+		return (EAttribute)activityPlaceCaseEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getGraphicalElement() {

+		return graphicalElementEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getGraphicalElement_X() {

+		return (EAttribute)graphicalElementEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getGraphicalElement_Y() {

+		return (EAttribute)graphicalElementEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getPrimitive() {

+		return primitiveEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelFactory getSANModelFactory() {

+		return (SANModelFactory)getEFactoryInstance();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private boolean isCreated = false;

+

+	/**

+	 * Creates the meta-model objects for the package.  This method is

+	 * guarded to have no affect on any invocation but its first.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void createPackageContents() {

+		if (isCreated) return;

+		isCreated = true;

+

+		// Create classes and their features

+		sanModelEClass = createEClass(SAN_MODEL);

+		createEReference(sanModelEClass, SAN_MODEL__NODE);

+		createEOperation(sanModelEClass, SAN_MODEL___GET_ALL_NODES);

+

+		namedElementEClass = createEClass(NAMED_ELEMENT);

+		createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);

+		createEOperation(namedElementEClass, NAMED_ELEMENT___VALIDATE__DIAGNOSTICCHAIN_MAP);

+

+		nodeEClass = createEClass(NODE);

+		createEReference(nodeEClass, NODE__GLOBAL_VARIABLE);

+

+		composedNodeEClass = createEClass(COMPOSED_NODE);

+		createEReference(composedNodeEClass, COMPOSED_NODE__STATE_VARIABLES);

+		createEReference(composedNodeEClass, COMPOSED_NODE__CHILD);

+

+		sharedStateEClass = createEClass(SHARED_STATE);

+		createEReference(sharedStateEClass, SHARED_STATE__PLACE);

+		createEReference(sharedStateEClass, SHARED_STATE__SHARED_STATES);

+

+		joinEClass = createEClass(JOIN);

+

+		repEClass = createEClass(REP);

+		createEAttribute(repEClass, REP__NUMB_OF_REPS);

+

+		atomicNodeEClass = createEClass(ATOMIC_NODE);

+		createEReference(atomicNodeEClass, ATOMIC_NODE__PLACE);

+		createEReference(atomicNodeEClass, ATOMIC_NODE__TIMED_ACTIVITY);

+		createEReference(atomicNodeEClass, ATOMIC_NODE__INSTANTANEOUS_ACTIVITY);

+		createEReference(atomicNodeEClass, ATOMIC_NODE__INPUT_GATE);

+		createEReference(atomicNodeEClass, ATOMIC_NODE__OUTPUT_GATE);

+		createEAttribute(atomicNodeEClass, ATOMIC_NODE__MODEL);

+

+		placeEClass = createEClass(PLACE);

+		createEReference(placeEClass, PLACE__ACTIVITY);

+		createEReference(placeEClass, PLACE__INPUT_GATE);

+		createEAttribute(placeEClass, PLACE__INITIAL_STATE);

+

+		timedActivityEClass = createEClass(TIMED_ACTIVITY);

+		createEAttribute(timedActivityEClass, TIMED_ACTIVITY__RATE);

+		createEAttribute(timedActivityEClass, TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION);

+

+		instantaneousActivityEClass = createEClass(INSTANTANEOUS_ACTIVITY);

+

+		inputGateEClass = createEClass(INPUT_GATE);

+		createEAttribute(inputGateEClass, INPUT_GATE__INPUT_PREDICATED);

+		createEAttribute(inputGateEClass, INPUT_GATE__INPUT_FUNCTION);

+		createEReference(inputGateEClass, INPUT_GATE__ACTIVITY);

+

+		outputGateEClass = createEClass(OUTPUT_GATE);

+		createEAttribute(outputGateEClass, OUTPUT_GATE__OUTPUT_FUNCTION);

+

+		activityEClass = createEClass(ACTIVITY);

+		createEReference(activityEClass, ACTIVITY__PLACE);

+		createEReference(activityEClass, ACTIVITY__OUTPUT_GATE);

+		createEAttribute(activityEClass, ACTIVITY__CASE);

+		createEReference(activityEClass, ACTIVITY__PLACECASE);

+

+		gateEClass = createEClass(GATE);

+		createEReference(gateEClass, GATE__PLACE);

+

+		globalVariableEClass = createEClass(GLOBAL_VARIABLE);

+		createEAttribute(globalVariableEClass, GLOBAL_VARIABLE__TYPE);

+

+		activityPlaceCaseEClass = createEClass(ACTIVITY_PLACE_CASE);

+		createEReference(activityPlaceCaseEClass, ACTIVITY_PLACE_CASE__PLACE);

+		createEAttribute(activityPlaceCaseEClass, ACTIVITY_PLACE_CASE__CASE);

+

+		graphicalElementEClass = createEClass(GRAPHICAL_ELEMENT);

+		createEAttribute(graphicalElementEClass, GRAPHICAL_ELEMENT__X);

+		createEAttribute(graphicalElementEClass, GRAPHICAL_ELEMENT__Y);

+

+		primitiveEClass = createEClass(PRIMITIVE);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private boolean isInitialized = false;

+

+	/**

+	 * Complete the initialization of the package and its meta-model.  This

+	 * method is guarded to have no affect on any invocation but its first.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void initializePackageContents() {

+		if (isInitialized) return;

+		isInitialized = true;

+

+		// Initialize package

+		setName(eNAME);

+		setNsPrefix(eNS_PREFIX);

+		setNsURI(eNS_URI);

+

+		// Create type parameters

+

+		// Set bounds for type parameters

+

+		// Add supertypes to classes

+		sanModelEClass.getESuperTypes().add(this.getNamedElement());

+		namedElementEClass.getESuperTypes().add(this.getGraphicalElement());

+		nodeEClass.getESuperTypes().add(this.getNamedElement());

+		composedNodeEClass.getESuperTypes().add(this.getNode());

+		sharedStateEClass.getESuperTypes().add(this.getNamedElement());

+		joinEClass.getESuperTypes().add(this.getComposedNode());

+		repEClass.getESuperTypes().add(this.getComposedNode());

+		atomicNodeEClass.getESuperTypes().add(this.getNode());

+		placeEClass.getESuperTypes().add(this.getPrimitive());

+		timedActivityEClass.getESuperTypes().add(this.getActivity());

+		instantaneousActivityEClass.getESuperTypes().add(this.getActivity());

+		inputGateEClass.getESuperTypes().add(this.getPrimitive());

+		outputGateEClass.getESuperTypes().add(this.getInputGate());

+		activityEClass.getESuperTypes().add(this.getNamedElement());

+		gateEClass.getESuperTypes().add(this.getNamedElement());

+		globalVariableEClass.getESuperTypes().add(this.getNamedElement());

+		activityPlaceCaseEClass.getESuperTypes().add(this.getGraphicalElement());

+		primitiveEClass.getESuperTypes().add(this.getNamedElement());

+

+		// Initialize classes, features, and operations; add parameters

+		initEClass(sanModelEClass, SANModel.class, "SANModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getSANModel_Node(), this.getNode(), null, "node", null, 1, 1, SANModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEOperation(getSANModel__GetAllNodes(), this.getNode(), "getAllNodes", 0, -1, IS_UNIQUE, IS_ORDERED);

+

+		initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		EOperation op = initEOperation(getNamedElement__Validate__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "validate", 0, 1, IS_UNIQUE, IS_ORDERED);

+		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED);

+		EGenericType g1 = createEGenericType(ecorePackage.getEMap());

+		EGenericType g2 = createEGenericType(ecorePackage.getEJavaObject());

+		g1.getETypeArguments().add(g2);

+		g2 = createEGenericType(ecorePackage.getEJavaObject());

+		g1.getETypeArguments().add(g2);

+		addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED);

+

+		initEClass(nodeEClass, Node.class, "Node", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getNode_GlobalVariable(), this.getGlobalVariable(), null, "globalVariable", null, 0, -1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(composedNodeEClass, ComposedNode.class, "ComposedNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getComposedNode_StateVariables(), this.getSharedState(), null, "stateVariables", null, 0, -1, ComposedNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getComposedNode_Child(), this.getNode(), null, "child", null, 2, -1, ComposedNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(sharedStateEClass, SharedState.class, "SharedState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getSharedState_Place(), this.getPlace(), null, "place", null, 0, -1, SharedState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getSharedState_SharedStates(), this.getSharedState(), null, "sharedStates", null, 0, -1, SharedState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(joinEClass, Join.class, "Join", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+

+		initEClass(repEClass, Rep.class, "Rep", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEAttribute(getRep_NumbOfReps(), ecorePackage.getEString(), "numbOfReps", "", 0, 1, Rep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(atomicNodeEClass, AtomicNode.class, "AtomicNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getAtomicNode_Place(), this.getPlace(), null, "place", null, 0, -1, AtomicNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getAtomicNode_TimedActivity(), this.getTimedActivity(), null, "timedActivity", null, 0, -1, AtomicNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getAtomicNode_InstantaneousActivity(), this.getInstantaneousActivity(), null, "instantaneousActivity", null, 0, -1, AtomicNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getAtomicNode_InputGate(), this.getInputGate(), null, "inputGate", null, 0, -1, AtomicNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getAtomicNode_OutputGate(), this.getOutputGate(), null, "outputGate", null, 0, -1, AtomicNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEAttribute(getAtomicNode_Model(), ecorePackage.getEString(), "model", null, 0, 1, AtomicNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(placeEClass, Place.class, "Place", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getPlace_Activity(), this.getActivity(), null, "activity", null, 0, -1, Place.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getPlace_InputGate(), this.getInputGate(), null, "inputGate", null, 0, -1, Place.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEAttribute(getPlace_InitialState(), ecorePackage.getEInt(), "initialState", null, 0, 1, Place.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(timedActivityEClass, TimedActivity.class, "TimedActivity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEAttribute(getTimedActivity_Rate(), ecorePackage.getEString(), "rate", null, 0, 1, TimedActivity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEAttribute(getTimedActivity_TimeDistributionFunction(), ecorePackage.getEString(), "timeDistributionFunction", null, 0, 1, TimedActivity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(instantaneousActivityEClass, InstantaneousActivity.class, "InstantaneousActivity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+

+		initEClass(inputGateEClass, InputGate.class, "InputGate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEAttribute(getInputGate_InputPredicated(), ecorePackage.getEString(), "inputPredicated", null, 0, 1, InputGate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEAttribute(getInputGate_InputFunction(), ecorePackage.getEString(), "inputFunction", null, 0, 1, InputGate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getInputGate_Activity(), this.getActivity(), null, "activity", null, 0, -1, InputGate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(outputGateEClass, OutputGate.class, "OutputGate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEAttribute(getOutputGate_OutputFunction(), ecorePackage.getEString(), "outputFunction", null, 0, 1, OutputGate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(activityEClass, Activity.class, "Activity", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getActivity_Place(), this.getPlace(), null, "place", null, 0, -1, Activity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getActivity_OutputGate(), this.getOutputGate(), null, "outputGate", null, 0, -1, Activity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEAttribute(getActivity_Case(), ecorePackage.getEString(), "case", null, 0, -1, Activity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEReference(getActivity_Placecase(), this.getActivityPlaceCase(), null, "placecase", null, 0, -1, Activity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(gateEClass, Gate.class, "Gate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getGate_Place(), this.getPlace(), null, "place", null, 0, -1, Gate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(globalVariableEClass, GlobalVariable.class, "GlobalVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEAttribute(getGlobalVariable_Type(), ecorePackage.getEString(), "type", null, 0, 1, GlobalVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(activityPlaceCaseEClass, ActivityPlaceCase.class, "ActivityPlaceCase", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getActivityPlaceCase_Place(), this.getPrimitive(), null, "place", null, 0, -1, ActivityPlaceCase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEAttribute(getActivityPlaceCase_Case(), ecorePackage.getEInt(), "case", null, 0, 1, ActivityPlaceCase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(graphicalElementEClass, GraphicalElement.class, "GraphicalElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEAttribute(getGraphicalElement_X(), ecorePackage.getEInt(), "x", null, 0, 1, GraphicalElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEAttribute(getGraphicalElement_Y(), ecorePackage.getEInt(), "y", null, 0, 1, GraphicalElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+

+		initEClass(primitiveEClass, Primitive.class, "Primitive", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+

+		// Create resource

+		createResource(eNS_URI);

+	}

+

+} //SANModelPackageImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SharedStateImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SharedStateImpl.java
new file mode 100644
index 0000000..15eb93f
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/SharedStateImpl.java
@@ -0,0 +1,160 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import java.util.Collection;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.util.EObjectResolvingEList;

+import org.polarsys.chess.mobius.model.SAN.Place;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.model.SAN.SharedState;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Shared State</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.SharedStateImpl#getPlace <em>Place</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.SharedStateImpl#getSharedStates <em>Shared States</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class SharedStateImpl extends NamedElementImpl implements SharedState {

+	/**

+	 * The cached value of the '{@link #getPlace() <em>Place</em>}' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getPlace()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<Place> place;

+	/**

+	 * The cached value of the '{@link #getSharedStates() <em>Shared States</em>}' reference list.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getSharedStates()

+	 * @generated

+	 * @ordered

+	 */

+	protected EList<SharedState> sharedStates;

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SharedStateImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.SHARED_STATE;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<Place> getPlace() {

+		if (place == null) {

+			place = new EObjectResolvingEList<Place>(Place.class, this, SANModelPackage.SHARED_STATE__PLACE);

+		}

+		return place;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EList<SharedState> getSharedStates() {

+		if (sharedStates == null) {

+			sharedStates = new EObjectResolvingEList<SharedState>(SharedState.class, this, SANModelPackage.SHARED_STATE__SHARED_STATES);

+		}

+		return sharedStates;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.SHARED_STATE__PLACE:

+				return getPlace();

+			case SANModelPackage.SHARED_STATE__SHARED_STATES:

+				return getSharedStates();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.SHARED_STATE__PLACE:

+				getPlace().clear();

+				getPlace().addAll((Collection<? extends Place>)newValue);

+				return;

+			case SANModelPackage.SHARED_STATE__SHARED_STATES:

+				getSharedStates().clear();

+				getSharedStates().addAll((Collection<? extends SharedState>)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.SHARED_STATE__PLACE:

+				getPlace().clear();

+				return;

+			case SANModelPackage.SHARED_STATE__SHARED_STATES:

+				getSharedStates().clear();

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.SHARED_STATE__PLACE:

+				return place != null && !place.isEmpty();

+			case SANModelPackage.SHARED_STATE__SHARED_STATES:

+				return sharedStates != null && !sharedStates.isEmpty();

+		}

+		return super.eIsSet(featureID);

+	}

+

+} //SharedStateImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/TimedActivityImpl.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/TimedActivityImpl.java
new file mode 100644
index 0000000..d671617
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/impl/TimedActivityImpl.java
@@ -0,0 +1,211 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.impl;

+

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.model.SAN.TimedActivity;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Timed Activity</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.TimedActivityImpl#getRate <em>Rate</em>}</li>

+ *   <li>{@link org.polarsys.chess.mobius.model.SAN.impl.TimedActivityImpl#getTimeDistributionFunction <em>Time Distribution Function</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class TimedActivityImpl extends ActivityImpl implements TimedActivity {

+	/**

+	 * The default value of the '{@link #getRate() <em>Rate</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getRate()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String RATE_EDEFAULT = null;

+	/**

+	 * The cached value of the '{@link #getRate() <em>Rate</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getRate()

+	 * @generated

+	 * @ordered

+	 */

+	protected String rate = RATE_EDEFAULT;

+	/**

+	 * The default value of the '{@link #getTimeDistributionFunction() <em>Time Distribution Function</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getTimeDistributionFunction()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String TIME_DISTRIBUTION_FUNCTION_EDEFAULT = null;

+	/**

+	 * The cached value of the '{@link #getTimeDistributionFunction() <em>Time Distribution Function</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getTimeDistributionFunction()

+	 * @generated

+	 * @ordered

+	 */

+	protected String timeDistributionFunction = TIME_DISTRIBUTION_FUNCTION_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected TimedActivityImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return SANModelPackage.Literals.TIMED_ACTIVITY;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getRate() {

+		return rate;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setRate(String newRate) {

+		String oldRate = rate;

+		rate = newRate;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.TIMED_ACTIVITY__RATE, oldRate, rate));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getTimeDistributionFunction() {

+		return timeDistributionFunction;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setTimeDistributionFunction(String newTimeDistributionFunction) {

+		String oldTimeDistributionFunction = timeDistributionFunction;

+		timeDistributionFunction = newTimeDistributionFunction;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SANModelPackage.TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION, oldTimeDistributionFunction, timeDistributionFunction));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SANModelPackage.TIMED_ACTIVITY__RATE:

+				return getRate();

+			case SANModelPackage.TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION:

+				return getTimeDistributionFunction();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SANModelPackage.TIMED_ACTIVITY__RATE:

+				setRate((String)newValue);

+				return;

+			case SANModelPackage.TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION:

+				setTimeDistributionFunction((String)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.TIMED_ACTIVITY__RATE:

+				setRate(RATE_EDEFAULT);

+				return;

+			case SANModelPackage.TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION:

+				setTimeDistributionFunction(TIME_DISTRIBUTION_FUNCTION_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SANModelPackage.TIMED_ACTIVITY__RATE:

+				return RATE_EDEFAULT == null ? rate != null : !RATE_EDEFAULT.equals(rate);

+			case SANModelPackage.TIMED_ACTIVITY__TIME_DISTRIBUTION_FUNCTION:

+				return TIME_DISTRIBUTION_FUNCTION_EDEFAULT == null ? timeDistributionFunction != null : !TIME_DISTRIBUTION_FUNCTION_EDEFAULT.equals(timeDistributionFunction);

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (rate: ");

+		result.append(rate);

+		result.append(", timeDistributionFunction: ");

+		result.append(timeDistributionFunction);

+		result.append(')');

+		return result.toString();

+	}

+

+} //TimedActivityImpl

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/util/SANModelAdapterFactory.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/util/SANModelAdapterFactory.java
new file mode 100644
index 0000000..e4031e9
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/util/SANModelAdapterFactory.java
@@ -0,0 +1,444 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.util;

+

+import org.eclipse.emf.common.notify.Adapter;

+import org.eclipse.emf.common.notify.Notifier;

+

+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

+

+import org.eclipse.emf.ecore.EObject;

+

+import org.polarsys.chess.mobius.model.SAN.*;

+

+/**

+ * <!-- begin-user-doc -->

+ * The <b>Adapter Factory</b> for the model.

+ * It provides an adapter <code>createXXX</code> method for each class of the model.

+ * <!-- end-user-doc -->

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage

+ * @generated

+ */

+public class SANModelAdapterFactory extends AdapterFactoryImpl {

+	/**

+	 * The cached model package.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected static SANModelPackage modelPackage;

+

+	/**

+	 * Creates an instance of the adapter factory.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelAdapterFactory() {

+		if (modelPackage == null) {

+			modelPackage = SANModelPackage.eINSTANCE;

+		}

+	}

+

+	/**

+	 * Returns whether this factory is applicable for the type of the object.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.

+	 * <!-- end-user-doc -->

+	 * @return whether this factory is applicable for the type of the object.

+	 * @generated

+	 */

+	@Override

+	public boolean isFactoryForType(Object object) {

+		if (object == modelPackage) {

+			return true;

+		}

+		if (object instanceof EObject) {

+			return ((EObject)object).eClass().getEPackage() == modelPackage;

+		}

+		return false;

+	}

+

+	/**

+	 * The switch that delegates to the <code>createXXX</code> methods.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SANModelSwitch<Adapter> modelSwitch =

+		new SANModelSwitch<Adapter>() {

+			@Override

+			public Adapter caseSANModel(SANModel object) {

+				return createSANModelAdapter();

+			}

+			@Override

+			public Adapter caseNamedElement(NamedElement object) {

+				return createNamedElementAdapter();

+			}

+			@Override

+			public Adapter caseNode(Node object) {

+				return createNodeAdapter();

+			}

+			@Override

+			public Adapter caseComposedNode(ComposedNode object) {

+				return createComposedNodeAdapter();

+			}

+			@Override

+			public Adapter caseSharedState(SharedState object) {

+				return createSharedStateAdapter();

+			}

+			@Override

+			public Adapter caseJoin(Join object) {

+				return createJoinAdapter();

+			}

+			@Override

+			public Adapter caseRep(Rep object) {

+				return createRepAdapter();

+			}

+			@Override

+			public Adapter caseAtomicNode(AtomicNode object) {

+				return createAtomicNodeAdapter();

+			}

+			@Override

+			public Adapter casePlace(Place object) {

+				return createPlaceAdapter();

+			}

+			@Override

+			public Adapter caseTimedActivity(TimedActivity object) {

+				return createTimedActivityAdapter();

+			}

+			@Override

+			public Adapter caseInstantaneousActivity(InstantaneousActivity object) {

+				return createInstantaneousActivityAdapter();

+			}

+			@Override

+			public Adapter caseInputGate(InputGate object) {

+				return createInputGateAdapter();

+			}

+			@Override

+			public Adapter caseOutputGate(OutputGate object) {

+				return createOutputGateAdapter();

+			}

+			@Override

+			public Adapter caseActivity(Activity object) {

+				return createActivityAdapter();

+			}

+			@Override

+			public Adapter caseGate(Gate object) {

+				return createGateAdapter();

+			}

+			@Override

+			public Adapter caseGlobalVariable(GlobalVariable object) {

+				return createGlobalVariableAdapter();

+			}

+			@Override

+			public Adapter caseActivityPlaceCase(ActivityPlaceCase object) {

+				return createActivityPlaceCaseAdapter();

+			}

+			@Override

+			public Adapter caseGraphicalElement(GraphicalElement object) {

+				return createGraphicalElementAdapter();

+			}

+			@Override

+			public Adapter casePrimitive(Primitive object) {

+				return createPrimitiveAdapter();

+			}

+			@Override

+			public Adapter defaultCase(EObject object) {

+				return createEObjectAdapter();

+			}

+		};

+

+	/**

+	 * Creates an adapter for the <code>target</code>.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param target the object to adapt.

+	 * @return the adapter for the <code>target</code>.

+	 * @generated

+	 */

+	@Override

+	public Adapter createAdapter(Notifier target) {

+		return modelSwitch.doSwitch((EObject)target);

+	}

+

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.SANModel <em>SAN Model</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.SANModel

+	 * @generated

+	 */

+	public Adapter createSANModelAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.NamedElement <em>Named Element</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.NamedElement

+	 * @generated

+	 */

+	public Adapter createNamedElementAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.Node <em>Node</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.Node

+	 * @generated

+	 */

+	public Adapter createNodeAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.ComposedNode <em>Composed Node</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.ComposedNode

+	 * @generated

+	 */

+	public Adapter createComposedNodeAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.SharedState <em>Shared State</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.SharedState

+	 * @generated

+	 */

+	public Adapter createSharedStateAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.Join <em>Join</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.Join

+	 * @generated

+	 */

+	public Adapter createJoinAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.Rep <em>Rep</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.Rep

+	 * @generated

+	 */

+	public Adapter createRepAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.AtomicNode <em>Atomic Node</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.AtomicNode

+	 * @generated

+	 */

+	public Adapter createAtomicNodeAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.Place <em>Place</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.Place

+	 * @generated

+	 */

+	public Adapter createPlaceAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.TimedActivity <em>Timed Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.TimedActivity

+	 * @generated

+	 */

+	public Adapter createTimedActivityAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.InstantaneousActivity <em>Instantaneous Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.InstantaneousActivity

+	 * @generated

+	 */

+	public Adapter createInstantaneousActivityAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.InputGate <em>Input Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.InputGate

+	 * @generated

+	 */

+	public Adapter createInputGateAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.OutputGate <em>Output Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.OutputGate

+	 * @generated

+	 */

+	public Adapter createOutputGateAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.Activity <em>Activity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.Activity

+	 * @generated

+	 */

+	public Adapter createActivityAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.Gate <em>Gate</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.Gate

+	 * @generated

+	 */

+	public Adapter createGateAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.GlobalVariable <em>Global Variable</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.GlobalVariable

+	 * @generated

+	 */

+	public Adapter createGlobalVariableAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase <em>Activity Place Case</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.ActivityPlaceCase

+	 * @generated

+	 */

+	public Adapter createActivityPlaceCaseAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.GraphicalElement <em>Graphical Element</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.GraphicalElement

+	 * @generated

+	 */

+	public Adapter createGraphicalElementAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.mobius.model.SAN.Primitive <em>Primitive</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.mobius.model.SAN.Primitive

+	 * @generated

+	 */

+	public Adapter createPrimitiveAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for the default case.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @generated

+	 */

+	public Adapter createEObjectAdapter() {

+		return null;

+	}

+

+} //SANModelAdapterFactory

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/util/SANModelSwitch.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/util/SANModelSwitch.java
new file mode 100644
index 0000000..5b19421
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/util/SANModelSwitch.java
@@ -0,0 +1,534 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.util;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.ecore.EPackage;

+

+import org.eclipse.emf.ecore.util.Switch;

+

+import org.polarsys.chess.mobius.model.SAN.*;

+

+/**

+ * <!-- begin-user-doc -->

+ * The <b>Switch</b> for the model's inheritance hierarchy.

+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}

+ * to invoke the <code>caseXXX</code> method for each class of the model,

+ * starting with the actual class of the object

+ * and proceeding up the inheritance hierarchy

+ * until a non-null result is returned,

+ * which is the result of the switch.

+ * <!-- end-user-doc -->

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage

+ * @generated

+ */

+public class SANModelSwitch<T> extends Switch<T> {

+	/**

+	 * The cached model package

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected static SANModelPackage modelPackage;

+

+	/**

+	 * Creates an instance of the switch.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelSwitch() {

+		if (modelPackage == null) {

+			modelPackage = SANModelPackage.eINSTANCE;

+		}

+	}

+

+	/**

+	 * Checks whether this is a switch for the given package.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param ePackage the package in question.

+	 * @return whether this is a switch for the given package.

+	 * @generated

+	 */

+	@Override

+	protected boolean isSwitchFor(EPackage ePackage) {

+		return ePackage == modelPackage;

+	}

+

+	/**

+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the first non-null result returned by a <code>caseXXX</code> call.

+	 * @generated

+	 */

+	@Override

+	protected T doSwitch(int classifierID, EObject theEObject) {

+		switch (classifierID) {

+			case SANModelPackage.SAN_MODEL: {

+				SANModel sanModel = (SANModel)theEObject;

+				T result = caseSANModel(sanModel);

+				if (result == null) result = caseNamedElement(sanModel);

+				if (result == null) result = caseGraphicalElement(sanModel);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.NAMED_ELEMENT: {

+				NamedElement namedElement = (NamedElement)theEObject;

+				T result = caseNamedElement(namedElement);

+				if (result == null) result = caseGraphicalElement(namedElement);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.NODE: {

+				Node node = (Node)theEObject;

+				T result = caseNode(node);

+				if (result == null) result = caseNamedElement(node);

+				if (result == null) result = caseGraphicalElement(node);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.COMPOSED_NODE: {

+				ComposedNode composedNode = (ComposedNode)theEObject;

+				T result = caseComposedNode(composedNode);

+				if (result == null) result = caseNode(composedNode);

+				if (result == null) result = caseNamedElement(composedNode);

+				if (result == null) result = caseGraphicalElement(composedNode);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.SHARED_STATE: {

+				SharedState sharedState = (SharedState)theEObject;

+				T result = caseSharedState(sharedState);

+				if (result == null) result = caseNamedElement(sharedState);

+				if (result == null) result = caseGraphicalElement(sharedState);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.JOIN: {

+				Join join = (Join)theEObject;

+				T result = caseJoin(join);

+				if (result == null) result = caseComposedNode(join);

+				if (result == null) result = caseNode(join);

+				if (result == null) result = caseNamedElement(join);

+				if (result == null) result = caseGraphicalElement(join);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.REP: {

+				Rep rep = (Rep)theEObject;

+				T result = caseRep(rep);

+				if (result == null) result = caseComposedNode(rep);

+				if (result == null) result = caseNode(rep);

+				if (result == null) result = caseNamedElement(rep);

+				if (result == null) result = caseGraphicalElement(rep);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.ATOMIC_NODE: {

+				AtomicNode atomicNode = (AtomicNode)theEObject;

+				T result = caseAtomicNode(atomicNode);

+				if (result == null) result = caseNode(atomicNode);

+				if (result == null) result = caseNamedElement(atomicNode);

+				if (result == null) result = caseGraphicalElement(atomicNode);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.PLACE: {

+				Place place = (Place)theEObject;

+				T result = casePlace(place);

+				if (result == null) result = casePrimitive(place);

+				if (result == null) result = caseNamedElement(place);

+				if (result == null) result = caseGraphicalElement(place);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.TIMED_ACTIVITY: {

+				TimedActivity timedActivity = (TimedActivity)theEObject;

+				T result = caseTimedActivity(timedActivity);

+				if (result == null) result = caseActivity(timedActivity);

+				if (result == null) result = caseNamedElement(timedActivity);

+				if (result == null) result = caseGraphicalElement(timedActivity);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.INSTANTANEOUS_ACTIVITY: {

+				InstantaneousActivity instantaneousActivity = (InstantaneousActivity)theEObject;

+				T result = caseInstantaneousActivity(instantaneousActivity);

+				if (result == null) result = caseActivity(instantaneousActivity);

+				if (result == null) result = caseNamedElement(instantaneousActivity);

+				if (result == null) result = caseGraphicalElement(instantaneousActivity);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.INPUT_GATE: {

+				InputGate inputGate = (InputGate)theEObject;

+				T result = caseInputGate(inputGate);

+				if (result == null) result = casePrimitive(inputGate);

+				if (result == null) result = caseNamedElement(inputGate);

+				if (result == null) result = caseGraphicalElement(inputGate);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.OUTPUT_GATE: {

+				OutputGate outputGate = (OutputGate)theEObject;

+				T result = caseOutputGate(outputGate);

+				if (result == null) result = caseInputGate(outputGate);

+				if (result == null) result = casePrimitive(outputGate);

+				if (result == null) result = caseNamedElement(outputGate);

+				if (result == null) result = caseGraphicalElement(outputGate);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.ACTIVITY: {

+				Activity activity = (Activity)theEObject;

+				T result = caseActivity(activity);

+				if (result == null) result = caseNamedElement(activity);

+				if (result == null) result = caseGraphicalElement(activity);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.GATE: {

+				Gate gate = (Gate)theEObject;

+				T result = caseGate(gate);

+				if (result == null) result = caseNamedElement(gate);

+				if (result == null) result = caseGraphicalElement(gate);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.GLOBAL_VARIABLE: {

+				GlobalVariable globalVariable = (GlobalVariable)theEObject;

+				T result = caseGlobalVariable(globalVariable);

+				if (result == null) result = caseNamedElement(globalVariable);

+				if (result == null) result = caseGraphicalElement(globalVariable);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.ACTIVITY_PLACE_CASE: {

+				ActivityPlaceCase activityPlaceCase = (ActivityPlaceCase)theEObject;

+				T result = caseActivityPlaceCase(activityPlaceCase);

+				if (result == null) result = caseGraphicalElement(activityPlaceCase);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.GRAPHICAL_ELEMENT: {

+				GraphicalElement graphicalElement = (GraphicalElement)theEObject;

+				T result = caseGraphicalElement(graphicalElement);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case SANModelPackage.PRIMITIVE: {

+				Primitive primitive = (Primitive)theEObject;

+				T result = casePrimitive(primitive);

+				if (result == null) result = caseNamedElement(primitive);

+				if (result == null) result = caseGraphicalElement(primitive);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			default: return defaultCase(theEObject);

+		}

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>SAN Model</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>SAN Model</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseSANModel(SANModel object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Named Element</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Named Element</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseNamedElement(NamedElement object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Node</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Node</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseNode(Node object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Composed Node</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Composed Node</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseComposedNode(ComposedNode object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Shared State</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Shared State</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseSharedState(SharedState object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Join</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Join</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseJoin(Join object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Rep</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Rep</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseRep(Rep object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Atomic Node</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Atomic Node</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseAtomicNode(AtomicNode object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Place</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Place</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T casePlace(Place object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Timed Activity</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Timed Activity</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseTimedActivity(TimedActivity object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Instantaneous Activity</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Instantaneous Activity</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseInstantaneousActivity(InstantaneousActivity object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Input Gate</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Input Gate</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseInputGate(InputGate object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Output Gate</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Output Gate</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseOutputGate(OutputGate object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Activity</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Activity</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseActivity(Activity object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Gate</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Gate</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseGate(Gate object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Global Variable</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Global Variable</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseGlobalVariable(GlobalVariable object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Activity Place Case</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Activity Place Case</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseActivityPlaceCase(ActivityPlaceCase object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Graphical Element</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Graphical Element</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseGraphicalElement(GraphicalElement object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Primitive</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Primitive</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T casePrimitive(Primitive object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch, but this is the last case anyway.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)

+	 * @generated

+	 */

+	@Override

+	public T defaultCase(EObject object) {

+		return null;

+	}

+

+} //SANModelSwitch

diff --git a/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/util/SANModelValidator.java b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/util/SANModelValidator.java
new file mode 100644
index 0000000..3a31f60
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.model/src/org/polarsys/chess/mobius/model/SAN/util/SANModelValidator.java
@@ -0,0 +1,504 @@
+/**

+ */

+package org.polarsys.chess.mobius.model.SAN.util;

+

+import java.util.Map;

+

+import org.eclipse.emf.common.util.DiagnosticChain;

+import org.eclipse.emf.common.util.ResourceLocator;

+

+import org.eclipse.emf.ecore.EPackage;

+

+import org.eclipse.emf.ecore.util.EObjectValidator;

+

+import org.polarsys.chess.mobius.model.SAN.*;

+

+/**

+ * <!-- begin-user-doc -->

+ * The <b>Validator</b> for the model.

+ * <!-- end-user-doc -->

+ * @see org.polarsys.chess.mobius.model.SAN.SANModelPackage

+ * @generated

+ */

+public class SANModelValidator extends EObjectValidator {

+	/**

+	 * The cached model package

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public static final SANModelValidator INSTANCE = new SANModelValidator();

+

+	/**

+	 * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.eclipse.emf.common.util.Diagnostic#getSource()

+	 * @see org.eclipse.emf.common.util.Diagnostic#getCode()

+	 * @generated

+	 */

+	public static final String DIAGNOSTIC_SOURCE = "org.polarsys.chess.mobius.model.SAN";

+

+	/**

+	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate' of 'Named Element'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public static final int NAMED_ELEMENT__VALIDATE = 1;

+

+	/**

+	 * A constant with a fixed name that can be used as the base value for additional hand written constants.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 1;

+

+	/**

+	 * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;

+

+	/**

+	 * Creates an instance of the switch.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public SANModelValidator() {

+		super();

+	}

+

+	/**

+	 * Returns the package of this validator switch.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EPackage getEPackage() {

+	  return SANModelPackage.eINSTANCE;

+	}

+

+	/**

+	 * Calls <code>validateXXX</code> for the corresponding classifier of the model.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		switch (classifierID) {

+			case SANModelPackage.SAN_MODEL:

+				return validateSANModel((SANModel)value, diagnostics, context);

+			case SANModelPackage.NAMED_ELEMENT:

+				return validateNamedElement((NamedElement)value, diagnostics, context);

+			case SANModelPackage.NODE:

+				return validateNode((Node)value, diagnostics, context);

+			case SANModelPackage.COMPOSED_NODE:

+				return validateComposedNode((ComposedNode)value, diagnostics, context);

+			case SANModelPackage.SHARED_STATE:

+				return validateSharedState((SharedState)value, diagnostics, context);

+			case SANModelPackage.JOIN:

+				return validateJoin((Join)value, diagnostics, context);

+			case SANModelPackage.REP:

+				return validateRep((Rep)value, diagnostics, context);

+			case SANModelPackage.ATOMIC_NODE:

+				return validateAtomicNode((AtomicNode)value, diagnostics, context);

+			case SANModelPackage.PLACE:

+				return validatePlace((Place)value, diagnostics, context);

+			case SANModelPackage.TIMED_ACTIVITY:

+				return validateTimedActivity((TimedActivity)value, diagnostics, context);

+			case SANModelPackage.INSTANTANEOUS_ACTIVITY:

+				return validateInstantaneousActivity((InstantaneousActivity)value, diagnostics, context);

+			case SANModelPackage.INPUT_GATE:

+				return validateInputGate((InputGate)value, diagnostics, context);

+			case SANModelPackage.OUTPUT_GATE:

+				return validateOutputGate((OutputGate)value, diagnostics, context);

+			case SANModelPackage.ACTIVITY:

+				return validateActivity((Activity)value, diagnostics, context);

+			case SANModelPackage.GATE:

+				return validateGate((Gate)value, diagnostics, context);

+			case SANModelPackage.GLOBAL_VARIABLE:

+				return validateGlobalVariable((GlobalVariable)value, diagnostics, context);

+			case SANModelPackage.ACTIVITY_PLACE_CASE:

+				return validateActivityPlaceCase((ActivityPlaceCase)value, diagnostics, context);

+			case SANModelPackage.GRAPHICAL_ELEMENT:

+				return validateGraphicalElement((GraphicalElement)value, diagnostics, context);

+			case SANModelPackage.PRIMITIVE:

+				return validatePrimitive((Primitive)value, diagnostics, context);

+			default:

+				return true;

+		}

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateSANModel(SANModel sanModel, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(sanModel, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(sanModel, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(sanModel, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(sanModel, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(sanModel, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(sanModel, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(sanModel, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(sanModel, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(sanModel, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(sanModel, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateNamedElement(NamedElement namedElement, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(namedElement, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(namedElement, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(namedElement, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(namedElement, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(namedElement, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(namedElement, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(namedElement, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(namedElement, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(namedElement, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(namedElement, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * Validates the validate constraint of '<em>Named Element</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateNamedElement_validate(NamedElement namedElement, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		return namedElement.validate(diagnostics, context);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateNode(Node node, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(node, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(node, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(node, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(node, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(node, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(node, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(node, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(node, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(node, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(node, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateComposedNode(ComposedNode composedNode, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(composedNode, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(composedNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(composedNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(composedNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(composedNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(composedNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(composedNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(composedNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(composedNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(composedNode, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateSharedState(SharedState sharedState, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(sharedState, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(sharedState, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(sharedState, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(sharedState, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(sharedState, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(sharedState, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(sharedState, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(sharedState, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(sharedState, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(sharedState, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateJoin(Join join, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(join, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(join, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(join, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(join, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(join, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(join, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(join, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(join, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(join, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(join, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateRep(Rep rep, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(rep, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(rep, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(rep, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(rep, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(rep, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(rep, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(rep, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(rep, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(rep, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(rep, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateAtomicNode(AtomicNode atomicNode, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(atomicNode, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(atomicNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(atomicNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(atomicNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(atomicNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(atomicNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(atomicNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(atomicNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(atomicNode, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(atomicNode, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validatePlace(Place place, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(place, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(place, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(place, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(place, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(place, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(place, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(place, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(place, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(place, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(place, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateTimedActivity(TimedActivity timedActivity, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(timedActivity, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(timedActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(timedActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(timedActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(timedActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(timedActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(timedActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(timedActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(timedActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(timedActivity, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateInstantaneousActivity(InstantaneousActivity instantaneousActivity, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(instantaneousActivity, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(instantaneousActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(instantaneousActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(instantaneousActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(instantaneousActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(instantaneousActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(instantaneousActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(instantaneousActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(instantaneousActivity, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(instantaneousActivity, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateInputGate(InputGate inputGate, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(inputGate, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(inputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(inputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(inputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(inputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(inputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(inputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(inputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(inputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(inputGate, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateOutputGate(OutputGate outputGate, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(outputGate, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(outputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(outputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(outputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(outputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(outputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(outputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(outputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(outputGate, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(outputGate, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateActivity(Activity activity, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(activity, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(activity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(activity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(activity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(activity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(activity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(activity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(activity, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(activity, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(activity, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateGate(Gate gate, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(gate, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(gate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(gate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(gate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(gate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(gate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(gate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(gate, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(gate, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(gate, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateGlobalVariable(GlobalVariable globalVariable, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(globalVariable, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(globalVariable, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(globalVariable, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(globalVariable, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(globalVariable, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(globalVariable, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(globalVariable, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(globalVariable, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(globalVariable, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(globalVariable, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateActivityPlaceCase(ActivityPlaceCase activityPlaceCase, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		return validate_EveryDefaultConstraint(activityPlaceCase, diagnostics, context);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validateGraphicalElement(GraphicalElement graphicalElement, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		return validate_EveryDefaultConstraint(graphicalElement, diagnostics, context);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean validatePrimitive(Primitive primitive, DiagnosticChain diagnostics, Map<Object, Object> context) {

+		if (!validate_NoCircularContainment(primitive, diagnostics, context)) return false;

+		boolean result = validate_EveryMultiplicityConforms(primitive, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(primitive, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(primitive, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(primitive, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(primitive, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_UniqueID(primitive, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(primitive, diagnostics, context);

+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(primitive, diagnostics, context);

+		if (result || diagnostics != null) result &= validateNamedElement_validate(primitive, diagnostics, context);

+		return result;

+	}

+

+	/**

+	 * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public ResourceLocator getResourceLocator() {

+		// TODO

+		// Specialize this to return a resource locator for messages specific to this validator.

+		// Ensure that you remove @generated or mark it @generated NOT

+		return super.getResourceLocator();

+	}

+

+} //SANModelValidator

diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/.classpath b/plugins/mobius/org.polarsys.chess.mobius.preferences/.classpath
new file mode 100644
index 0000000..b862a29
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

+	<classpathentry kind="src" path="src"/>

+	<classpathentry kind="output" path="bin"/>

+</classpath>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/.project b/plugins/mobius/org.polarsys.chess.mobius.preferences/.project
new file mode 100644
index 0000000..338aa1b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.polarsys.chess.mobius.preferences</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ManifestBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.SchemaBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.pde.PluginNature</nature>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+	</natures>

+</projectDescription>

diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/.settings/org.eclipse.jdt.core.prefs b/plugins/mobius/org.polarsys.chess.mobius.preferences/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..295926d
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1

+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

+org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.source=1.8

diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/META-INF/MANIFEST.MF b/plugins/mobius/org.polarsys.chess.mobius.preferences/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4f0125e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mobius Preferences
+Bundle-SymbolicName: org.polarsys.chess.mobius.preferences
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.polarsys.chess.mobius.preferences.Activator
+Require-Bundle: org.eclipse.ui,

+ org.eclipse.core.runtime
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Export-Package: org.polarsys.chess.mobius.preferences
diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/about.html b/plugins/mobius/org.polarsys.chess.mobius.preferences/about.html
new file mode 100644
index 0000000..58211cf
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>May 28, 2019</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v20.html">http://www.eclipse.org/legal/epl-v20.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/bin/org/polarsys/chess/mobius/preferences/Activator.class b/plugins/mobius/org.polarsys.chess.mobius.preferences/bin/org/polarsys/chess/mobius/preferences/Activator.class
new file mode 100644
index 0000000..fe42e73
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/bin/org/polarsys/chess/mobius/preferences/Activator.class
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/bin/org/polarsys/chess/mobius/preferences/MobiusPreferencePage.class b/plugins/mobius/org.polarsys.chess.mobius.preferences/bin/org/polarsys/chess/mobius/preferences/MobiusPreferencePage.class
new file mode 100644
index 0000000..0f078b1
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/bin/org/polarsys/chess/mobius/preferences/MobiusPreferencePage.class
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/build.properties b/plugins/mobius/org.polarsys.chess.mobius.preferences/build.properties
new file mode 100644
index 0000000..41eb6ad
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/build.properties
@@ -0,0 +1,4 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .

diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/src/org/polarsys/chess/mobius/preferences/Activator.java b/plugins/mobius/org.polarsys.chess.mobius.preferences/src/org/polarsys/chess/mobius/preferences/Activator.java
new file mode 100644
index 0000000..01a3c67
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/src/org/polarsys/chess/mobius/preferences/Activator.java
@@ -0,0 +1,64 @@
+/*********************************************************************

+* Copyright (c) 2019 Intecs Solutions SpA

+*

+* This program and the accompanying materials are made

+* available under the terms of the Eclipse Public License 2.0

+* which is available at https://www.eclipse.org/legal/epl-2.0/

+*

+* SPDX-License-Identifier: EPL-2.0

+*

+* Contributors: 

+*   Intecs Solutions - Initial API and implementation

+*   

+**********************************************************************/

+

+package org.polarsys.chess.mobius.preferences;

+

+import org.eclipse.ui.plugin.AbstractUIPlugin;

+import org.osgi.framework.BundleContext;

+

+/**

+ * The activator class controls the plug-in life cycle

+ */

+public class Activator extends AbstractUIPlugin {

+

+	// The plug-in ID

+	public static final String PLUGIN_ID = "org.polarsys.chess.mobius.preferences"; //$NON-NLS-1$

+

+	// The shared instance

+	private static Activator plugin;

+	

+	/**

+	 * The constructor

+	 */

+	public Activator() {

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)

+	 */

+	public void start(BundleContext context) throws Exception {

+		super.start(context);

+		plugin = this;

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)

+	 */

+	public void stop(BundleContext context) throws Exception {

+		plugin = null;

+		super.stop(context);

+	}

+

+	/**

+	 * Returns the shared instance

+	 *

+	 * @return the shared instance

+	 */

+	public static Activator getDefault() {

+		return plugin;

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius.preferences/src/org/polarsys/chess/mobius/preferences/MobiusPreferencePage.java b/plugins/mobius/org.polarsys.chess.mobius.preferences/src/org/polarsys/chess/mobius/preferences/MobiusPreferencePage.java
new file mode 100644
index 0000000..a78708a
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius.preferences/src/org/polarsys/chess/mobius/preferences/MobiusPreferencePage.java
@@ -0,0 +1,46 @@
+/*********************************************************************

+* Copyright (c) 2019 Intecs Solutions SpA

+*

+* This program and the accompanying materials are made

+* available under the terms of the Eclipse Public License 2.0

+* which is available at https://www.eclipse.org/legal/epl-2.0/

+*

+* SPDX-License-Identifier: EPL-2.0

+*

+* Contributors: 

+*   Intecs Solutions - Initial API and implementation

+*   

+**********************************************************************/

+

+package org.polarsys.chess.mobius.preferences;

+

+import org.eclipse.jface.preference.DirectoryFieldEditor;

+import org.eclipse.jface.preference.FieldEditorPreferencePage;

+import org.eclipse.ui.IWorkbench;

+import org.eclipse.ui.IWorkbenchPreferencePage;

+import org.polarsys.chess.mobius.preferences.Activator;

+

+public class MobiusPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {

+	

+	public static final String MOBIUS_PROJECT_LOCATION_FIELD = "Mobius Project Location";

+

+	public MobiusPreferencePage(){

+		super(GRID);

+	}

+

+	@Override

+	public void init(IWorkbench workbench) {

+		setPreferenceStore(Activator.getDefault().getPreferenceStore());

+		setDescription("Preferences page for Mobius project generation");

+	}

+

+	@Override

+	protected void createFieldEditors() {

+		

+		DirectoryFieldEditor xsapPathDirEditor = new DirectoryFieldEditor(MOBIUS_PROJECT_LOCATION_FIELD, "Mobius Project Location:",

+				getFieldEditorParent());	

+				addField(xsapPathDirEditor);

+		

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius/.classpath b/plugins/mobius/org.polarsys.chess.mobius/.classpath
new file mode 100644
index 0000000..b862a29
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

+	<classpathentry kind="src" path="src"/>

+	<classpathentry kind="output" path="bin"/>

+</classpath>

diff --git a/plugins/mobius/org.polarsys.chess.mobius/.project b/plugins/mobius/org.polarsys.chess.mobius/.project
new file mode 100644
index 0000000..a053a39
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/.project
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.polarsys.chess.mobius</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>

+			<arguments>

+				<dictionary>

+					<key>compilation.kind</key>

+					<value>compilation.absolute.path</value>

+				</dictionary>

+				<dictionary>

+					<key>compliance</key>

+					<value>pragmatic</value>

+				</dictionary>

+				<dictionary>

+					<key>resource.kind</key>

+					<value>xmi</value>

+				</dictionary>

+				<dictionary>

+					<key>trim-position</key>

+					<value>false</value>

+				</dictionary>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ManifestBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.SchemaBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>

+		<nature>org.eclipse.pde.PluginNature</nature>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+	</natures>

+</projectDescription>

diff --git a/plugins/mobius/org.polarsys.chess.mobius/.settings/org.eclipse.jdt.core.prefs b/plugins/mobius/org.polarsys.chess.mobius/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..295926d
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1

+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

+org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.source=1.8

diff --git a/plugins/mobius/org.polarsys.chess.mobius/META-INF/MANIFEST.MF b/plugins/mobius/org.polarsys.chess.mobius/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..b75ad7b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/META-INF/MANIFEST.MF
@@ -0,0 +1,31 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mobius Integration
+Bundle-SymbolicName: org.polarsys.chess.mobius;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Intecs
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.resources;bundle-version="3.11.1",
+ org.eclipse.acceleo.engine,
+ org.eclipse.uml2.uml;bundle-version="5.2.3",
+ org.polarsys.chess.service,
+ org.polarsys.chess.core,
+ org.eclipse.papyrus.editor,
+ org.eclipse.papyrus.marte.static.profile,
+ org.polarsys.chess.chessmlprofile,
+ org.polarsys.chess.mobius.preferences,
+ org.eclipse.acceleo.parser;bundle-version="3.6.6",
+ org.eclipse.m2m.qvt.oml;bundle-version="3.6.0",
+ org.eclipse.m2m.qvt.oml.project;bundle-version="3.6.0",
+ org.eclipse.m2m.qvt.oml.runtime;bundle-version="3.6.0",
+ org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.8.0",
+ org.polarsys.chess.mobius.model
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.polarsys.chess.mobius.dialogs,
+ org.polarsys.chess.mobius.handlers,
+ org.polarsys.chess.mobius.templates,
+ org.polarsys.chess.mobius.transformations,
+ org.polarsys.chess.mobius.utils
+Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.polarsys.chess.mobius.Activator
+Import-Package: org.eclipse.debug.core
diff --git a/plugins/mobius/org.polarsys.chess.mobius/about.html b/plugins/mobius/org.polarsys.chess.mobius/about.html
new file mode 100644
index 0000000..58211cf
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>May 28, 2019</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v20.html">http://www.eclipse.org/legal/epl-v20.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/build.acceleo b/plugins/mobius/org.polarsys.chess.mobius/build.acceleo
new file mode 100644
index 0000000..35eed59
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/build.acceleo
@@ -0,0 +1,26 @@
+<!-- ===================================================================== -->

+<!-- Custom targets.                                                       -->

+<!-- Set customBuildCallbacks = build.acceleo in your build.properties.    -->

+<!-- ===================================================================== -->

+<project name="Build Acceleo Module" default="noDefault">    

+    <!-- ================================================================= -->

+    <!-- Default target                                                    -->

+    <!-- ================================================================= -->

+    <target name="noDefault">

+        <echo message="This file must be called with explicit targets" />

+    </target>

+

+    <!-- ================================================================= -->

+    <!-- This will be called automatically after the compilation of each   -->

+    <!-- Bundle... in dependency order.                                    -->

+    <!-- ================================================================= -->

+    <target name="post.compile.@dot">

+        <acceleoCompiler 

+            sourceFolder="${target.folder}"

+            outputFolder="${target.folder}"

+            dependencies="${target.folder}/../../org.polarsys.chess.chessmlprofile;${target.folder}/../../org.eclipse.papyrus.marte.static.profile;${target.folder}/../../org.polarsys.chess.editor;"

+            binaryResource="false"

+            packagesToRegister="">

+        </acceleoCompiler>

+    </target>    

+</project>

diff --git a/plugins/mobius/org.polarsys.chess.mobius/build.properties b/plugins/mobius/org.polarsys.chess.mobius/build.properties
new file mode 100644
index 0000000..0d02314
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/build.properties
@@ -0,0 +1,10 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .,\

+               plugin.xml,\

+               tasks/,\

+               build.properties,\

+               build.acceleo,\

+               transformations/

+customBuildCallbacks = build.acceleo

diff --git a/plugins/mobius/org.polarsys.chess.mobius/icons/sample.gif b/plugins/mobius/org.polarsys.chess.mobius/icons/sample.gif
new file mode 100644
index 0000000..34fb3c9
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/icons/sample.gif
Binary files differ
diff --git a/plugins/mobius/org.polarsys.chess.mobius/plugin.xml b/plugins/mobius/org.polarsys.chess.mobius/plugin.xml
new file mode 100644
index 0000000..55d7d50
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/plugin.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.4"?>

+<plugin>

+

+   <extension

+         point="org.eclipse.ui.commands">

+      <category

+            name="Mobius Category"

+            id="org.polarsys.chess.mobius.commands.category">

+      </category>

+      <command

+            name="Transformation Command"

+            categoryId="org.polarsys.chess.mobius.commands.category"

+            id="org.polarsys.chess.mobius.commands.TransformationCommand">

+      </command>

+   </extension>

+   <extension

+         point="org.eclipse.ui.handlers">

+      <handler

+            commandId="org.polarsys.chess.mobius.commands.TransformationCommand"

+            class="org.polarsys.chess.mobius.handlers.TransformationHandler">

+      </handler>

+   </extension>

+   <extension

+         point="org.eclipse.ui.menus">

+      <menuContribution

+            allPopups="false"

+            locationURI="menu:org.eclipse.ui.main.menu">

+         <menu

+               id="org.polarsys.chess.mainMenu"

+               label="CHESS"

+               mnemonic="E">

+            <menu

+                  id="chess.menu.dependability.id"

+                  label="Dependability">

+               <command

+                     commandId="org.polarsys.chess.mobius.commands.TransformationCommand"

+                     label="Generate Mobius Project"

+                     style="push">

+               </command>

+            </menu>

+         </menu>

+      </menuContribution>

+   </extension>

+   

+   <extension

+         point="org.eclipse.ui.preferencePages">

+      <page

+            category="org.polarsys.chess.preferences"

+            class="org.polarsys.chess.mobius.preferences.MobiusPreferencePage"

+            id="org.polarsys.chess.mobius.page"

+            name="Mobius Preferences">

+      </page>

+   </extension>

+   <extension point="org.eclipse.m2m.qvt.oml.javaBlackboxUnits">

+  	<unit name="SANJavaLib" namespace="chess">

+	    <library name="UtilLib" 

+	             class="org.polarsys.chess.mobius.utils.QVTBlackBox">

+	       <metamodel nsURI="http://www.eclipse.org/emf/2002/Ecore"/>

+           <metamodel nsURI="http://www.eclipse.org/papyrus/MARTE/1"/>

+           <metamodel nsURI="http://CHESS"/>

+           <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"/>

+           <metamodel nsURI="http://www.polarsys.org/chess/SAN"/>

+	    </library>

+  	</unit>

+</extension>

+

+

+</plugin>

diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/Activator.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/Activator.java
new file mode 100644
index 0000000..c773edd
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/Activator.java
@@ -0,0 +1,69 @@
+/*********************************************************************

+* Copyright (c) 2019 Intecs Solutions SpA

+*

+* This program and the accompanying materials are made

+* available under the terms of the Eclipse Public License 2.0

+* which is available at https://www.eclipse.org/legal/epl-2.0/

+*

+* SPDX-License-Identifier: EPL-2.0

+*

+* Contributors: 

+*   Intecs Solutions - Initial API and implementation

+*   

+**********************************************************************/

+

+package org.polarsys.chess.mobius;

+

+import org.eclipse.ui.plugin.AbstractUIPlugin;

+import org.osgi.framework.BundleContext;

+

+/**

+ * The activator class controls the plug-in life cycle.

+ */

+public class Activator extends AbstractUIPlugin {

+

+	/**

+	 * The plug-in ID.

+	 */

+	public static final String PLUGIN_ID = "org.polarsys.chess.mobius";

+

+	/**

+	 * The shared instance.

+	 */

+	private static Activator plugin;

+

+	/**

+	 * The constructor.

+	 */

+	public Activator() {

+	}

+

+	/**

+	 * {@inheritDoc}

+	 *

+	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)

+	 */

+	public void start(BundleContext context) throws Exception {

+		super.start(context);

+		plugin = this;

+	}

+

+	/**

+	 * {@inheritDoc}

+	 *

+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)

+	 */

+	public void stop(BundleContext context) throws Exception {

+		plugin = null;

+		super.stop(context);

+	}

+

+	/**

+	 * Returns the shared instance.

+	 *

+	 * @return the shared instance

+	 */

+	public static Activator getDefault() {

+		return plugin;

+	}

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/dialogs/AnalysisContextSelectionDialog.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/dialogs/AnalysisContextSelectionDialog.java
new file mode 100644
index 0000000..121ac5d
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/dialogs/AnalysisContextSelectionDialog.java
@@ -0,0 +1,91 @@
+/*********************************************************************

+* Copyright (c) 2019 Intecs Solutions SpA

+*

+* This program and the accompanying materials are made

+* available under the terms of the Eclipse Public License 2.0

+* which is available at https://www.eclipse.org/legal/epl-2.0/

+*

+* SPDX-License-Identifier: EPL-2.0

+*

+* Contributors: 

+*   Intecs Solutions - Initial API and implementation

+*   

+**********************************************************************/

+

+package org.polarsys.chess.mobius.dialogs;

+

+import java.util.List;

+

+import org.eclipse.jface.dialogs.Dialog;

+import org.eclipse.swt.SWT;

+import org.eclipse.swt.layout.GridData;

+import org.eclipse.swt.layout.GridLayout;

+import org.eclipse.swt.widgets.Combo;

+import org.eclipse.swt.widgets.Composite;

+import org.eclipse.swt.widgets.Control;

+import org.eclipse.swt.widgets.Label;

+import org.eclipse.swt.widgets.Shell;

+import org.eclipse.uml2.uml.Class;

+

+public class AnalysisContextSelectionDialog extends Dialog {

+

+	private Combo chooseContextField;

+	private String context;

+	private String title;

+	private List<org.eclipse.uml2.uml.Class> contextList;

+	

+	public AnalysisContextSelectionDialog(Shell parentShell, List<Class> selection, String title) {

+		super(parentShell);

+		contextList = selection;

+		this.title = title;

+	}

+

+	@Override

+	protected Control createDialogArea(Composite parent) {

+		GridLayout layout = new GridLayout(1, false);

+

+		layout.horizontalSpacing = 4;

+		layout.verticalSpacing = 4;

+		layout.marginBottom = 5;

+		layout.marginTop = 5;

+	

+		parent.setLayout(layout);

+		new Label(parent, SWT.NONE).setText("Contexts found in model: ");

+		

+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);

+		chooseContextField = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);

+		for(org.eclipse.uml2.uml.Class scenario : contextList){

+			chooseContextField.add(scenario.getQualifiedName());

+		}

+		chooseContextField.setLayoutData(gridData);

+		

+		new Label(parent, SWT.NONE).setText("");

+		

+		return parent;	

+	}

+	

+	@Override

+	protected void configureShell(Shell shell) {

+		super.configureShell(shell);

+		shell.setText(title);

+	}

+

+	@Override

+	protected boolean isResizable() {

+		return true;

+	}

+	

+	@Override

+	protected void okPressed() {

+		setContext(chooseContextField.getText());

+		super.okPressed();

+	}

+	

+	public void setContext(String qname) {

+		this.context = qname;

+	}

+

+	public String getContext() {

+		return context;

+	}

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/handlers/CHESS2SANRunner.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/handlers/CHESS2SANRunner.java
new file mode 100644
index 0000000..5026f0e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/handlers/CHESS2SANRunner.java
@@ -0,0 +1,164 @@
+/*******************************************************************************

+ *                  CHESS Mobius plugin

+ *

+ *               Copyright (C) 2019

+ *            			Intecs

+ *

+ *

+ *  All rights reserved. This program and the accompanying materials

+ *  are made available under the terms of the Eclipse Public License

+ *  v1.0 which accompanies this distribution, and is available at

+ *  http://www.eclipse.org/legal/epl-v10.html

+ *******************************************************************************/

+package org.polarsys.chess.mobius.handlers;

+

+import static org.polarsys.chess.core.util.CHESSProjectSupport.printlnToCHESSConsole;

+

+import java.io.File;

+import java.lang.reflect.InvocationTargetException;

+import java.util.List;

+

+import javax.swing.JFrame;

+import javax.swing.JOptionPane;

+

+import org.eclipse.core.resources.IContainer;

+import org.eclipse.core.runtime.IProgressMonitor;

+import org.eclipse.emf.common.util.URI;

+import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.emf.ecore.resource.ResourceSet;

+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;

+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;

+import org.eclipse.jface.operation.IRunnableWithProgress;

+

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+import org.polarsys.chess.mobius.transformations.QVToTransformation;

+

+public class CHESS2SANRunner implements IRunnableWithProgress{

+

+	protected static final String SAN_MM_EXTENSION = "sanmodel";

+	

+	protected IContainer targetFolder;

+	

+	protected URI chessModelUri;

+	protected Resource chessResource;

+	private Resource sanResource;

+	protected String rootComponentQualifiedName = "";

+	protected DiagramEditPart diagramEditPart;

+	protected String analysisContextQualifiedName ="";

+	

+	public IContainer getTargetFolder() {

+		return targetFolder;

+	}

+

+	public void setTargetFolder(IContainer targetFolder) {

+		this.targetFolder = targetFolder;

+	}

+

+	public URI getModelURI() {

+		return chessModelUri;

+	}

+

+	public void setModelURI(URI modelURI) {

+		this.chessModelUri = modelURI;

+	}

+	

+	public void setAnalysisContextQualifiedName(String analysisContextQN){

+		this.analysisContextQualifiedName = analysisContextQN;

+	}

+	

+	public void setRootComponent(String rootComponentQualifiedName) {

+		this.rootComponentQualifiedName = rootComponentQualifiedName;

+	}

+

+	public Resource getChessResource() {

+		return chessResource;

+	}

+

+	public void setChessResource(Resource chessResource) {

+		this.chessResource = chessResource;

+	}

+

+	public void setDiagramEditPart(DiagramEditPart diagramEditPart) {

+		this.diagramEditPart = diagramEditPart;

+	}

+

+	@Override

+	public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {

+		

+			

+		//monitor.beginTask("Running CHESS to SAN transformation...",numSubTasks );

+		if (monitor.isCanceled()) {

+			throw new InterruptedException();

+		}

+

+		runInput2SANTransformation(monitor);

+		

+		if (monitor.isCanceled()) {

+			throw new InterruptedException();

+		}

+	

+		printlnToCHESSConsole("*** CHESS to SAN transformation was performed successfully ***");

+		//monitor.done();

+	}

+

+	

+	protected void runInput2SANTransformation(IProgressMonitor monitor) {

+		SANModelPackage.eINSTANCE.getClass();

+		ResourceSet resourceSet = new ResourceSetImpl();

+		URI flaMMuri = createFlaModelUri().appendFileExtension(SAN_MM_EXTENSION);

+		new File(flaMMuri.path()).delete();

+		setSANResource(resourceSet.createResource(flaMMuri));

+		

+		QVToTransformation transformation = new QVToTransformation();

+		transformation.performCHESS2SANTransformation(chessResource, getSANResource(), monitor, rootComponentQualifiedName, analysisContextQualifiedName);

+//		if (flaResource.getContents() == null || flaResource.getContents().isEmpty()) {

+//			throw new TransformationException();

+//		}

+	}

+	

+	

+	protected URI createFlaModelUri() {

+		String modelName = getModelName();

+		String flaPath = targetFolder.getFullPath().toString() + "/" + modelName;// + "." + rootComponentQualifiedName.replaceAll("::", ".") + "_result";

+		return URI.createPlatformResourceURI(flaPath, false);

+	}

+

+	protected String getOutputXmlPath() {

+		String modelName = getModelName();

+		return targetFolder.getLocation().append(modelName + "_result.xml").toString();

+	}

+	

+	protected String getModelName() {

+		return chessModelUri.lastSegment().substring(0, chessModelUri.lastSegment().lastIndexOf('.'));

+	}

+	

+	protected void showErrorMessages(String title, List<String> messages) {

+		StringBuilder sb = new StringBuilder();

+		for (String message : messages) {

+			sb.append(message + "\n");

+		}

+		showErrorMessage(title, sb.toString());

+	}

+	

+	protected void showErrorMessage(String title, String message) {

+		JOptionPane.showMessageDialog(

+				new JFrame(),

+				message,

+				title, JOptionPane.ERROR_MESSAGE);

+

+	}

+

+	public Resource getSANResource() {

+		return sanResource;

+	}

+

+	public void setSANResource(Resource sanResource) {

+		this.sanResource = sanResource;

+	}

+	

+}

+

+	

+

+

+

diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/handlers/TransformationHandler.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/handlers/TransformationHandler.java
new file mode 100644
index 0000000..678849c
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/handlers/TransformationHandler.java
@@ -0,0 +1,167 @@
+/*********************************************************************
+* Copyright (c) 2019 Intecs Solutions SpA
+*
+* This program and the accompanying materials are made
+* available under the terms of the Eclipse Public License 2.0
+* which is available at https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors: 
+*   Intecs Solutions - Initial API and implementation
+*   
+**********************************************************************/
+
+package org.polarsys.chess.mobius.handlers;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.papyrus.editor.PapyrusMultiDiagramEditor;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Stereotype;
+import org.polarsys.chess.chessmlprofile.Core.CHGaResourcePlatform;
+import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis;
+import org.polarsys.chess.core.util.uml.ResourceUtils;
+import org.polarsys.chess.core.views.DiagramStatus;
+import org.polarsys.chess.mobius.dialogs.AnalysisContextSelectionDialog;
+import org.polarsys.chess.mobius.preferences.MobiusPreferencePage;
+import org.polarsys.chess.mobius.transformations.Transformations;
+import org.polarsys.chess.service.gui.utils.CHESSEditorUtils;
+import org.eclipse.swt.widgets.Shell;
+import org.polarsys.chess.mobius.preferences.Activator;
+
+public class TransformationHandler extends AbstractHandler {
+	
+	private static final String ANALYSISCONTEXTQN = "CHESS::Dependability::StateBased::StateBasedAnalysis::SANAnalysis";
+	public static String MOBIUS_PROJECT_LOCATION =  "";
+	private Class contextClass;
+	private List<Classifier> atomicBlocks;
+	private List<Classifier> composedBlocks;
+	private List<Interaction> attackScenarios;
+	private String projectName;
+	private Map<Classifier, List<Message>> vulnerableComponents;
+	
+		
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		final IEditorPart editor = HandlerUtil.getActiveEditor(event);
+		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
+		final Shell activeShell = window.getShell();
+
+		//first check that the Mobius project location is a valid one
+		MOBIUS_PROJECT_LOCATION = Activator.getDefault().getPreferenceStore().getString(MobiusPreferencePage.MOBIUS_PROJECT_LOCATION_FIELD);
+		File f = new File(MOBIUS_PROJECT_LOCATION);
+		if (!f.exists() || !f.isDirectory()) {
+			MessageDialog.openError(activeShell, "CHESS", "Mobius Project Location is not valid. Please check preference page");
+			return null;
+		}
+		
+		SANAnalysis csa = null;
+		String contextQN = null;
+		try {
+			PapyrusMultiDiagramEditor editorPapyrus = CHESSEditorUtils.getCHESSEditor();
+			Resource res = ResourceUtils.getUMLResource(editorPapyrus.getServicesRegistry());
+			Model model = ResourceUtils.getModel(res);
+			
+			//open dialog window to select analysis context
+			//first get all the classes stereotyped as CyberSecurityAnalysis
+			final List<Class> selection = new ArrayList<Class>();
+			EList<Element> elemList = model.allOwnedElements();
+			for (Element elem : elemList) {
+				//we're looking for a class stereotyped <<CyberSecurityAnalysis>>
+				if(elem instanceof Class && elem.getAppliedStereotype(ANALYSISCONTEXTQN) != null){
+					selection.add((Class) elem);
+				}
+			}
+			if(selection.size() == 0){
+				MessageDialog.openError(activeShell, "CHESS", "no suitable analysis contexts in the model");
+				return null;
+			}
+			//then open the dialog
+			
+			AnalysisContextSelectionDialog dialog = new AnalysisContextSelectionDialog(activeShell, selection, "Select Security Analysis Context");
+			if (dialog.open() == Window.OK) {
+				contextQN = dialog.getContext();
+				if(contextQN == null || contextQN.isEmpty()){
+					return null;
+				}
+				for (Element elem : model.allOwnedElements()){
+					if(elem.getAppliedStereotype(ANALYSISCONTEXTQN) != null &&
+							((NamedElement) elem).getQualifiedName().equals(contextQN)){
+						contextClass = (Class) elem;
+					}
+				}
+			}else{
+				return null;
+			}
+			
+			//get "platform" from the selected analysis ctx
+			Stereotype stereo = contextClass.getAppliedStereotype(ANALYSISCONTEXTQN);
+			csa = (SANAnalysis) contextClass.getStereotypeApplication(stereo);
+						
+			if(csa.getPlatform().size() > 0){
+				if(csa.getPlatform().get(0) instanceof  CHGaResourcePlatform){
+					CHGaResourcePlatform platform = (CHGaResourcePlatform)csa.getPlatform().get(0);
+					projectName = platform.getBase_InstanceSpecification().getClassifiers().get(0).getName();
+//					mobiusComponents = TransformationUtil.getMobiusComponenents(platform);
+//					//get Atomic blocks
+//					atomicBlocks = mobiusComponents.getAtomicBlocks();
+//					//get Composed blocks
+//					composedBlocks = mobiusComponents.getComposedBlocks();
+//					//get Attacks
+//					attackScenarios = TransformationUtil.getModelAttackScenarios(model);
+//					//get Vulnerable components
+//					vulnerableComponents = TransformationUtil.getVulnerableComponents(model);
+					
+				}
+			}else{
+				MessageDialog.openError(activeShell, "CHESS", "no platform is defined in the selected analysis context");
+				return null;
+			}
+	
+		} catch (ServiceException e) {
+			e.printStackTrace();
+			return null;
+		}
+			
+		//Resource sanRes = generateSANmodel(editor, csa, contextQN);
+		final PapyrusMultiDiagramEditor papyrusEditor = org.polarsys.chess.service.gui.utils.CHESSEditorUtils.getCHESSEditor();
+		final DiagramStatus ds = CHESSEditorUtils.getDiagramStatus(papyrusEditor);
+	
+		Resource resource = null;
+		try {
+			resource = ResourceUtils.getUMLResource(papyrusEditor.getServicesRegistry());
+		} catch (ServiceException e) {
+			e.printStackTrace();
+			MessageDialog.openError(activeShell, "CHESS", "Problems with the Papyrus registry editor");
+			return null;
+		}
+		
+		List<String> args = new ArrayList<String>();
+		Transformations.MobiusTransformationJob(activeShell, editor, args, projectName, atomicBlocks, 
+				composedBlocks, attackScenarios, vulnerableComponents, csa, null, contextQN, ds, resource);
+
+		return null;
+	}
+	
+}
diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/AtomicComponentTemplate_sanmodel.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/AtomicComponentTemplate_sanmodel.java
new file mode 100644
index 0000000..a3a1557
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/AtomicComponentTemplate_sanmodel.java
@@ -0,0 +1,406 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2012 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.polarsys.chess.mobius.templates;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Entry point of the 'AtomicComponentTemplate_sanmodel' generation module.
+ *
+ * @generated
+ */
+public class AtomicComponentTemplate_sanmodel extends AbstractAcceleoGenerator {
+    /**
+     * The name of the module.
+     *
+     * @generated
+     */
+    public static final String MODULE_FILE_NAME = "/org/polarsys/chess/mobius/templates/atomicComponentTemplate_sanmodel";
+    
+    /**
+     * The name of the templates that are to be generated.
+     *
+     * @generated
+     */
+    public static final String[] TEMPLATE_NAMES = { "atomicComponentTemplate_sanmodel" };
+    
+    /**
+     * The list of properties files from the launch parameters (Launch configuration).
+     *
+     * @generated
+     */
+    private List<String> propertiesFiles = new ArrayList<String>();
+
+    /**
+     * Allows the public constructor to be used. Note that a generator created
+     * this way cannot be used to launch generations before one of
+     * {@link #initialize(EObject, File, List)} or
+     * {@link #initialize(URI, File, List)} is called.
+     * <p>
+     * The main reason for this constructor is to allow clients of this
+     * generation to call it from another Java file, as it allows for the
+     * retrieval of {@link #getProperties()} and
+     * {@link #getGenerationListeners()}.
+     * </p>
+     *
+     * @generated
+     */
+    public AtomicComponentTemplate_sanmodel() {
+        // Empty implementation
+    }
+
+    /**
+     * This allows clients to instantiates a generator with all required information.
+     * 
+     * @param modelURI
+     *            URI where the model on which this generator will be used is located.
+     * @param targetFolder
+     *            This will be used as the output folder for this generation : it will be the base path
+     *            against which all file block URLs will be resolved.
+     * @param arguments
+     *            If the template which will be called requires more than one argument taken from the model,
+     *            pass them here.
+     * @throws IOException
+     *             This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+     *             the model cannot be loaded.
+     * @generated
+     */
+    public AtomicComponentTemplate_sanmodel(URI modelURI, File targetFolder,
+            List<? extends Object> arguments) throws IOException {
+        initialize(modelURI, targetFolder, arguments);
+    }
+
+    /**
+     * This allows clients to instantiates a generator with all required information.
+     * 
+     * @param model
+     *            We'll iterate over the content of this element to find Objects matching the first parameter
+     *            of the template we need to call.
+     * @param targetFolder
+     *            This will be used as the output folder for this generation : it will be the base path
+     *            against which all file block URLs will be resolved.
+     * @param arguments
+     *            If the template which will be called requires more than one argument taken from the model,
+     *            pass them here.
+     * @throws IOException
+     *             This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+     * @generated
+     */
+    public AtomicComponentTemplate_sanmodel(EObject model, File targetFolder,
+            List<? extends Object> arguments) throws IOException {
+        initialize(model, targetFolder, arguments);
+    }
+    
+    /**
+     * This can be used to launch the generation from a standalone application.
+     * 
+     * @param args
+     *            Arguments of the generation.
+     * @generated
+     */
+    public static void main(String[] args) {
+        try {
+            if (args.length < 2) {
+                System.out.println("Arguments not valid : {model, folder}.");
+            } else {
+                URI modelURI = URI.createFileURI(args[0]);
+                File folder = new File(args[1]);
+                
+                List<String> arguments = new ArrayList<String>();
+                
+                /*
+                 * If you want to change the content of this method, do NOT forget to change the "@generated"
+                 * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+                 * of the Acceleo module with the main template that has caused the creation of this class will
+                 * revert your modifications.
+                 */
+
+                /*
+                 * Add in this list all the arguments used by the starting point of the generation
+                 * If your main template is called on an element of your model and a String, you can
+                 * add in "arguments" this "String" attribute.
+                 */
+                
+                AtomicComponentTemplate_sanmodel generator = new AtomicComponentTemplate_sanmodel(modelURI, folder, arguments);
+                
+                /*
+                 * Add the properties from the launch arguments.
+                 * If you want to programmatically add new properties, add them in "propertiesFiles"
+                 * You can add the absolute path of a properties files, or even a project relative path.
+                 * If you want to add another "protocol" for your properties files, please override 
+                 * "getPropertiesLoaderService(AcceleoService)" in order to return a new property loader.
+                 * The behavior of the properties loader service is explained in the Acceleo documentation
+                 * (Help -> Help Contents).
+                 */
+                 
+                for (int i = 2; i < args.length; i++) {
+                    generator.addPropertiesFile(args[i]);
+                }
+                
+                generator.doGenerate(new BasicMonitor());
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Launches the generation described by this instance.
+     * 
+     * @param monitor
+     *            This will be used to display progress information to the user.
+     * @throws IOException
+     *             This will be thrown if any of the output files cannot be saved to disk.
+     * @generated
+     */
+    @Override
+    public void doGenerate(Monitor monitor) throws IOException {
+        /*
+         * TODO if you wish to change the generation as a whole, override this. The default behavior should
+         * be sufficient in most cases. If you want to change the content of this method, do NOT forget to
+         * change the "@generated" tag in the Javadoc of this method to "@generated NOT". Without this new tag,
+         * any compilation of the Acceleo module with the main template that has caused the creation of this
+         * class will revert your modifications. If you encounter a problem with an unresolved proxy during the
+         * generation, you can remove the comments in the following instructions to check for problems. Please
+         * note that those instructions may have a significant impact on the performances.
+         */
+
+        //org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(model);
+
+        /*
+         * If you want to check for potential errors in your models before the launch of the generation, you
+         * use the code below.
+         */
+
+        //if (model != null && model.eResource() != null) {
+        //    List<org.eclipse.emf.ecore.resource.Resource.Diagnostic> errors = model.eResource().getErrors();
+        //    for (org.eclipse.emf.ecore.resource.Resource.Diagnostic diagnostic : errors) {
+        //        System.err.println(diagnostic.toString());
+        //    }
+        //}
+
+        super.doGenerate(monitor);
+    }
+    
+    /**
+     * If this generator needs to listen to text generation events, listeners can be returned from here.
+     * 
+     * @return List of listeners that are to be notified when text is generated through this launch.
+     * @generated
+     */
+    @Override
+    public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+        List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+        /*
+         * TODO if you need to listen to generation event, add listeners to the list here. If you want to change
+         * the content of this method, do NOT forget to change the "@generated" tag in the Javadoc of this method
+         * to "@generated NOT". Without this new tag, any compilation of the Acceleo module with the main template
+         * that has caused the creation of this class will revert your modifications.
+         */
+        return listeners;
+    }
+    
+    /**
+     * If you need to change the way files are generated, this is your entry point.
+     * <p>
+     * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates
+     * files on the fly. If you only need to preview the results, return a new
+     * {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of
+     * the running Eclipse and can be used standalone.
+     * </p>
+     * <p>
+     * If you need the file generation to be aware of the workspace (A typical example is when you wanna
+     * override files that are under clear case or any other VCS that could forbid the overriding), then
+     * return a new {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}.
+     * <b>Note</b>, however, that this <b>cannot</b> be used standalone.
+     * </p>
+     * <p>
+     * All three of these default strategies support merging through JMerge.
+     * </p>
+     * 
+     * @return The generation strategy that is to be used for generations launched through this launcher.
+     * @generated
+     */
+    @Override
+    public IAcceleoGenerationStrategy getGenerationStrategy() {
+        return super.getGenerationStrategy();
+    }
+    
+    /**
+     * This will be called in order to find and load the module that will be launched through this launcher.
+     * We expect this name not to contain file extension, and the module to be located beside the launcher.
+     * 
+     * @return The name of the module that is to be launched.
+     * @generated
+     */
+    @Override
+    public String getModuleName() {
+        return MODULE_FILE_NAME;
+    }
+    
+    /**
+     * If the module(s) called by this launcher require properties files, return their qualified path from
+     * here.Take note that the first added properties files will take precedence over subsequent ones if they
+     * contain conflicting keys.
+     * 
+     * @return The list of properties file we need to add to the generation context.
+     * @see java.util.ResourceBundle#getBundle(String)
+     * @generated
+     */
+    @Override
+    public List<String> getProperties() {
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+
+        /*
+         * TODO if your generation module requires access to properties files, add their qualified path to the list here.
+         * 
+         * Properties files can be located in an Eclipse plug-in or in the file system (all Acceleo projects are Eclipse
+         * plug-in). In order to use properties files located in an Eclipse plugin, you need to add the path of the properties
+         * files to the "propertiesFiles" list:
+         * 
+         * final String prefix = "platform:/plugin/";
+         * final String pluginName = "org.eclipse.acceleo.module.sample";
+         * final String packagePath = "/org/eclipse/acceleo/module/sample/properties/";
+         * final String fileName = "default.properties";
+         * propertiesFiles.add(prefix + pluginName + packagePath + fileName);
+         * 
+         * With this mechanism, you can load properties files from your plugin or from another plugin.
+         * 
+         * You may want to load properties files from the file system, for that you need to add the absolute path of the file:
+         * 
+         * propertiesFiles.add("C:\Users\MyName\MyFile.properties");
+         * 
+         * If you want to let your users add properties files located in the same folder as the model:
+         *
+         * if (EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != null) { 
+         *     propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model.eResource()));
+         * }
+         * 
+         * To learn more about Properties Files, have a look at the Acceleo documentation (Help -> Help Contents).
+         */
+        return propertiesFiles;
+    }
+    
+    /**
+     * Adds a properties file in the list of properties files.
+     * 
+     * @param propertiesFile
+     *            The properties file to add.
+     * @generated
+     * @since 3.1
+     */
+    @Override
+    public void addPropertiesFile(String propertiesFile) {
+        this.propertiesFiles.add(propertiesFile);
+    }
+    
+    /**
+     * This will be used to get the list of templates that are to be launched by this launcher.
+     * 
+     * @return The list of templates to call on the module {@link #getModuleName()}.
+     * @generated
+     */
+    @Override
+    public String[] getTemplateNames() {
+        return TEMPLATE_NAMES;
+    }
+    
+    /**
+     * This can be used to update the resource set's package registry with all needed EPackages.
+     * 
+     * @param resourceSet
+     *            The resource set which registry has to be updated.
+     * @generated
+     */
+    @Override
+    public void registerPackages(ResourceSet resourceSet) {
+        super.registerPackages(resourceSet);
+        
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+        
+        /*
+         * If you need additional package registrations, you can register them here. The following line
+         * (in comment) is an example of the package registration for UML.
+         * 
+         * You can use the method  "isInWorkspace(Class c)" to check if the package that you are about to
+         * register is in the workspace.
+         * 
+         * To register a package properly, please follow the following conventions:
+         *
+         * If the package is located in another plug-in, already installed in Eclipse. The following content should
+         * have been generated at the beginning of this method. Do not register the package using this mechanism if
+         * the metamodel is located in the workspace.
+         *  
+         * if (!isInWorkspace(UMLPackage.class)) {
+         *     // The normal package registration if your metamodel is in a plugin.
+         *     resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+         * }
+         * 
+         * If the package is located in another project in your workspace, the plugin containing the package has not
+         * been register by EMF and Acceleo should register it automatically. If you want to use the generator in
+         * stand alone, the regular registration (seen a couple lines before) is needed.
+         * 
+         * To learn more about Package Registration, have a look at the Acceleo documentation (Help -> Help Contents).
+         */
+    }
+
+    /**
+     * This can be used to update the resource set's resource factory registry with all needed factories.
+     * 
+     * @param resourceSet
+     *            The resource set which registry has to be updated.
+     * @generated
+     */
+    @Override
+    public void registerResourceFactories(ResourceSet resourceSet) {
+        super.registerResourceFactories(resourceSet);
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+        
+        /*
+         * TODO If you need additional resource factories registrations, you can register them here. the following line
+         * (in comment) is an example of the resource factory registration for UML.
+         *
+         * If you want to use the generator in stand alone, the resource factory registration will be required.
+         *  
+         * To learn more about the registration of Resource Factories, have a look at the Acceleo documentation (Help -> Help Contents). 
+         */ 
+        
+        // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+    }
+    
+}
diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/ComposedComponentTemplate_sanmodel.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/ComposedComponentTemplate_sanmodel.java
new file mode 100644
index 0000000..fc804c7
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/ComposedComponentTemplate_sanmodel.java
@@ -0,0 +1,406 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2012 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.polarsys.chess.mobius.templates;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Entry point of the 'ComposedComponentTemplate_sanmodel' generation module.
+ *
+ * @generated
+ */
+public class ComposedComponentTemplate_sanmodel extends AbstractAcceleoGenerator {
+    /**
+     * The name of the module.
+     *
+     * @generated
+     */
+    public static final String MODULE_FILE_NAME = "/org/polarsys/chess/mobius/templates/composedComponentTemplate_sanmodel";
+    
+    /**
+     * The name of the templates that are to be generated.
+     *
+     * @generated
+     */
+    public static final String[] TEMPLATE_NAMES = { "composedComponentTemplate_sanmodel" };
+    
+    /**
+     * The list of properties files from the launch parameters (Launch configuration).
+     *
+     * @generated
+     */
+    private List<String> propertiesFiles = new ArrayList<String>();
+
+    /**
+     * Allows the public constructor to be used. Note that a generator created
+     * this way cannot be used to launch generations before one of
+     * {@link #initialize(EObject, File, List)} or
+     * {@link #initialize(URI, File, List)} is called.
+     * <p>
+     * The main reason for this constructor is to allow clients of this
+     * generation to call it from another Java file, as it allows for the
+     * retrieval of {@link #getProperties()} and
+     * {@link #getGenerationListeners()}.
+     * </p>
+     *
+     * @generated
+     */
+    public ComposedComponentTemplate_sanmodel() {
+        // Empty implementation
+    }
+
+    /**
+     * This allows clients to instantiates a generator with all required information.
+     * 
+     * @param modelURI
+     *            URI where the model on which this generator will be used is located.
+     * @param targetFolder
+     *            This will be used as the output folder for this generation : it will be the base path
+     *            against which all file block URLs will be resolved.
+     * @param arguments
+     *            If the template which will be called requires more than one argument taken from the model,
+     *            pass them here.
+     * @throws IOException
+     *             This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+     *             the model cannot be loaded.
+     * @generated
+     */
+    public ComposedComponentTemplate_sanmodel(URI modelURI, File targetFolder,
+            List<? extends Object> arguments) throws IOException {
+        initialize(modelURI, targetFolder, arguments);
+    }
+
+    /**
+     * This allows clients to instantiates a generator with all required information.
+     * 
+     * @param model
+     *            We'll iterate over the content of this element to find Objects matching the first parameter
+     *            of the template we need to call.
+     * @param targetFolder
+     *            This will be used as the output folder for this generation : it will be the base path
+     *            against which all file block URLs will be resolved.
+     * @param arguments
+     *            If the template which will be called requires more than one argument taken from the model,
+     *            pass them here.
+     * @throws IOException
+     *             This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+     * @generated
+     */
+    public ComposedComponentTemplate_sanmodel(EObject model, File targetFolder,
+            List<? extends Object> arguments) throws IOException {
+        initialize(model, targetFolder, arguments);
+    }
+    
+    /**
+     * This can be used to launch the generation from a standalone application.
+     * 
+     * @param args
+     *            Arguments of the generation.
+     * @generated
+     */
+    public static void main(String[] args) {
+        try {
+            if (args.length < 2) {
+                System.out.println("Arguments not valid : {model, folder}.");
+            } else {
+                URI modelURI = URI.createFileURI(args[0]);
+                File folder = new File(args[1]);
+                
+                List<String> arguments = new ArrayList<String>();
+                
+                /*
+                 * If you want to change the content of this method, do NOT forget to change the "@generated"
+                 * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+                 * of the Acceleo module with the main template that has caused the creation of this class will
+                 * revert your modifications.
+                 */
+
+                /*
+                 * Add in this list all the arguments used by the starting point of the generation
+                 * If your main template is called on an element of your model and a String, you can
+                 * add in "arguments" this "String" attribute.
+                 */
+                
+                ComposedComponentTemplate_sanmodel generator = new ComposedComponentTemplate_sanmodel(modelURI, folder, arguments);
+                
+                /*
+                 * Add the properties from the launch arguments.
+                 * If you want to programmatically add new properties, add them in "propertiesFiles"
+                 * You can add the absolute path of a properties files, or even a project relative path.
+                 * If you want to add another "protocol" for your properties files, please override 
+                 * "getPropertiesLoaderService(AcceleoService)" in order to return a new property loader.
+                 * The behavior of the properties loader service is explained in the Acceleo documentation
+                 * (Help -> Help Contents).
+                 */
+                 
+                for (int i = 2; i < args.length; i++) {
+                    generator.addPropertiesFile(args[i]);
+                }
+                
+                generator.doGenerate(new BasicMonitor());
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Launches the generation described by this instance.
+     * 
+     * @param monitor
+     *            This will be used to display progress information to the user.
+     * @throws IOException
+     *             This will be thrown if any of the output files cannot be saved to disk.
+     * @generated
+     */
+    @Override
+    public void doGenerate(Monitor monitor) throws IOException {
+        /*
+         * TODO if you wish to change the generation as a whole, override this. The default behavior should
+         * be sufficient in most cases. If you want to change the content of this method, do NOT forget to
+         * change the "@generated" tag in the Javadoc of this method to "@generated NOT". Without this new tag,
+         * any compilation of the Acceleo module with the main template that has caused the creation of this
+         * class will revert your modifications. If you encounter a problem with an unresolved proxy during the
+         * generation, you can remove the comments in the following instructions to check for problems. Please
+         * note that those instructions may have a significant impact on the performances.
+         */
+
+        //org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(model);
+
+        /*
+         * If you want to check for potential errors in your models before the launch of the generation, you
+         * use the code below.
+         */
+
+        //if (model != null && model.eResource() != null) {
+        //    List<org.eclipse.emf.ecore.resource.Resource.Diagnostic> errors = model.eResource().getErrors();
+        //    for (org.eclipse.emf.ecore.resource.Resource.Diagnostic diagnostic : errors) {
+        //        System.err.println(diagnostic.toString());
+        //    }
+        //}
+
+        super.doGenerate(monitor);
+    }
+    
+    /**
+     * If this generator needs to listen to text generation events, listeners can be returned from here.
+     * 
+     * @return List of listeners that are to be notified when text is generated through this launch.
+     * @generated
+     */
+    @Override
+    public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+        List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+        /*
+         * TODO if you need to listen to generation event, add listeners to the list here. If you want to change
+         * the content of this method, do NOT forget to change the "@generated" tag in the Javadoc of this method
+         * to "@generated NOT". Without this new tag, any compilation of the Acceleo module with the main template
+         * that has caused the creation of this class will revert your modifications.
+         */
+        return listeners;
+    }
+    
+    /**
+     * If you need to change the way files are generated, this is your entry point.
+     * <p>
+     * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates
+     * files on the fly. If you only need to preview the results, return a new
+     * {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of
+     * the running Eclipse and can be used standalone.
+     * </p>
+     * <p>
+     * If you need the file generation to be aware of the workspace (A typical example is when you wanna
+     * override files that are under clear case or any other VCS that could forbid the overriding), then
+     * return a new {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}.
+     * <b>Note</b>, however, that this <b>cannot</b> be used standalone.
+     * </p>
+     * <p>
+     * All three of these default strategies support merging through JMerge.
+     * </p>
+     * 
+     * @return The generation strategy that is to be used for generations launched through this launcher.
+     * @generated
+     */
+    @Override
+    public IAcceleoGenerationStrategy getGenerationStrategy() {
+        return super.getGenerationStrategy();
+    }
+    
+    /**
+     * This will be called in order to find and load the module that will be launched through this launcher.
+     * We expect this name not to contain file extension, and the module to be located beside the launcher.
+     * 
+     * @return The name of the module that is to be launched.
+     * @generated
+     */
+    @Override
+    public String getModuleName() {
+        return MODULE_FILE_NAME;
+    }
+    
+    /**
+     * If the module(s) called by this launcher require properties files, return their qualified path from
+     * here.Take note that the first added properties files will take precedence over subsequent ones if they
+     * contain conflicting keys.
+     * 
+     * @return The list of properties file we need to add to the generation context.
+     * @see java.util.ResourceBundle#getBundle(String)
+     * @generated
+     */
+    @Override
+    public List<String> getProperties() {
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+
+        /*
+         * TODO if your generation module requires access to properties files, add their qualified path to the list here.
+         * 
+         * Properties files can be located in an Eclipse plug-in or in the file system (all Acceleo projects are Eclipse
+         * plug-in). In order to use properties files located in an Eclipse plugin, you need to add the path of the properties
+         * files to the "propertiesFiles" list:
+         * 
+         * final String prefix = "platform:/plugin/";
+         * final String pluginName = "org.eclipse.acceleo.module.sample";
+         * final String packagePath = "/org/eclipse/acceleo/module/sample/properties/";
+         * final String fileName = "default.properties";
+         * propertiesFiles.add(prefix + pluginName + packagePath + fileName);
+         * 
+         * With this mechanism, you can load properties files from your plugin or from another plugin.
+         * 
+         * You may want to load properties files from the file system, for that you need to add the absolute path of the file:
+         * 
+         * propertiesFiles.add("C:\Users\MyName\MyFile.properties");
+         * 
+         * If you want to let your users add properties files located in the same folder as the model:
+         *
+         * if (EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != null) { 
+         *     propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model.eResource()));
+         * }
+         * 
+         * To learn more about Properties Files, have a look at the Acceleo documentation (Help -> Help Contents).
+         */
+        return propertiesFiles;
+    }
+    
+    /**
+     * Adds a properties file in the list of properties files.
+     * 
+     * @param propertiesFile
+     *            The properties file to add.
+     * @generated
+     * @since 3.1
+     */
+    @Override
+    public void addPropertiesFile(String propertiesFile) {
+        this.propertiesFiles.add(propertiesFile);
+    }
+    
+    /**
+     * This will be used to get the list of templates that are to be launched by this launcher.
+     * 
+     * @return The list of templates to call on the module {@link #getModuleName()}.
+     * @generated
+     */
+    @Override
+    public String[] getTemplateNames() {
+        return TEMPLATE_NAMES;
+    }
+    
+    /**
+     * This can be used to update the resource set's package registry with all needed EPackages.
+     * 
+     * @param resourceSet
+     *            The resource set which registry has to be updated.
+     * @generated
+     */
+    @Override
+    public void registerPackages(ResourceSet resourceSet) {
+        super.registerPackages(resourceSet);
+        
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+        
+        /*
+         * If you need additional package registrations, you can register them here. The following line
+         * (in comment) is an example of the package registration for UML.
+         * 
+         * You can use the method  "isInWorkspace(Class c)" to check if the package that you are about to
+         * register is in the workspace.
+         * 
+         * To register a package properly, please follow the following conventions:
+         *
+         * If the package is located in another plug-in, already installed in Eclipse. The following content should
+         * have been generated at the beginning of this method. Do not register the package using this mechanism if
+         * the metamodel is located in the workspace.
+         *  
+         * if (!isInWorkspace(UMLPackage.class)) {
+         *     // The normal package registration if your metamodel is in a plugin.
+         *     resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+         * }
+         * 
+         * If the package is located in another project in your workspace, the plugin containing the package has not
+         * been register by EMF and Acceleo should register it automatically. If you want to use the generator in
+         * stand alone, the regular registration (seen a couple lines before) is needed.
+         * 
+         * To learn more about Package Registration, have a look at the Acceleo documentation (Help -> Help Contents).
+         */
+    }
+
+    /**
+     * This can be used to update the resource set's resource factory registry with all needed factories.
+     * 
+     * @param resourceSet
+     *            The resource set which registry has to be updated.
+     * @generated
+     */
+    @Override
+    public void registerResourceFactories(ResourceSet resourceSet) {
+        super.registerResourceFactories(resourceSet);
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+        
+        /*
+         * TODO If you need additional resource factories registrations, you can register them here. the following line
+         * (in comment) is an example of the resource factory registration for UML.
+         *
+         * If you want to use the generator in stand alone, the resource factory registration will be required.
+         *  
+         * To learn more about the registration of Resource Factories, have a look at the Acceleo documentation (Help -> Help Contents). 
+         */ 
+        
+        // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+    }
+    
+}
diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/ProjectFileTemplate_sanmodel.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/ProjectFileTemplate_sanmodel.java
new file mode 100644
index 0000000..5cc8e47
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/ProjectFileTemplate_sanmodel.java
@@ -0,0 +1,406 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2012 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.polarsys.chess.mobius.templates;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Entry point of the 'ProjectFileTemplate_sanmodel' generation module.
+ *
+ * @generated
+ */
+public class ProjectFileTemplate_sanmodel extends AbstractAcceleoGenerator {
+    /**
+     * The name of the module.
+     *
+     * @generated
+     */
+    public static final String MODULE_FILE_NAME = "/org/polarsys/chess/mobius/templates/projectFileTemplate_sanmodel";
+    
+    /**
+     * The name of the templates that are to be generated.
+     *
+     * @generated
+     */
+    public static final String[] TEMPLATE_NAMES = { "projectFileTemplate_sanmodel" };
+    
+    /**
+     * The list of properties files from the launch parameters (Launch configuration).
+     *
+     * @generated
+     */
+    private List<String> propertiesFiles = new ArrayList<String>();
+
+    /**
+     * Allows the public constructor to be used. Note that a generator created
+     * this way cannot be used to launch generations before one of
+     * {@link #initialize(EObject, File, List)} or
+     * {@link #initialize(URI, File, List)} is called.
+     * <p>
+     * The main reason for this constructor is to allow clients of this
+     * generation to call it from another Java file, as it allows for the
+     * retrieval of {@link #getProperties()} and
+     * {@link #getGenerationListeners()}.
+     * </p>
+     *
+     * @generated
+     */
+    public ProjectFileTemplate_sanmodel() {
+        // Empty implementation
+    }
+
+    /**
+     * This allows clients to instantiates a generator with all required information.
+     * 
+     * @param modelURI
+     *            URI where the model on which this generator will be used is located.
+     * @param targetFolder
+     *            This will be used as the output folder for this generation : it will be the base path
+     *            against which all file block URLs will be resolved.
+     * @param arguments
+     *            If the template which will be called requires more than one argument taken from the model,
+     *            pass them here.
+     * @throws IOException
+     *             This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+     *             the model cannot be loaded.
+     * @generated
+     */
+    public ProjectFileTemplate_sanmodel(URI modelURI, File targetFolder,
+            List<? extends Object> arguments) throws IOException {
+        initialize(modelURI, targetFolder, arguments);
+    }
+
+    /**
+     * This allows clients to instantiates a generator with all required information.
+     * 
+     * @param model
+     *            We'll iterate over the content of this element to find Objects matching the first parameter
+     *            of the template we need to call.
+     * @param targetFolder
+     *            This will be used as the output folder for this generation : it will be the base path
+     *            against which all file block URLs will be resolved.
+     * @param arguments
+     *            If the template which will be called requires more than one argument taken from the model,
+     *            pass them here.
+     * @throws IOException
+     *             This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+     * @generated
+     */
+    public ProjectFileTemplate_sanmodel(EObject model, File targetFolder,
+            List<? extends Object> arguments) throws IOException {
+        initialize(model, targetFolder, arguments);
+    }
+    
+    /**
+     * This can be used to launch the generation from a standalone application.
+     * 
+     * @param args
+     *            Arguments of the generation.
+     * @generated
+     */
+    public static void main(String[] args) {
+        try {
+            if (args.length < 2) {
+                System.out.println("Arguments not valid : {model, folder}.");
+            } else {
+                URI modelURI = URI.createFileURI(args[0]);
+                File folder = new File(args[1]);
+                
+                List<String> arguments = new ArrayList<String>();
+                
+                /*
+                 * If you want to change the content of this method, do NOT forget to change the "@generated"
+                 * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+                 * of the Acceleo module with the main template that has caused the creation of this class will
+                 * revert your modifications.
+                 */
+
+                /*
+                 * Add in this list all the arguments used by the starting point of the generation
+                 * If your main template is called on an element of your model and a String, you can
+                 * add in "arguments" this "String" attribute.
+                 */
+                
+                ProjectFileTemplate_sanmodel generator = new ProjectFileTemplate_sanmodel(modelURI, folder, arguments);
+                
+                /*
+                 * Add the properties from the launch arguments.
+                 * If you want to programmatically add new properties, add them in "propertiesFiles"
+                 * You can add the absolute path of a properties files, or even a project relative path.
+                 * If you want to add another "protocol" for your properties files, please override 
+                 * "getPropertiesLoaderService(AcceleoService)" in order to return a new property loader.
+                 * The behavior of the properties loader service is explained in the Acceleo documentation
+                 * (Help -> Help Contents).
+                 */
+                 
+                for (int i = 2; i < args.length; i++) {
+                    generator.addPropertiesFile(args[i]);
+                }
+                
+                generator.doGenerate(new BasicMonitor());
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Launches the generation described by this instance.
+     * 
+     * @param monitor
+     *            This will be used to display progress information to the user.
+     * @throws IOException
+     *             This will be thrown if any of the output files cannot be saved to disk.
+     * @generated
+     */
+    @Override
+    public void doGenerate(Monitor monitor) throws IOException {
+        /*
+         * TODO if you wish to change the generation as a whole, override this. The default behavior should
+         * be sufficient in most cases. If you want to change the content of this method, do NOT forget to
+         * change the "@generated" tag in the Javadoc of this method to "@generated NOT". Without this new tag,
+         * any compilation of the Acceleo module with the main template that has caused the creation of this
+         * class will revert your modifications. If you encounter a problem with an unresolved proxy during the
+         * generation, you can remove the comments in the following instructions to check for problems. Please
+         * note that those instructions may have a significant impact on the performances.
+         */
+
+        //org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(model);
+
+        /*
+         * If you want to check for potential errors in your models before the launch of the generation, you
+         * use the code below.
+         */
+
+        //if (model != null && model.eResource() != null) {
+        //    List<org.eclipse.emf.ecore.resource.Resource.Diagnostic> errors = model.eResource().getErrors();
+        //    for (org.eclipse.emf.ecore.resource.Resource.Diagnostic diagnostic : errors) {
+        //        System.err.println(diagnostic.toString());
+        //    }
+        //}
+
+        super.doGenerate(monitor);
+    }
+    
+    /**
+     * If this generator needs to listen to text generation events, listeners can be returned from here.
+     * 
+     * @return List of listeners that are to be notified when text is generated through this launch.
+     * @generated
+     */
+    @Override
+    public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+        List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+        /*
+         * TODO if you need to listen to generation event, add listeners to the list here. If you want to change
+         * the content of this method, do NOT forget to change the "@generated" tag in the Javadoc of this method
+         * to "@generated NOT". Without this new tag, any compilation of the Acceleo module with the main template
+         * that has caused the creation of this class will revert your modifications.
+         */
+        return listeners;
+    }
+    
+    /**
+     * If you need to change the way files are generated, this is your entry point.
+     * <p>
+     * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates
+     * files on the fly. If you only need to preview the results, return a new
+     * {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of
+     * the running Eclipse and can be used standalone.
+     * </p>
+     * <p>
+     * If you need the file generation to be aware of the workspace (A typical example is when you wanna
+     * override files that are under clear case or any other VCS that could forbid the overriding), then
+     * return a new {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}.
+     * <b>Note</b>, however, that this <b>cannot</b> be used standalone.
+     * </p>
+     * <p>
+     * All three of these default strategies support merging through JMerge.
+     * </p>
+     * 
+     * @return The generation strategy that is to be used for generations launched through this launcher.
+     * @generated
+     */
+    @Override
+    public IAcceleoGenerationStrategy getGenerationStrategy() {
+        return super.getGenerationStrategy();
+    }
+    
+    /**
+     * This will be called in order to find and load the module that will be launched through this launcher.
+     * We expect this name not to contain file extension, and the module to be located beside the launcher.
+     * 
+     * @return The name of the module that is to be launched.
+     * @generated
+     */
+    @Override
+    public String getModuleName() {
+        return MODULE_FILE_NAME;
+    }
+    
+    /**
+     * If the module(s) called by this launcher require properties files, return their qualified path from
+     * here.Take note that the first added properties files will take precedence over subsequent ones if they
+     * contain conflicting keys.
+     * 
+     * @return The list of properties file we need to add to the generation context.
+     * @see java.util.ResourceBundle#getBundle(String)
+     * @generated
+     */
+    @Override
+    public List<String> getProperties() {
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+
+        /*
+         * TODO if your generation module requires access to properties files, add their qualified path to the list here.
+         * 
+         * Properties files can be located in an Eclipse plug-in or in the file system (all Acceleo projects are Eclipse
+         * plug-in). In order to use properties files located in an Eclipse plugin, you need to add the path of the properties
+         * files to the "propertiesFiles" list:
+         * 
+         * final String prefix = "platform:/plugin/";
+         * final String pluginName = "org.eclipse.acceleo.module.sample";
+         * final String packagePath = "/org/eclipse/acceleo/module/sample/properties/";
+         * final String fileName = "default.properties";
+         * propertiesFiles.add(prefix + pluginName + packagePath + fileName);
+         * 
+         * With this mechanism, you can load properties files from your plugin or from another plugin.
+         * 
+         * You may want to load properties files from the file system, for that you need to add the absolute path of the file:
+         * 
+         * propertiesFiles.add("C:\Users\MyName\MyFile.properties");
+         * 
+         * If you want to let your users add properties files located in the same folder as the model:
+         *
+         * if (EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != null) { 
+         *     propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model.eResource()));
+         * }
+         * 
+         * To learn more about Properties Files, have a look at the Acceleo documentation (Help -> Help Contents).
+         */
+        return propertiesFiles;
+    }
+    
+    /**
+     * Adds a properties file in the list of properties files.
+     * 
+     * @param propertiesFile
+     *            The properties file to add.
+     * @generated
+     * @since 3.1
+     */
+    @Override
+    public void addPropertiesFile(String propertiesFile) {
+        this.propertiesFiles.add(propertiesFile);
+    }
+    
+    /**
+     * This will be used to get the list of templates that are to be launched by this launcher.
+     * 
+     * @return The list of templates to call on the module {@link #getModuleName()}.
+     * @generated
+     */
+    @Override
+    public String[] getTemplateNames() {
+        return TEMPLATE_NAMES;
+    }
+    
+    /**
+     * This can be used to update the resource set's package registry with all needed EPackages.
+     * 
+     * @param resourceSet
+     *            The resource set which registry has to be updated.
+     * @generated
+     */
+    @Override
+    public void registerPackages(ResourceSet resourceSet) {
+        super.registerPackages(resourceSet);
+        
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+        
+        /*
+         * If you need additional package registrations, you can register them here. The following line
+         * (in comment) is an example of the package registration for UML.
+         * 
+         * You can use the method  "isInWorkspace(Class c)" to check if the package that you are about to
+         * register is in the workspace.
+         * 
+         * To register a package properly, please follow the following conventions:
+         *
+         * If the package is located in another plug-in, already installed in Eclipse. The following content should
+         * have been generated at the beginning of this method. Do not register the package using this mechanism if
+         * the metamodel is located in the workspace.
+         *  
+         * if (!isInWorkspace(UMLPackage.class)) {
+         *     // The normal package registration if your metamodel is in a plugin.
+         *     resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+         * }
+         * 
+         * If the package is located in another project in your workspace, the plugin containing the package has not
+         * been register by EMF and Acceleo should register it automatically. If you want to use the generator in
+         * stand alone, the regular registration (seen a couple lines before) is needed.
+         * 
+         * To learn more about Package Registration, have a look at the Acceleo documentation (Help -> Help Contents).
+         */
+    }
+
+    /**
+     * This can be used to update the resource set's resource factory registry with all needed factories.
+     * 
+     * @param resourceSet
+     *            The resource set which registry has to be updated.
+     * @generated
+     */
+    @Override
+    public void registerResourceFactories(ResourceSet resourceSet) {
+        super.registerResourceFactories(resourceSet);
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+        
+        /*
+         * TODO If you need additional resource factories registrations, you can register them here. the following line
+         * (in comment) is an example of the resource factory registration for UML.
+         *
+         * If you want to use the generator in stand alone, the resource factory registration will be required.
+         *  
+         * To learn more about the registration of Resource Factories, have a look at the Acceleo documentation (Help -> Help Contents). 
+         */ 
+        
+        // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+    }
+    
+}
diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/atomicComponentTemplate_sanmodel.mtl b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/atomicComponentTemplate_sanmodel.mtl
new file mode 100644
index 0000000..0dc6f71
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/atomicComponentTemplate_sanmodel.mtl
@@ -0,0 +1,480 @@
+[comment
+/*********************************************************************
+* Copyright (c) 2019 Intecs Solutions SpA
+*
+* This program and the accompanying materials are made
+* available under the terms of the Eclipse Public License 2.0
+* which is available at https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors: 
+*   Intecs Solutions - Initial API and implementation
+*   
+**********************************************************************/
+/]
+[comment encoding = UTF-8 /]
+[module atomicComponentTemplate_sanmodel('http://www.polarsys.org/chess/SAN')/]
+[import org::polarsys::chess::mobius::templates::projectFileTemplate_sanmodel /]
+
+[template public atomicComponentTemplate_sanmodel(sanModel : SANModel, componentQN : String)]
+	
+	[comment @main /]
+	[let componentName : String = componentQN]
+	[file (componentName.replaceAll('\\.', '_').concat('.san'), false, 'UTF-8')]
+ 	[let globalvars : Set(String) = getEmptyStringSet()]
+	[let placeX : Integer = 0]
+	[let placeY : Integer = 75]
+	[let activityX : Integer = 50]
+	[let activityY : Integer = 150]
+	[let attackX : Integer = 100]
+	[let attackY : Integer = 200]
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<class id="Mobius.AtomicModels.San.SanInterface">
+	<int id="ClassVersion">1</int>
+	<class id="Mobius.BaseClasses.BaseInterfaceClass">
+		<int id="ClassVersion">3</int>
+		<string id="ModelName">[componentName.replaceAll('\\.', '_')/]</string>
+		<class id="Mobius.AtomicModels.San.SanInfoClass">
+			<int id="ClassVersion">5</int>
+			<class id="Mobius.BaseClasses.BaseInfoClass">
+				<int id="ClassVersion">2</int>
+			</class>
+			<class id="Mobius.AtomicModels.San.SanTypeManager">
+				<int id="ClassVersion">1</int>
+				<int id="typeListModelSize">0</int>
+			</class>
+			<string id="CustomInitialization"></string>
+		</class>
+		<class id="Mobius.AtomicModels.San.SanEditor">
+			<int id="ClassVersion">3</int>
+			<class id="Mobius.BaseClasses.BaseEditorClass">
+				<int id="ClassVersion">3</int>
+				<boolean id="HasPanel">true</boolean>
+				<class id="Mobius.BaseClasses.BasePanelClass">
+					<int id="ClassVersion">2</int>
+					<point id="Size of Panel">
+						<int id="x">900</int>
+						<int id="y">400</int>
+					</point>
+					<double id="ZoomFactor">1.0</double>
+					<boolean id="ShowGridEnabled">true</boolean>
+					<int id="ShowGridStep">10</int>
+					<boolean id="SnapGridEnabled">true</boolean>
+					<int id="SnapGridStep">10</int>
+[comment]					[let atomicBlocks :  Sequence(Classifier) = getAtomicBlocks(model)]
+					[let atomicBlock : Classifier = getBlockFromQN(atomicBlocks, componentQN)]
+					[if(atomicBlock.getAppliedStereotype(ErrorModelBehaviorQN)->notEmpty())]
+					[let places : Sequence(State) = getPlaces(atomicBlock)]
+					[for (place : State | places)][/comment]
+					[comment places /]
+					[let nodes :  Sequence(Node) = sanModel.getAllNodes()->asSequence()]
+					[let atomicNode : Node = getNodeFromQN(nodes, componentQN)]
+					[for (place : Place | atomicNode.oclAsType(AtomicNode).place)]
+					<class id="Mobius.AtomicModels.San.PlacePanelObject">
+						<int id="ClassVersion">1</int>
+						<class id="Mobius.BaseClasses.BaseVertexClass">
+							<int id="ClassVersion">3</int>
+							<class id="Mobius.BaseClasses.BasePanelObjectClass">
+								<int id="ClassVersion">5</int>
+								<string id="Name">[place.name.replaceAll('\\.', '_')/]</string>
+								<boolean id="ContainsLabel">true</boolean>
+								<boolean id="IsLabelShown">true</boolean>
+							</class>
+							<point id="CenterPoint">
+								[comment: TODO save X and Y of the normal place/]
+								<int id="x">[place.x/]</int>
+								<int id="y">[place.y/]</int>
+							</point>
+						</class>
+						<boolean id="ReadOnly">false</boolean>
+						<boolean id="ConstantMarking">true</boolean>			
+						<int id="InitialState">[place.initialState/]</int>
+					</class>
+					[/for]	
+					[for (outputGate: OutputGate | atomicNode.oclAsType(AtomicNode).outputGate)]
+					<class id="Mobius.AtomicModels.San.OutputGatePanelObject">
+						<int id="ClassVersion">1</int>
+						<class id="Mobius.BaseClasses.BaseVertexClass">
+							<int id="ClassVersion">3</int>
+							<class id="Mobius.BaseClasses.BasePanelObjectClass">
+								<int id="ClassVersion">5</int>
+								<string id="Name">[outputGate.name/]</string>
+								<boolean id="ContainsLabel">true</boolean>
+								<boolean id="IsLabelShown">true</boolean>
+							</class>
+							<point id="CenterPoint">
+								<int id="x">[outputGate.x/]</int>
+								<int id="y">[outputGate.y/]</int>
+							</point>
+						</class>
+						<boolean id="MirrorImage">false</boolean>
+						<string id="Function">[outputGate.outputFunction/];</string>
+					</class>
+					[/for]	
+					[for (timedActivity: TimedActivity | atomicNode.oclAsType(AtomicNode).timedActivity)]
+					[let timedActivityName : String = timedActivity.name]
+					<class id="Mobius.AtomicModels.San.TimedActivityPanelObject">
+						<int id="ClassVersion">2</int>
+						<class id="Mobius.AtomicModels.San.ActivityPanelObject">
+							<int id="ClassVersion">1</int>
+							<class id="Mobius.BaseClasses.ExtendedBaseVertexClass">
+								<int id="ClassVersion">1</int>
+								<class id="Mobius.BaseClasses.BaseVertexClass">
+									<int id="ClassVersion">3</int>
+									<class id="Mobius.BaseClasses.BasePanelObjectClass">
+										<int id="ClassVersion">5</int>
+										<string id="Name">[timedActivity.name/]</string>
+										<boolean id="ContainsLabel">true</boolean>
+										<boolean id="IsLabelShown">true</boolean>
+									</class>
+									<point id="CenterPoint">
+										<int id="x">[timedActivity.x/]</int>
+										<int id="y">[timedActivity.y/]</int>
+									</point>
+								</class>
+							</class>
+							[if(timedActivity.case->isEmpty())]
+							<int id="NumberOfCases">1</int>
+							<vector id="CaseDistributions">
+								<string id="0"></string>
+							</vector>
+							[else]
+							<int id="NumberOfCases">[timedActivity.case->size()/]</int>
+							<vector id="CaseDistributions">
+							[for (case : String | timedActivity.case)]
+								<string id="[i/]">[case/]</string>
+							[/for]
+							</vector>
+							[/if]
+						</class>
+						[comment TODO? always Exponential for the moment/]
+						<class id="Mobius.BaseClasses.Distributions.DistributionFunction">
+							<int id="ClassVersion">1</int>
+							<string id="Name">Exponential</string>
+							<vector id="MetaParameters">
+							</vector>
+							<vector id="Parameters">
+								[if ( timedActivity.rate.oclIsUndefined() or timedActivity.rate.size() = 0)]
+								[comment global variable/]
+								[comment addToGlobalVars(timedActivityName.concat('Rate'), globalvars)/]
+								<string id="0">[timedActivityName/]Rate</string>
+								[else] 
+								<string id="0">[timedActivity.rate/]</string>
+								[/if]
+							</vector>
+						</class>
+						<string id="Activation"></string>
+						<string id="Reactivation"></string>
+					</class>
+					[/let]
+					[/for]
+					[for (instActivity: InstantaneousActivity | atomicNode.oclAsType(AtomicNode).instantaneousActivity)]
+					[let instActivityName : String = instActivity.name]	
+					<class id="Mobius.AtomicModels.San.InstantaneousActivityPanelObject">
+						<int id="ClassVersion">1</int>
+						<class id="Mobius.AtomicModels.San.ActivityPanelObject">
+							<int id="ClassVersion">1</int>
+							<class id="Mobius.BaseClasses.ExtendedBaseVertexClass">
+								<int id="ClassVersion">1</int>
+								<class id="Mobius.BaseClasses.BaseVertexClass">
+									<int id="ClassVersion">3</int>
+									<class id="Mobius.BaseClasses.BasePanelObjectClass">
+										<int id="ClassVersion">5</int>
+										<string id="Name">[instActivityName/]</string>
+										<boolean id="ContainsLabel">true</boolean>
+										<boolean id="IsLabelShown">true</boolean>
+									</class>
+									<point id="CenterPoint">
+										<int id="x">[instActivity.x/]</int>
+										<int id="y">[instActivity.y/]</int>
+									</point>
+								</class>
+							</class>
+							[if(instActivity.case->isEmpty())]
+							<int id="NumberOfCases">1</int>
+							<vector id="CaseDistributions">
+								<string id="0"></string>
+							</vector>
+							[else]
+							<int id="NumberOfCases">[instActivity.case->size()/]</int>
+							<vector id="CaseDistributions">
+							[for (case : String | instActivity.case)]
+								<string id="[i/]">[case/]</string>
+							[/for]
+							</vector>
+							[/if]
+						</class>
+					</class>
+					[/let]
+					[/for]
+					[for (sourcePlace : Place | atomicNode.oclAsType(AtomicNode).place)]
+					[for (activity : Activity | sourcePlace.activity)]
+					[for (targetPlace : Place | activity.place)]
+					[comment activity with case = 1/]
+					<class id="Mobius.BaseClasses.BaseEdgeClass">
+						<int id="ClassVersion">3</int>
+						<int id="LineType">0</int>
+						<string id="StartVertex">[activity.name.replaceAll('\\.', '_')/]</string>
+						<string id="FinishVertex">[targetPlace.name.replaceAll('\\.', '_')/]</string>
+						<boolean id="Arrows">true</boolean>
+						<vector id="PointList">
+							<point id="0">
+								<int id="x">[activity.x/]</int>
+								<int id="y">[activity.y/]</int>
+							</point>
+							<point id="1">
+								<int id="x">[targetPlace.x/]</int>
+								<int id="y">[targetPlace.y/]</int>
+							</point>
+						</vector>
+					</class>
+					<class id="Mobius.BaseClasses.BaseEdgeClass">
+						<int id="ClassVersion">3</int>
+						<int id="LineType">0</int>
+						<string id="StartVertex">[sourcePlace.name.replaceAll('\\.', '_')/]</string>
+						<string id="FinishVertex">[activity.name.replaceAll('\\.', '_')/]</string>
+						<boolean id="Arrows">true</boolean>
+						<vector id="PointList">
+							<point id="0">
+								<int id="x">[sourcePlace.x/]</int>
+								<int id="y">[sourcePlace.y/]</int>
+							</point>
+							<point id="1">
+								<int id="x">[activity.x/]</int>
+								<int id="y">[activity.y/]</int>
+							</point>
+						</vector>
+					</class>
+					
+					[/for]
+					[/for]
+					[/for]
+
+					[for (sourcePlace : Place | atomicNode.oclAsType(AtomicNode).place)]
+					[for (activity : Activity | sourcePlace.activity)]
+					<class id="Mobius.BaseClasses.BaseEdgeClass">
+						<int id="ClassVersion">3</int>
+						<int id="LineType">0</int>
+						<string id="StartVertex">[sourcePlace.name.replaceAll('\\.', '_')/]</string>
+						<string id="FinishVertex">[activity.name.replaceAll('\\.', '_')/]</string>
+						<boolean id="Arrows">true</boolean>
+						<vector id="PointList">
+							<point id="0">
+								<int id="x">[sourcePlace.x/]</int>
+								<int id="y">[sourcePlace.y/]</int>
+							</point>
+							<point id="1">
+								<int id="x">[activity.x/]</int>
+								<int id="y">[activity.y/]</int>
+							</point>
+						</vector>
+					</class>
+					[/for]
+					[/for]
+
+					[comment code for links in case of ActivityPlaceCase, activity's case > 1/]
+					[for (instActivity: InstantaneousActivity | atomicNode.oclAsType(AtomicNode).instantaneousActivity)]
+					[for (placecase : SAN::ActivityPlaceCase | instActivity.placecase)]
+					[for (targetPlace : SAN::Primitive | placecase.place)]
+					<class id="Mobius.BaseClasses.BaseEdgeClass">
+						<int id="ClassVersion">3</int>
+						<int id="LineType">0</int>
+						<string id="StartVertex">[instActivity.name.replaceAll('\\.', '_')/]</string>
+						<string id="FinishVertex">[targetPlace.name.replaceAll('\\.', '_')/]</string>
+						<boolean id="Arrows">true</boolean>
+						<vector id="PointList">
+							<point id="0">
+								<int id="x">[placecase.x/]</int>
+								<int id="y">[placecase.y/]</int>
+							</point>
+							<point id="1">
+								<int id="x">[targetPlace.x/]</int>
+								<int id="y">[targetPlace.y/]</int>
+							</point>
+						</vector>
+					</class>
+					[/for]
+					[/for]
+					[/for]
+
+					[for (timedActivity: TimedActivity | atomicNode.oclAsType(AtomicNode).timedActivity)]
+					[for (placecase : SAN::ActivityPlaceCase | timedActivity.placecase)]
+					[for (targetPlace : SAN::Primitive | placecase.place)]
+					<class id="Mobius.BaseClasses.BaseEdgeClass">
+						<int id="ClassVersion">3</int>
+						<int id="LineType">0</int>
+						<string id="StartVertex">[timedActivity.name.replaceAll('\\.', '_')/]</string>
+						<string id="FinishVertex">[targetPlace.name.replaceAll('\\.', '_')/]</string>
+						<boolean id="Arrows">true</boolean>
+						<vector id="PointList">
+							<point id="0">
+								<int id="x">[placecase.x/]</int>
+								<int id="y">[placecase.y/]</int>
+							</point>
+							<point id="1">
+								<int id="x">[targetPlace.x/]</int>
+								<int id="y">[targetPlace.y/]</int>
+							</point>
+						</vector>
+					</class>
+					[/for]
+					[/for]
+					[/for]
+					[comment end code for links in case of ActivityPlaceCase, activity's case > 1/]
+
+					[for (inputGate: InputGate | atomicNode.oclAsType(AtomicNode).inputGate)]
+					<class id="Mobius.AtomicModels.San.InputGatePanelObject">
+						<int id="ClassVersion">1</int>
+						<class id="Mobius.BaseClasses.BaseVertexClass">
+							<int id="ClassVersion">3</int>
+							<class id="Mobius.BaseClasses.BasePanelObjectClass">
+								<int id="ClassVersion">5</int>
+								<string id="Name">[inputGate.name/]</string>
+								<boolean id="ContainsLabel">true</boolean>
+								<boolean id="IsLabelShown">true</boolean>
+							</class>
+							<point id="CenterPoint">
+								<int id="x">[inputGate.x/]</int>
+								<int id="y">[inputGate.y/]</int>
+							</point>
+						</class>
+						<boolean id="MirrorImage">false</boolean>
+						<string id="Predicate">
+						[comment predicate and function/]
+							[inputGate.inputPredicated/];
+						</string>
+						<string id="Function">[inputGate.inputFunction/];</string>
+					</class>
+					[/for]
+
+					[comment TODO WIP: for each attack success:
+					add one place for attack_success,
+					add one place for attack_confirmed,
+					add an input attack_gate,
+					connect attack_success with attack_gate,
+					connect OK(normal state) with attack_gate,
+					connect attack_confirmed with attack_gate,
+					connect attack_confirmed with instActivityName/]
+					
+					[for (sourcePlace : Place | atomicNode.oclAsType(AtomicNode).place)]
+					[for (gate : InputGate | sourcePlace.inputGate)]
+
+					<class id="Mobius.BaseClasses.BaseEdgeClass">
+						<int id="ClassVersion">3</int>
+						<int id="LineType">0</int>
+						<string id="StartVertex">[sourcePlace.name/]</string>
+						<string id="FinishVertex">[gate.name/]</string>
+						<boolean id="Arrows">false</boolean>
+						<vector id="PointList">
+							<point id="0">
+								<int id="x">[sourcePlace.x/]</int>
+								<int id="y">[sourcePlace.y /]</int>
+							</point>
+							<point id="1">
+								<int id="x">[gate.x/]</int>
+								<int id="y">[gate.y/]</int>
+							</point>
+						</vector>
+					</class>
+					
+					[/for]
+					[/for]
+
+					[for (timedActivity: TimedActivity | atomicNode.oclAsType(AtomicNode).timedActivity)]
+					[for (outgate : SAN::OutputGate | timedActivity.outputGate)]
+					<class id="Mobius.BaseClasses.BaseEdgeClass">
+						<int id="ClassVersion">3</int>
+						<int id="LineType">0</int>
+						<string id="StartVertex">[timedActivity.name.replaceAll('\\.', '_')/]</string>
+						<string id="FinishVertex">[outgate.name/]</string>
+						<boolean id="Arrows">false</boolean>
+						<vector id="PointList">
+							<point id="0">
+								<int id="x">[timedActivity.x/]</int>
+								<int id="y">[timedActivity.y/]</int>
+							</point>
+							<point id="1">
+								<int id="x">[outgate.x/]</int>
+								<int id="y">[outgate.y/]/</int>
+							</point>
+						</vector>
+					</class>
+					[/for]
+					[/for]
+
+					[for (instantActivity: InstantaneousActivity | atomicNode.oclAsType(AtomicNode).instantaneousActivity)]
+					[for (outgate : SAN::OutputGate | instantActivity.outputGate)]
+					<class id="Mobius.BaseClasses.BaseEdgeClass">
+						<int id="ClassVersion">3</int>
+						<int id="LineType">0</int>
+						<string id="StartVertex">[instantActivity.name.replaceAll('\\.', '_')/]</string>
+						<string id="FinishVertex">[outgate.name/]</string>
+						<boolean id="Arrows">false</boolean>
+						<vector id="PointList">
+							<point id="0">
+								<int id="x">[instantActivity.x/]</int>
+								<int id="y">[instantActivity.y/]</int>
+							</point>
+							<point id="1">
+								<int id="x">[outgate.x/]</int>
+								<int id="y">[outgate.y/]/</int>
+							</point>
+						</vector>
+					</class>
+					[/for]
+					[/for]
+	
+					
+				</class>
+				<vector id="LocalGlobalNamesList">
+				[for (globalvar : String | globalvars)]
+					<string id="[i/]">[globalvar/]</string>
+				[/for]
+				[for (globVar : SAN::GlobalVariable | atomicNode.oclAsType(AtomicNode).globalVariable)]
+					<string id="[i/]">[globVar.name/]</string>	
+				[/for]
+				</vector>
+				<vector id="LocalGlobalTypesList">
+				[for (globalvar : String | globalvars)]
+					<string id="[i/]">double</string>
+				[/for]
+				[for (globVar : SAN::GlobalVariable | atomicNode.oclAsType(AtomicNode).globalVariable)]
+					<string id="[i/]">[globVar.type/]</string>	
+				[/for]
+					
+				[/let] [comment atomic node/]
+				[/let]
+				</vector>
+				<boolean id="DisplayToolTips">true</boolean>
+			</class>
+		</class>
+		<boolean id="Valid">true</boolean>
+	</class>
+</class>
+	[/let]
+	[/let]
+	[/let]
+	[/let]
+	[/let]
+	[/let]
+	[/let]
+	[/file]
+	[/let]
+[/template]
+
+
+[query public getOkX(ctx : OclAny) : Integer =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'getOkX()', Sequence{})/]
+
+[query public getOkY(ctx : OclAny) : Integer =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'getOkY()', Sequence{})/]
+
+[query public setOkX(okX : Integer) : OclAny =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'setOkX(java.lang.Integer)', Sequence{okX})/]
+
+[query public setOkY(okY : Integer) : OclAny =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'setOkY(java.lang.Integer)', Sequence{okY})/]
+
+[query public getNodeFromQN(blocks : Sequence(Node), qualifiedName : String) : Node =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'getNodeFromQN(java.util.List, java.lang.String)', Sequence{blocks, qualifiedName})/]
\ No newline at end of file
diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/composedComponentTemplate_sanmodel.mtl b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/composedComponentTemplate_sanmodel.mtl
new file mode 100644
index 0000000..44fc873
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/composedComponentTemplate_sanmodel.mtl
@@ -0,0 +1,243 @@
+[comment
+/*********************************************************************
+* Copyright (c) 2019 Intecs Solutions SpA
+*
+* This program and the accompanying materials are made
+* available under the terms of the Eclipse Public License 2.0
+* which is available at https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors: 
+*   Intecs Solutions - Initial API and implementation
+*   
+**********************************************************************/
+/]
+[comment encoding = UTF-8 /]
+[module composedComponentTemplate_sanmodel('http://www.polarsys.org/chess/SAN')/]
+[import org::polarsys::chess::mobius::templates::projectFileTemplate_sanmodel /]
+
+[template public composedComponentTemplate_sanmodel(sanModel : SANModel, componentQN : String){
+	BlockQN : String = 'SysML::Blocks::Block';
+}]
+	
+	[comment @main /]
+	[let rootJoin : Join = sanModel.node.oclAsType(SAN::Join)]
+	[let componentName : String = rootJoin.name]
+	[file (componentName.concat('.cmp'), false, 'UTF-8')]
+    [let globalvars : Set(String) = getEmptyStringSet()]
+	[let x : Integer = 75]
+	[let y : Integer = 50]
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<class id="Mobius.ComposedModels.RepJoin.RepJoinInterface">
+	<int id="ClassVersion">1</int>
+	<class id="Mobius.BaseClasses.BaseInterfaceClass">
+		<int id="ClassVersion">3</int>
+		<string id="ModelName">[componentName/]</string>
+		<class id="Mobius.BaseClasses.BaseInfoClass">
+			<int id="ClassVersion">2</int>
+		</class>
+		<class id="Mobius.BaseClasses.BaseEditorClass">
+			<int id="ClassVersion">3</int>
+			<boolean id="HasPanel">true</boolean>
+			<class id="Mobius.BaseClasses.BasePanelClass">
+				<int id="ClassVersion">2</int>
+				<point id="Size of Panel">
+					<int id="x">500</int>
+					<int id="y">400</int>
+				</point>
+				<double id="ZoomFactor">1.0</double>
+				<boolean id="ShowGridEnabled">true</boolean>
+				<int id="ShowGridStep">10</int>
+				<boolean id="SnapGridEnabled">true</boolean>
+				<int id="SnapGridStep">10</int>
+				[for (node : Node | sanModel.getAllNodes())]
+				[comment join node /]
+				[if (node.oclIsKindOf(Join))]
+				<class id="Mobius.ComposedModels.Common.JoinPanelObject">
+					<int id="ClassVersion">3</int>
+					<class id="Mobius.BaseClasses.BaseVertexClass">
+						<int id="ClassVersion">3</int>
+						<class id="Mobius.BaseClasses.BasePanelObjectClass">
+							<int id="ClassVersion">5</int>
+							<string id="Name">[node.name.replaceAll('\\.', '_')/]</string>
+							<boolean id="ContainsLabel">true</boolean>
+							<boolean id="IsLabelShown">true</boolean>
+						</class>
+						<point id="CenterPoint">
+							<int id="x">[node.x/]</int>
+							<int id="y">[node.y/]</int>
+						</point>
+					</class>
+					[if node.oclAsType(Join).stateVariables->isEmpty()]
+						<int id="SharingInfoSize">0</int>
+					[else]
+						<int id="SharingInfoSize">[node.oclAsType(Join).stateVariables->size()/]</int>
+					[/if]
+					[for (state : SharedState | node.oclAsType(Join).stateVariables)]
+						<string id="NewSharedObjName">[state.name.replaceAll('\\.', '_')/]</string>
+						<string id="Function"></string>
+						<int id="FunctionIndex">-1</int>
+						<boolean id="actionFlag">false</boolean>
+						[let id : Integer = state.place->size()]
+						<vector id="FullAccessPathStrings">
+							[for (place :Place | state.place)]
+							<string id="[i/]">[place.eContainer().oclAsType(NamedElement).name.replaceAll('\\.', '_')/]-&gt;[place.name.replaceAll('\\.', '_')/]</string>
+							[/for]
+							[for (shared : SharedState | state.sharedStates)] 
+							[comment check if the owner of the referred shared state is a Rep/]
+							[if (shared.eContainer().oclIsKindOf(Rep))] 
+								[if (not shared.place->isEmpty())]
+							<string id="[id+i/]">[shared.eContainer().oclAsType(NamedElement).name.replaceAll('\\.', '_')/]-&gt;[shared.place->asSequence()->first().name.replaceAll('\\.', '_')/]</string>	
+								[else]
+							<string id="[id+i/]">[shared.eContainer().oclAsType(NamedElement).name.replaceAll('\\.', '_')/]-&gt;[shared.name.replaceAll('\\.', '_')/]</string>	
+								[/if]
+							[else]	
+							<string id="[id+i/]">[shared.eContainer().oclAsType(NamedElement).name.replaceAll('\\.', '_')/]-&gt;[shared.name.replaceAll('\\.', '_')/]</string>
+							[/if]
+							[/for]
+						</vector>
+						[/let]
+					[/for]
+				</class>
+				[comment submodels /]
+				[/if]
+				[if (node.oclIsKindOf(AtomicNode))]
+				<class id="Mobius.ComposedModels.Common.AtomicPanelObject">
+					<int id="ClassVersion">3</int>
+					<class id="Mobius.BaseClasses.BaseVertexClass">
+						<int id="ClassVersion">3</int>
+						<class id="Mobius.BaseClasses.BasePanelObjectClass">
+							<int id="ClassVersion">5</int>
+							<string id="Name">[node.name.replaceAll('\\.', '_')/]</string>
+							<boolean id="ContainsLabel">true</boolean>
+							<boolean id="IsLabelShown">true</boolean>
+						</class>
+						<point id="CenterPoint">
+							<int id="x">[node.x/]</int>
+							<int id="y">[node.y/]</int>
+						</point>
+					</class>
+					<string id="Model Name">[node.oclAsType(AtomicNode).model.replaceAll('\\.', '_')/]</string>
+				</class>
+				[/if]
+				[comment rep(s), if any/]
+				[if(node.oclIsKindOf(Rep))]
+				<class id="Mobius.ComposedModels.RepJoin.RepPanelObject">
+					<int id="ClassVersion">1</int>
+					<class id="Mobius.BaseClasses.BaseVertexClass">
+						<int id="ClassVersion">3</int>
+						<class id="Mobius.BaseClasses.BasePanelObjectClass">
+							<int id="ClassVersion">5</int>
+							<string id="Name">[node.name.replaceAll('\\.', '_')/]</string>
+							<boolean id="ContainsLabel">true</boolean>
+							<boolean id="IsLabelShown">true</boolean>
+						</class>
+						<point id="CenterPoint">
+							<int id="x">[node.x/]</int>
+							<int id="y">[node.y/]</int>
+						</point>
+					</class>
+					[if  node.oclAsType(Rep).numbOfReps='-1']
+					<string id="RepCount">Num[node.name.replaceAll('\\.', '_')/]</string>
+					[else]
+					<string id="RepCount">[node.oclAsType(Rep).numbOfReps/]</string>
+					[/if]
+					[if node.oclAsType(Rep).stateVariables->size() = 0]
+					<int id="SharingInfoSize">0</int>
+					[else]
+					<int id="SharingInfoSize">[node.oclAsType(Rep).stateVariables->size()/]</int>
+					[/if]
+					[for (state : SharedState | node.oclAsType(Rep).stateVariables)]
+						[comment assumption: for Rep, shared state can refere a single place or a single shared state/]
+						[if (not state.place->isEmpty())] 
+						<string id="RepSharingInfoElement">[state.place->asSequence()->first().name.replaceAll('\\.', '_')/]</string>
+						[/if]
+						[if (not state.sharedStates->isEmpty())] 
+						<string id="RepSharingInfoElement">[state.sharedStates->asSequence()->first().name.replaceAll('\\.', '_')/]</string>
+						[/if]
+					[/for]
+				</class>
+				[/if]
+				[for (var : GlobalVariable | node.globalVariable)]
+					[addToGlobalVars(var.name.replaceAll('\\.', '_'), globalvars)/]
+				[/for]
+
+				[/for]
+				[comment links /]
+				[for (node : Node | sanModel.getAllNodes())]
+				[if(node.oclIsKindOf(Rep))]
+				[comment link join to rep /]
+				[let child : Node = node.oclAsType(Rep).child->first()]
+				<class id="Mobius.BaseClasses.BaseEdgeClass">
+					<int id="ClassVersion">3</int>
+					<int id="LineType">0</int>
+					<string id="StartVertex">[node.name.replaceAll('\\.', '_')/]</string>
+					<string id="FinishVertex">[child.name.replaceAll('\\.', '_')/]</string>
+					<boolean id="Arrows">false</boolean>
+					<vector id="PointList">
+						<point id="0">
+							<int id="x">[node.x/]</int>
+							<int id="y">[node.y/]</int>
+						</point>
+						<point id="1">
+							<int id="x">[child.x/]</int>
+							<int id="y">[child.y/]</int>
+						</point>
+					</vector>
+				</class>
+				[/let]
+				[/if]
+				[if(node.oclIsKindOf(Join))]
+				[for (child : Node | node.oclAsType(Join).child)]
+				<class id="Mobius.BaseClasses.BaseEdgeClass">
+					<int id="ClassVersion">3</int>
+					<int id="LineType">0</int>
+					<string id="StartVertex">[node.name.replaceAll('\\.', '_')/]</string>
+					<string id="FinishVertex">[child.name.replaceAll('\\.', '_')/]</string>
+					<boolean id="Arrows">false</boolean>
+					<vector id="PointList">
+						<point id="0">
+							<int id="x">[node.x/]</int>
+							<int id="y">[node.y/]</int>
+						</point>
+						<point id="1">
+							<int id="x">[child.x/]</int>
+							<int id="y">[child.y/]</int>
+						</point>
+					</vector>
+				</class>
+				[/for]
+				[/if]
+				
+			
+			[/for]
+			</class>
+			<vector id="LocalGlobalNamesList">
+			[for (globalvar : String | globalvars)]
+					<string id="[i/]">[globalvar/]</string>
+			[/for]
+			[for (globVar : SAN::GlobalVariable | node.globalVariable)]
+				<string id="[i/]">[globVar.name.replaceAll('\\.', '_')/]</string>	
+			[/for]
+			</vector>
+			<vector id="LocalGlobalTypesList">
+			[for (globalvar : String | globalvars)]
+				<string id="[i/]">double</string>
+			[/for]
+			[for (globVar : SAN::GlobalVariable | node.globalVariable)]
+				<string id="[i/]">[globVar.type/]</string>	
+			[/for]
+			</vector>
+			<boolean id="DisplayToolTips">true</boolean>
+		</class>
+		<boolean id="Valid">true</boolean>
+	</class>
+</class>
+	[/let]
+	[/let]
+	[/let]
+	[/file]
+	[/let]
+[/let]
+[/template]
diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/projectFileTemplate_sanmodel.mtl b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/projectFileTemplate_sanmodel.mtl
new file mode 100644
index 0000000..2ad40a4
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/templates/projectFileTemplate_sanmodel.mtl
@@ -0,0 +1,73 @@
+[comment
+/*********************************************************************
+* Copyright (c) 2019 Intecs Solutions SpA
+*
+* This program and the accompanying materials are made
+* available under the terms of the Eclipse Public License 2.0
+* which is available at https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors: 
+*   Intecs Solutions - Initial API and implementation
+*   
+**********************************************************************/
+/]
+[comment encoding = UTF-8 /]
+[module projectFileTemplate_sanmodel('http://www.polarsys.org/chess/SAN')/]
+
+
+[template public projectFileTemplate_sanmodel(sanmodel : SANModel, projectName : String)]
+	
+	[comment @main /]
+	[file (projectName.concat('.prj'), false, 'UTF-8')]
+<?xml version="1.0" encoding="ASCII"?>
+<models:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:models="http://www.mobius.illinois.edu/projects" name="[projectName/]" lastSavedVersion="2.5.9.201902201008">
+	[let nodes : Sequence(Node) = sanmodel.getAllNodes()->asSequence()]
+	[for (node : Node | nodes)]
+	[if (node.oclIsKindOf(AtomicNode))]
+	<atomic key="[node.oclAsType(AtomicNode).model.replaceAll('\\.', '_')/]">
+      <value name="[node.oclAsType(AtomicNode).model.replaceAll('\\.', '_')/]" type="SAN Model"/>
+   	</atomic>
+	<atomic key="[node.oclAsType(AtomicNode).name.replaceAll('\\.', '_')/]">
+      <value name="[node.oclAsType(AtomicNode).name.replaceAll('\\.', '_')/]" type="SAN Model"/>
+   	</atomic>
+	[else]
+	[if (node.oclIsKindOf(ComposedNode) and node.eContainer().oclIsKindOf(SANModel))]
+	<composed key="[node.name.replaceAll('\\.', '_')/]">
+      <value name="[node.name.replaceAll('\\.', '_')/]" category="Composed" type="Rep/Join Model"/>	
+   	</composed>
+	[/if]
+	[/if]
+	[/for]
+	[/let]
+
+</models:Project>
+	[/file]
+[/template]
+
+
+[comment  to handle start place of fragments in a sequence diagram /]
+[query public getStartPlace(ctx : OclAny) : String =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'getStartPlace()', Sequence{})/]
+
+[query public getStartX(ctx : OclAny) : Integer =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'getStartX()', Sequence{})/]
+
+[query public getStartY(ctx : OclAny) : Integer =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'getStartY()', Sequence{})/]
+
+[query public setStartPlace(startPlace : String) : OclAny =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'setStartPlace(java.lang.String)', Sequence{startPlace})/]
+
+[query public setStartX(startX : Integer) : OclAny =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'setStartX(java.lang.Integer)', Sequence{startX})/]
+
+[query public setStartY(startY : Integer) : OclAny =
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'setStartY(java.lang.Integer)', Sequence{startY})/]
+
+[query public getEmptyStringSet(traceCtx : OclAny) : Set(String) = 
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'getEmptyStringSet()', Sequence{}) /]
+
+[query public addToGlobalVars(name : String, globalvars : Set(String)) : OclAny = 
+invoke('org.polarsys.chess.mobius.utils.TransformationUtil', 'addToGlobalVars(java.lang.String, java.util.Set)', Sequence{name, globalvars}) /]
\ No newline at end of file
diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/transformations/QVToTransformation.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/transformations/QVToTransformation.java
new file mode 100644
index 0000000..d08062c
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/transformations/QVToTransformation.java
@@ -0,0 +1,157 @@
+/*******************************************************************************

+ *                  CHESS Mobius plugin

+ *

+ *               Copyright (C) 2019

+ *            			Intecs

+ *

+ *

+ *  All rights reserved. This program and the accompanying materials

+ *  are made available under the terms of the Eclipse Public License

+ *  v1.0 which accompanies this distribution, and is available at

+ *  http://www.eclipse.org/legal/epl-v10.html

+ *******************************************************************************/

+

+package org.polarsys.chess.mobius.transformations;

+

+import java.io.IOException;

+import java.io.OutputStreamWriter;

+import java.util.Collections;

+import java.util.List;

+

+import org.eclipse.core.runtime.IProgressMonitor;

+import org.eclipse.core.runtime.IStatus;

+import org.eclipse.core.runtime.SubMonitor;

+import org.eclipse.emf.common.util.BasicDiagnostic;

+import org.eclipse.emf.common.util.Diagnostic;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.common.util.URI;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.emf.transaction.RecordingCommand;

+import org.eclipse.emf.transaction.TransactionalEditingDomain;

+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;

+import org.eclipse.m2m.internal.qvt.oml.evaluator.QVTEvaluationOptions;

+import org.eclipse.m2m.qvt.oml.BasicModelExtent;

+import org.eclipse.m2m.qvt.oml.ExecutionContextImpl;

+import org.eclipse.m2m.qvt.oml.ExecutionDiagnostic;

+import org.eclipse.m2m.qvt.oml.ModelExtent;

+import org.eclipse.m2m.qvt.oml.TransformationExecutor;

+import org.eclipse.m2m.qvt.oml.util.Trace;

+import org.eclipse.m2m.qvt.oml.util.WriterLog;

+import org.polarsys.chess.core.util.CHESSProjectSupport;

+import org.polarsys.chess.mobius.Activator;

+import org.polarsys.chess.mobius.model.SAN.SANModelPackage;

+

+public class QVToTransformation {

+	

+	private static final String SELECTED_PLATFORM_PROPERTY = "selectedPlatformQName";

+	private static final String SELECTED_ANALYSISCONTEXT_PROPERTY = "analysisContextQName";

+	private static final String CHESS2SAN = "platform:/plugin/org.polarsys.chess.mobius/transformations/CHESS2SAN.qvto";

+	

+	boolean isChessUserAction;

+	private DiagramEditPart diagramEditPart = null;

+	private Resource sourceResource;

+	private Resource targetResource;

+	private boolean createNewModel = true;

+	private IProgressMonitor monitor;

+	private String selectedElement = null;

+	private String analysisContextQN = null;

+	

+	public void performCHESS2SANTransformation(

+			Resource chessResource, Resource sanResource, IProgressMonitor monitor, String selectedElement, String analysisContextQN) {

+		SANModelPackage.eINSTANCE.getClass();

+		this.sourceResource = chessResource;

+		this.targetResource = sanResource;

+		this.monitor = monitor;

+		this.selectedElement = selectedElement;

+		this.analysisContextQN = analysisContextQN;

+		performTransformation(CHESS2SAN);

+	}

+		

+	

+	private void performTransformation(String transformationPath) {

+		URI transformationURI = URI.createURI(transformationPath);

+		final TransformationExecutor executor = new TransformationExecutor(transformationURI );

+		

+		EList<EObject> inObjects = sourceResource.getContents();

+		final ModelExtent input = new BasicModelExtent(inObjects);

+		ModelExtent output;

+		if (createNewModel) {

+			output = new BasicModelExtent();

+		} else {

+			output = new BasicModelExtent(targetResource.getContents());

+		}

+		

+		final ExecutionContextImpl context = new ExecutionContextImpl();

+		

+		if (selectedElement != null) {

+			context.setConfigProperty(SELECTED_PLATFORM_PROPERTY, selectedElement);

+			context.setConfigProperty(SELECTED_ANALYSISCONTEXT_PROPERTY, analysisContextQN);

+		}

+		

+		OutputStreamWriter s = new OutputStreamWriter(CHESSProjectSupport.CHESS_CONSOLE);

+		context.setLog(new WriterLog(s));

+		

+		context.setProgressMonitor(monitor);

+		

+		Trace trace = Trace.createEmptyTrace();

+		context.getSessionData().setValue(QVTEvaluationOptions.INCREMENTAL_UPDATE_TRACE, trace);

+		

+		ExecutionDiagnostic result = executor.execute(context, input, output);

+

+		if(result.getSeverity() == Diagnostic.OK) {

+			// the output objects got captured in the output extent

+			final List<EObject> outObjects = output.getContents();

+			// persist them using a resource 

+			targetResource.getContents().clear();

+			targetResource.getContents().addAll(outObjects);

+

+			try {

+				targetResource.save(Collections.EMPTY_MAP);

+			} catch (IOException e) {

+				// TODO Auto-generated catch block

+				e.printStackTrace();

+			}

+

+			//save trace model

+			URI uri = targetResource.getURI();

+			String tracePath = uri.toString()+".qvtoTrace";

+			URI traceURI = URI.createURI(tracePath);

+	

+			Resource traceResource = targetResource.getResourceSet().createResource(traceURI);

+			traceResource.getContents().addAll(trace.getTraceContent());

+			try {

+				traceResource.save(Collections.emptyMap());

+			} catch (IOException e) {

+				// TODO Auto-generated catch block

+				e.printStackTrace();

+			}

+	

+		} else {

+			// turn the result diagnostic into status and send it to error log

+			//TODO: Handle errors, abort analysis

+			IStatus status = BasicDiagnostic.toIStatus(result);

+			Activator.getDefault().getLog().log(status);

+		}

+		

+	

+		

+	}

+	

+	protected boolean saveChessResource(final Resource chessResource, final List<EObject> outObjects) {

+		try {

+			TransactionalEditingDomain editingDomain = diagramEditPart.getEditingDomain();

+			editingDomain.getCommandStack().execute(new RecordingCommand(editingDomain) {

+            protected void doExecute() {

+            	chessResource.getContents().clear();

+            	chessResource.getContents().addAll(outObjects);

+            }

+			});

+		} catch (Exception e) {

+			e.printStackTrace();

+			return false;

+		}

+		return true;

+	}

+

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/transformations/Transformations.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/transformations/Transformations.java
new file mode 100644
index 0000000..29a7a6d
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/transformations/Transformations.java
@@ -0,0 +1,339 @@
+/*********************************************************************

+* Copyright (c) 2019 Intecs Solutions SpA

+*

+* This program and the accompanying materials are made

+* available under the terms of the Eclipse Public License 2.0

+* which is available at https://www.eclipse.org/legal/epl-2.0/

+*

+* SPDX-License-Identifier: EPL-2.0

+*

+* Contributors: 

+*   Intecs Solutions - Initial API and implementation

+*   

+**********************************************************************/

+package org.polarsys.chess.mobius.transformations;

+

+import java.io.File;

+import java.lang.reflect.InvocationTargetException;

+import java.util.List;

+import java.util.Map;

+

+import org.eclipse.core.commands.ExecutionException;

+import org.eclipse.core.resources.IContainer;

+import org.eclipse.core.resources.IFile;

+import org.eclipse.core.resources.IProject;

+import org.eclipse.core.resources.IResource;

+import org.eclipse.core.resources.ResourcesPlugin;

+import org.eclipse.core.runtime.CoreException;

+import org.eclipse.core.runtime.IProgressMonitor;

+import org.eclipse.core.runtime.IStatus;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.core.runtime.Status;

+import org.eclipse.core.runtime.jobs.Job;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.common.util.URI;

+import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;

+import org.eclipse.jface.dialogs.MessageDialog;

+import org.eclipse.swt.widgets.Shell;

+import org.eclipse.ui.IEditorPart;

+import org.eclipse.ui.IFileEditorInput;

+import org.eclipse.ui.PlatformUI;

+import org.eclipse.uml2.uml.Classifier;

+import org.eclipse.uml2.uml.Interaction;

+import org.eclipse.uml2.uml.Message;

+import org.eclipse.uml2.uml.internal.impl.PackageImpl;

+import org.polarsys.chess.chessmlprofile.Core.CHGaResourcePlatform;

+import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis;

+import org.polarsys.chess.core.views.DiagramStatus;

+import org.polarsys.chess.mobius.handlers.CHESS2SANRunner;

+import org.polarsys.chess.mobius.handlers.TransformationHandler;

+import org.polarsys.chess.mobius.model.SAN.AtomicNode;

+import org.polarsys.chess.mobius.model.SAN.Node;

+import org.polarsys.chess.mobius.model.SAN.SANModel;

+import org.polarsys.chess.mobius.preferences.Activator;

+import org.polarsys.chess.mobius.templates.AtomicComponentTemplate_sanmodel;

+import org.polarsys.chess.mobius.templates.ComposedComponentTemplate_sanmodel;

+import org.polarsys.chess.mobius.templates.ProjectFileTemplate_sanmodel;

+import org.polarsys.chess.service.gui.utils.CHESSEditorUtils;

+

+public class Transformations {

+	

+	public static final String UML_EXT = ".uml";

+	private static final String DI_SUFFIX = ".di";

+	public static final int NUM_SUB_TASKS = 6;

+	public static final String[] PROJECT_SUBFOLDERS = {"Atomic", "Composed", "Documentation", "Reward", "Solver", "Study", "Transformer"};

+

+	public static void MobiusTransformationJob(Shell activeShell, IEditorPart editor, List<String> args, String projectName, List<Classifier> atomicBlocks, List<Classifier> composedBlocks, 

+			List<Interaction> attackScenarios,  Map<Classifier, List<Message>> vulnerableComponents, SANAnalysis csa, Resource sanRes, String analysisContextQN,

+			DiagramStatus chessDiagramStatus, Resource chessResource) {

+		

+		Job job = new Job("CHESS to Mobius Transformation Running"){

+

+			@Override

+			protected IStatus run(IProgressMonitor monitor) {

+				monitor.beginTask("operation in progress ...", NUM_SUB_TASKS);

+				Resource sanResource = null;

+				monitor.subTask("generating SAN model...");

+				

+				try {

+					sanResource = generateSANmodel(editor, csa, analysisContextQN, chessDiagramStatus, chessResource, monitor);

+				} catch (ExecutionException e1) {

+					e1.printStackTrace();

+					PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {

+						public void run() {

+							MessageDialog.openInformation(activeShell, "CHESS", "Error while generating the SAN model; please check the Error log");

+						}

+					});

+					return Status.CANCEL_STATUS;

+				}

+				monitor.worked(1);

+				//it seems that the QVT transformation calls done on the monitor... so I have to restart it

+				monitor.beginTask("operation in progress ...", NUM_SUB_TASKS-1);

+				

+				monitor.subTask("setting up project folders...");

+				IFileEditorInput input = (IFileEditorInput) editor.getEditorInput();

+				IFile inputfile = input.getFile();

+//				String ProjectName = inputfile.getName().substring(0, inputfile.getName().lastIndexOf("."));

+				String ProjectRoot = TransformationHandler.MOBIUS_PROJECT_LOCATION + File.separator + projectName;

+				new File(ProjectRoot).mkdirs();

+				monitor.worked(1);

+				

+				for (String subfolder : PROJECT_SUBFOLDERS){

+					new File(ProjectRoot + File.separator + subfolder).mkdirs();

+				}

+				

+				String stringToURI = inputfile.getFullPath().toString();

+				stringToURI = stringToURI.substring(0, stringToURI.lastIndexOf("."));

+				stringToURI = stringToURI + UML_EXT;

+

+				monitor.worked(1);

+				

+				try {

+					

+					SANModel sanModel = (SANModel) sanResource.getContents().get(0);

+					

+					monitor.subTask("transforming SAN model...");

+					monitor.worked(1);

+

+//NIK's work

+//					// currently I need the generation via AtomicComponentTemplate otherwise the generation of the attack scenario fails. Once the generation of attack scenario will be done via the SAN metamodel, then the invocation of AtomicComponentTemplate can be removed

+//					monitor.subTask("generating atomic models...");

+//					for (Classifier atomic : atomicBlocks) {

+//						String targetFolder = ProjectRoot + File.separator + "Atomic" + File.separator + atomic.getName();

+//						File targetFolderFile = new File(targetFolder);

+//						targetFolderFile.mkdirs();

+//						File target = new File(targetFolder);

+//						args.add(atomic.getQualifiedName());

+//						AtomicComponentTemplate san = new AtomicComponentTemplate(modelURI, target, args);

+//						san.doGenerate(null);

+//						

+//						// actually the generated files are not needed, see AtomicComponentTemplate_sanmodel below

+//						File toDelete = new File(targetFolder+File.separator+atomic.getName()+".san");

+//						toDelete.delete();

+//						targetFolderFile.delete();

+//						

+//						args.remove(atomic.getQualifiedName());

+//					}

+//					monitor.worked(1);

+					

+					monitor.subTask("generating atomic models...");

+					EList<Node> nodes = sanModel.getAllNodes();

+					for (Node node : nodes) {

+						if (node instanceof AtomicNode) {

+							String targetFolder = ProjectRoot + File.separator + "Atomic" + File.separator + node.getName().replaceAll("\\.", "_");

+							new File(targetFolder).mkdirs();

+							File target = new File(targetFolder);

+							args.add(node.getName());

+							AtomicComponentTemplate_sanmodel san = new AtomicComponentTemplate_sanmodel(sanResource.getURI(), target, args);

+							san.doGenerate(null);

+							args.remove(node.getName());

+						}

+					}

+					monitor.worked(1);

+					

+//					monitor.subTask("generating attack scenario models...");

+//					for (Interaction scenario : attackScenarios){

+//						String targetFolder = ProjectRoot + File.separator + "Atomic" + File.separator + scenario.getName();

+//						new File(targetFolder).mkdirs();

+//						File target = new File(targetFolder);

+//						args.add(scenario.getQualifiedName());

+//						AttackScenarioTemplate san = new AttackScenarioTemplate(modelURI, target, args);

+//						san.doGenerate(null);

+//						args.remove(scenario.getQualifiedName());

+//					}

+					

+//NICHOLAS WORK

+//					monitor.worked(1);

+//					monitor.subTask("generating composed models...");

+//					for (Classifier composed : composedBlocks) {

+//						String targetFolder = ProjectRoot + File.separator + "Composed" + File.separator + composed.getName();

+//						new File(targetFolder).mkdirs();

+//						File target = new File(targetFolder);

+//						args.add(composed.getQualifiedName());

+//						ComposedComponentTemplate cmp = new ComposedComponentTemplate(modelURI, target, args);

+//						cmp.doGenerate(null);

+//						args.remove(composed.getQualifiedName());

+//					}

+//					monitor.worked(1);

+					

+					monitor.subTask("generating composed model...");

+					if (sanModel.getNode() != null) {

+						Node rootNode = sanModel.getNode();

+						//for (Classifier composed : composedBlocks) {

+						String targetFolder = ProjectRoot + File.separator + "Composed" + File.separator + rootNode.getName();

+						new File(targetFolder).mkdirs();

+						File target = new File(targetFolder);

+						args.add("");

+						ComposedComponentTemplate_sanmodel cmp = new ComposedComponentTemplate_sanmodel(sanResource.getURI(), target, args);

+						cmp.doGenerate(null);

+						args.remove("");

+						//}

+						monitor.worked(1);

+					}

+

+//NIK's work

+//					monitor.subTask("generating vulnerable component models...");

+//					for (Classifier vulnerable : vulnerableComponents.keySet()) {

+//						String targetFolder = ProjectRoot + File.separator + "Composed" + File.separator + "Vulnerable" + vulnerable.getName();

+//						new File(targetFolder).mkdirs();

+//						File target = new File(targetFolder);

+//						args.add(vulnerable.getQualifiedName());

+//						VulnerableComponentsTemplate cmp = new VulnerableComponentsTemplate(modelURI, target, args);

+//						cmp.doGenerate(null);

+//						args.remove(vulnerable.getQualifiedName());

+//					}

+//					monitor.worked(1);

+					

+

+//NICHOLAS WORK

+//					monitor.subTask("generating project file...");

+//					File target = new File(ProjectRoot);

+//					args.add(projectName);

+//					ProjectFileTemplate prj = new ProjectFileTemplate(modelURI, target, args);

+//					prj.doGenerate(null);

+//					monitor.worked(1);

+					

+					monitor.subTask("generating Mobius project file...");

+					File target = new File(ProjectRoot);

+					args.add(projectName);

+					ProjectFileTemplate_sanmodel prj = new ProjectFileTemplate_sanmodel(sanResource.getURI(), target, args);

+					prj.doGenerate(null);

+					monitor.worked(1);

+					

+					

+					PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {

+						public void run() {

+							MessageDialog.openInformation(activeShell, "CHESS", "Mobius project " + projectName + " has been generated at: " + ProjectRoot);

+						}

+					});

+				} catch (Exception e) {

+					e.printStackTrace();

+					PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {

+						public void run() {

+							MessageDialog.openInformation(activeShell, "CHESS", "Unexpected problem: check the error log.");

+						}

+					});

+				} 

+				monitor.done();

+				if (monitor.isCanceled())

+					return Status.CANCEL_STATUS;

+				return Status.OK_STATUS;

+			}

+		};

+		

+		job.setUser(true);

+		job.setPriority(Job.SHORT);

+		job.schedule();

+	}

+

+private static Resource generateSANmodel(IEditorPart editor, SANAnalysis csa, String analysisContextQN, DiagramStatus chessDiagramStatus,

+		Resource resource, IProgressMonitor monitor) throws ExecutionException{

+		

+		IContainer targetFolder;

+	

+		//final DiagramStatus ds = CHESSEditorUtils.getDiagramStatus(papyrusEditor);

+

+		DiagramEditPart diagramEditPart = null;

+		try {

+			Object editPart = getEditPart();

+			

+			final DiagramEditPart csd_ep = (DiagramEditPart) editPart;

+			diagramEditPart = csd_ep;

+

+		} catch (Exception e) {

+			e.printStackTrace();

+		}

+		//		

+		

+		IFileEditorInput input = (IFileEditorInput)editor.getEditorInput() ;

+		

+		IFile file = input.getFile();

+		IProject activeProject = file.getProject();

+		Path path = new Path(activeProject.getName() + "/" + changeSuffix(input.getFile().getName(), DI_SUFFIX,UML_EXT));

+		URI modelURI = URI.createPlatformResourceURI(changeSuffix(input.getFile().getFullPath().toString(), DI_SUFFIX,UML_EXT), true);

+		IFile modelFile = ResourcesPlugin.getWorkspace().getRoot().getFile(path);

+		CHESS2SANRunner analysisRunner = new CHESS2SANRunner();

+		long startTime = System.currentTimeMillis();

+		//Shell shell = new Shell();	

+		try {

+			chessDiagramStatus.setUserAction(false);

+			//ProgressMonitorDialog pmDialog = new ProgressMonitorDialog(shell);

+			

+			analysisRunner.setModelURI(modelURI);

+			targetFolder = modelFile.getProject().getFolder("SAN");

+			analysisRunner.setTargetFolder(targetFolder);

+			analysisRunner.setDiagramEditPart(diagramEditPart);

+			

+			CHGaResourcePlatform platform = (CHGaResourcePlatform)csa.getPlatform().get(0);

+			

+			analysisRunner.setRootComponent(((PackageImpl) platform.getBase_InstanceSpecification().getOwner()).getQualifiedName());

+			analysisRunner.setAnalysisContextQualifiedName(analysisContextQN);

+			analysisRunner.setChessResource(resource);

+			analysisRunner.run(monitor);

+			

+			//pmDialog.run(true, true, analysisRunner);

+			

+			activeProject.refreshLocal(IResource.DEPTH_INFINITE, null);

+			

+		} catch (InvocationTargetException e) {

+			IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e);

+			Activator.getDefault().getLog().log(status);

+			throw new ExecutionException("Error during SAN transformation", e);

+		} catch (CoreException e) {

+			IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e);

+			Activator.getDefault().getLog().log(status);

+			throw new ExecutionException("Error during FLA analysis", e);

+		} catch (InterruptedException e) {

+			IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e);

+			Activator.getDefault().getLog().log(status);

+		} finally {

+			chessDiagramStatus.setUserAction(true);

+		}

+		long endTime = System.currentTimeMillis();

+		org.polarsys.chess.core.util.CHESSProjectSupport.printlnToCHESSConsole("*** Elapsed time " + (endTime - startTime) / 1e3 + " s ***");

+		return analysisRunner.getSANResource();

+	}

+	

+	

+	private static Object getEditPart() {

+		Object ep = null;

+		try {

+				ep = CHESSEditorUtils.getDiagramGraphicalViewer().getRootEditPart().getChildren().get(0);	

+		} catch (Exception e) {

+			//Catch NPE

+			return null;

+		}

+		return ep;

+	}

+	

+	private static String changeSuffix(String string, String oldSuffix, String newSuffix){

+		String newString = string;

+		if (newString.endsWith(oldSuffix)){

+			newString = newString.substring(0, newString.length() - oldSuffix.length());

+			newString += newSuffix;

+		}

+		return newString;		

+	}

+	

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/utils/MobiusComponents.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/utils/MobiusComponents.java
new file mode 100644
index 0000000..0f16ebc
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/utils/MobiusComponents.java
@@ -0,0 +1,47 @@
+/*********************************************************************

+* Copyright (c) 2019 Intecs Solutions SpA

+*

+* This program and the accompanying materials are made

+* available under the terms of the Eclipse Public License 2.0

+* which is available at https://www.eclipse.org/legal/epl-2.0/

+*

+* SPDX-License-Identifier: EPL-2.0

+*

+* Contributors: 

+*   Intecs Solutions - Initial API and implementation

+*   

+**********************************************************************/

+

+package org.polarsys.chess.mobius.utils;

+

+import java.util.ArrayList;

+import java.util.List;

+

+import org.eclipse.uml2.uml.Classifier;

+

+public class MobiusComponents {

+

+	private List<Classifier> atomicBlocks;

+	private List<Classifier> composedBlocks;

+	

+	public MobiusComponents(){

+		atomicBlocks = new ArrayList<>();

+		composedBlocks = new ArrayList<>();

+	}

+	

+	public List<Classifier> getAtomicBlocks() {

+		return atomicBlocks;

+	}

+	

+	public void setAtomicBlocks(List<Classifier> atomicBlocks) {

+		this.atomicBlocks = atomicBlocks;

+	}

+	

+	public List<Classifier> getComposedBlocks() {

+		return composedBlocks;

+	}

+	

+	public void setComposedBlocks(List<Classifier> composedBlocks) {

+		this.composedBlocks = composedBlocks;

+	}

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/utils/QVTBlackBox.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/utils/QVTBlackBox.java
new file mode 100644
index 0000000..798584e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/utils/QVTBlackBox.java
@@ -0,0 +1,172 @@
+package org.polarsys.chess.mobius.utils;

+

+import java.util.ArrayList;

+import java.util.List;

+

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.m2m.qvt.oml.blackbox.java.Operation;

+import org.eclipse.m2m.qvt.oml.blackbox.java.Operation.Kind;

+import org.eclipse.m2m.qvt.oml.util.IContext;

+import org.eclipse.uml2.uml.CombinedFragment;

+import org.eclipse.uml2.uml.Comment;

+import org.eclipse.uml2.uml.Constraint;

+import org.eclipse.uml2.uml.DurationConstraint;

+import org.eclipse.uml2.uml.Element;

+import org.eclipse.uml2.uml.GeneralOrdering;

+import org.eclipse.uml2.uml.Interaction;

+import org.eclipse.uml2.uml.InteractionFragment;

+import org.eclipse.uml2.uml.InteractionOperand;

+import org.eclipse.uml2.uml.Message;

+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;

+import org.eclipse.uml2.uml.NamedElement;

+

+public class QVTBlackBox {

+	

+	private static String ATTACKQN = "CHESS::Dependability::ThreatsPropagation::Attack";

+	

+	public static void setCeiling2(IContext context,

+			org.eclipse.uml2.uml.Class self, String ceiling) {

+		

+	}

+	

+	

+@Operation(kind = Kind.OPERATION, contextual = true, withExecutionContext = true)

+public List<NamedElement> getOrderedAttacksAndFragments(IContext context, Interaction scenario) {

+		

+		//duration constraints List

+		List<DurationConstraint> durConstrList = getDurConstrList(scenario);

+		

+		//fragments (message occurrence) List

+		List<MessageOccurrenceSpecification> msgOccList = getMsgOccSpecs(scenario); 

+

+		//general ordering list

+		List<GeneralOrdering> genOrderList = new ArrayList<>(); 

+		

+		for (MessageOccurrenceSpecification msgOcc : msgOccList) {

+			//general ordering inside message occurrence fragment

+			for (GeneralOrdering order : msgOcc.getGeneralOrderings()) {

+				genOrderList.add(order);

+			}

+		}

+		//general order at interaction (scenario) level, if any

+		for (GeneralOrdering order : scenario.getGeneralOrderings()) {

+			genOrderList.add(order);

+		}

+		

+		//order the messages (order based on GeneralOrdering)

+		List<Message> orderedMsgList = new ArrayList<>();

+		//TODO: we might need to review this code for unusual GeneralOrdering modeling

+		boolean start = true;

+		for (GeneralOrdering order : genOrderList) {

+			Message beforeMsg, afterMsg;

+			beforeMsg = ((MessageOccurrenceSpecification) order.getBefore()).getMessage();

+			afterMsg = ((MessageOccurrenceSpecification) order.getAfter()).getMessage();

+			if(start){

+				orderedMsgList.add(beforeMsg);

+				if(!beforeMsg.equals(afterMsg)){

+					orderedMsgList.add(afterMsg);

+				}

+				start = false;

+			}else{

+				if(orderedMsgList.contains(beforeMsg) && !orderedMsgList.contains(afterMsg)){

+					orderedMsgList.add(afterMsg);

+				}

+				if(orderedMsgList.contains(afterMsg) && !orderedMsgList.contains(beforeMsg)){

+					orderedMsgList.add(0, beforeMsg);

+				}

+			}

+		}

+		

+		//not using general ordering of messages is NOT recommended.

+		//if not used, as a workaround, we simply get the messages

+		//TODO if the user put some kind of alphanumeric ordering (0,1,2...) we could use it.

+		if(orderedMsgList.isEmpty()){

+			orderedMsgList.addAll(scenario.getMessages());

+		}

+		

+		//the real ordered list of elements ;)

+		List<NamedElement> orderedElemList = new ArrayList<>();

+		

+		//put messages (if owned by the interaction) or the CombinedFragment who owns it.

+		for (Message message : orderedMsgList) {

+			if(message.getAppliedStereotype(ATTACKQN) != null){

+				//get message "owner" (interaction/combined fragment)

+				if(message.getSendEvent() instanceof MessageOccurrenceSpecification){

+					MessageOccurrenceSpecification msgOcc = (MessageOccurrenceSpecification) message.getSendEvent();

+					if(msgOcc.getEnclosingInteraction() != null){

+						//message is "owned" directly by the interaction -> simple attack

+						orderedElemList.add(message);

+					}else if (msgOcc.getEnclosingOperand() != null){

+						//message is "owned" by an interaction operand, get its owner (CombinedFragment)

+						InteractionOperand operand = msgOcc.getEnclosingOperand();

+						CombinedFragment combfrag = (CombinedFragment) operand.getOwner();

+						//add it to the elem list but only one (otherwise the "alt" fragment will do a mess)

+						if(!orderedElemList.contains(combfrag)){

+							orderedElemList.add(combfrag);

+						}

+					}

+				}

+			}

+		}

+		

+		//finally set the delays in their right position...

+		//delays can be put in between msg or fragments. 

+		//the modeller should always set exactly one constrained element.

+		for (DurationConstraint durConstr : durConstrList) {

+			EList<Element> constrElems = durConstr.getConstrainedElements();

+			if(constrElems.size() == 0){

+				//TODO log an error/warning

+			} else{

+				//we'll consider the delay BEFORE the (first) constrained element

+				Element constrElem = constrElems.get(0);

+				if(orderedElemList.contains(constrElem)){

+					int index = orderedElemList.indexOf(constrElem);

+					orderedElemList.add(index, (NamedElement) durConstr);

+				}

+			}

+		}

+		

+		return orderedElemList;

+	}

+

+	private static List<DurationConstraint> getDurConstrList(Interaction scenario) {

+		List<DurationConstraint> durConstrList = new ArrayList<>(); 

+		

+		EList<Constraint> rules = scenario.getOwnedRules();

+		for (Constraint constraint : rules) {

+			if(constraint instanceof DurationConstraint){

+				durConstrList.add((DurationConstraint) constraint);

+			}

+		}

+		return durConstrList;

+	}

+	

+	private List<MessageOccurrenceSpecification> getMsgOccSpecs(Interaction scenario) {

+		

+		List<MessageOccurrenceSpecification> msgOccList = new ArrayList<>(); 

+

+		EList<InteractionFragment> fragments = scenario.getFragments();

+

+		for (InteractionFragment fragment : fragments) {

+			//fragments (opt/loop)

+			if(fragment instanceof CombinedFragment){

+				CombinedFragment combFrag = (CombinedFragment) fragment;

+				EList<InteractionOperand> operands = combFrag.getOperands();

+				//inner fragments

+				for (InteractionOperand intOp : operands) {

+					for (InteractionFragment intOpFrag : intOp.getFragments()) {

+						if(intOpFrag instanceof MessageOccurrenceSpecification){

+							msgOccList.add((MessageOccurrenceSpecification) intOpFrag);

+						}

+					}

+				}	

+			}

+			//fragments (message occurrence)

+			if(fragment instanceof MessageOccurrenceSpecification){

+				msgOccList.add((MessageOccurrenceSpecification) fragment);

+			}

+		}

+		return msgOccList;

+	}

+	

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/utils/TransformationUtil.java b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/utils/TransformationUtil.java
new file mode 100644
index 0000000..b94768a
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/src/org/polarsys/chess/mobius/utils/TransformationUtil.java
@@ -0,0 +1,863 @@
+/*********************************************************************

+* Copyright (c) 2019 Intecs Solutions SpA

+*

+* This program and the accompanying materials are made

+* available under the terms of the Eclipse Public License 2.0

+* which is available at https://www.eclipse.org/legal/epl-2.0/

+*

+* SPDX-License-Identifier: EPL-2.0

+*

+* Contributors: 

+*   Intecs Solutions - Initial API and implementation

+*   

+**********************************************************************/

+

+package org.polarsys.chess.mobius.utils;

+

+import java.util.ArrayList;

+import java.util.HashMap;

+import java.util.HashSet;

+import java.util.List;

+import java.util.Map;

+import java.util.Set;

+

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.m2m.qvt.oml.blackbox.java.Operation;

+import org.eclipse.m2m.qvt.oml.blackbox.java.Operation.Kind;

+import org.eclipse.m2m.qvt.oml.util.IContext;

+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource;

+import org.eclipse.uml2.uml.Classifier;

+import org.eclipse.uml2.uml.CombinedFragment;

+import org.eclipse.uml2.uml.Constraint;

+import org.eclipse.uml2.uml.Duration;

+import org.eclipse.uml2.uml.DurationConstraint;

+import org.eclipse.uml2.uml.DurationInterval;

+import org.eclipse.uml2.uml.Element;

+import org.eclipse.uml2.uml.GeneralOrdering;

+import org.eclipse.uml2.uml.Interaction;

+import org.eclipse.uml2.uml.InteractionFragment;

+import org.eclipse.uml2.uml.InteractionOperand;

+import org.eclipse.uml2.uml.Lifeline;

+import org.eclipse.uml2.uml.LiteralInteger;

+import org.eclipse.uml2.uml.LiteralString;

+import org.eclipse.uml2.uml.Message;

+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;

+import org.eclipse.uml2.uml.Model;

+import org.eclipse.uml2.uml.NamedElement;

+import org.eclipse.uml2.uml.Port;

+import org.eclipse.uml2.uml.Property;

+import org.eclipse.uml2.uml.Slot;

+import org.eclipse.uml2.uml.State;

+import org.eclipse.uml2.uml.StateMachine;

+import org.eclipse.uml2.uml.Stereotype;

+import org.eclipse.uml2.uml.Transition;

+import org.eclipse.uml2.uml.ValueSpecification;

+import org.eclipse.uml2.uml.Vertex;

+import org.polarsys.chess.chessmlprofile.Core.CHGaResourcePlatform;

+import org.polarsys.chess.chessmlprofile.Dependability.DependableComponent.ErrorModelBehavior;

+import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis;

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack;

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario;

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ErrorModel;

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.InternalFault;

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability;

+import org.polarsys.chess.mobius.model.SAN.Node;

+

+public class TransformationUtil {

+	

+	private static final int OFFSET = 15;

+	private static MobiusComponents mobiusComponents;

+	private static List<Message> attacks;

+	private static Map<Classifier, List<Message>> vulnerableComponents;

+	private static List<Interaction> scenarios;

+	

+	//used to store global variables in Mobius

+	private List<String> shortGlobalVars = new ArrayList<>();

+	

+	//used for sequence diagrams (sequence of messages/fragments/delays)

+	private static String startPlace;

+	private static Integer startX;

+	private static Integer startY;

+	

+	//used to store the "normal" state of an atomic block error model

+	private static Integer okX;

+	private static Integer okY;

+	

+	//use for "else" case in alt fragments

+	private static List<String> predicateList = new ArrayList<>();

+	

+	//several stereotypes qualified names

+	private static String BLOCKQN = "SysML::Blocks::Block";

+	private static String ERRORMODELBEHAVIORQN = "CHESS::Dependability::DependableComponent::ErrorModelBehavior";

+	private static String NORMALSTATEQN = "CHESS::Dependability::ThreatsPropagation::NormalState";

+	private static String ERRORSTATEQN = "CHESS::Dependability::ThreatsPropagation::ErrorState";

+	private static String COMPROMISEDSTATEQN = "CHESS::Dependability::ThreatsPropagation::DegradedState";

+	private static String INTERNALFAULTQN = "CHESS::Dependability::ThreatsPropagation::InternalFault";

+	private static String ATTACKQN = "CHESS::Dependability::ThreatsPropagation::Attack";

+	private static String ATTACKSCENARIOQN = "CHESS::Dependability::ThreatsPropagation::AttackScenario";

+	private static String CYBERSECURITYANALYSISQN = "CHESS::Dependability::StateBased::StateBasedAnalysis::CyberSecurityAnalysis";

+

+	public static MobiusComponents getMobiusComponenents(CHGaResourcePlatform platform) {

+		

+		Classifier root = platform.getBase_InstanceSpecification().getClassifiers().get(0);

+		MobiusComponents mobiusComponents = new MobiusComponents();

+		if (platform.getResources().size() > 0){

+			for (Resource res : platform.getResources()) {

+				if(res.getBase_InstanceSpecification() != null){

+					getMobiusComponents(res, mobiusComponents);

+				}

+			}

+			mobiusComponents.getComposedBlocks().add(root);

+//			System.out.println("ROOT block: " + root.getName() + " is COMPOSED");

+		}else{

+//			System.out.println("ROOT block: " + root.getName() + " is ATOMIC");

+			mobiusComponents.getAtomicBlocks().add(root);

+		}

+		//save mobiusComponents for Acceleo

+		TransformationUtil.mobiusComponents = mobiusComponents;

+		return mobiusComponents;

+	}

+

+	private static MobiusComponents getMobiusComponents(Resource res, MobiusComponents mobiusComponents) {

+		

+		//instances of connector have no classifier

+		if (res.getBase_InstanceSpecification().getClassifiers().isEmpty())

+			return null;

+		

+		Classifier block = res.getBase_InstanceSpecification().getClassifiers().get(0);

+		//check slots

+		EList<Slot> slots = res.getBase_InstanceSpecification().getSlots();

+		if(slots.size() > 0){

+			boolean composed = false;

+			for (Slot slot : slots) {

+				if(!(slot.getDefiningFeature() instanceof Port)){

+					//at least one slots which is not a Port

+					composed = true;

+				}

+			}

+			if(composed){

+				//at least one slots which is not a Port

+//				System.out.println("Block " + block.getName() + " is COMPOSED");

+				

+				//TODO: currently if a component has errorModel attached than it is considered terminal, we should also support internal components with error model

+				if (getErrorModelStateMachine(block) != null){

+					mobiusComponents.getAtomicBlocks().add(block);

+				}else{

+				mobiusComponents.getComposedBlocks().add(block);

+				}

+			}else{

+				//no slots which are not Ports

+//				System.out.println("Block " + block.getName() + " is ATOMIC");

+				if (getErrorModelStateMachine(block) != null)

+					mobiusComponents.getAtomicBlocks().add(block);

+			}

+			

+		}else{

+			//if the instanceSpecification has no slots, its block is Atomic

+//			System.out.println("Block " + block.getName() + " is ATOMIC");

+			if (getErrorModelStateMachine(block) != null)

+				mobiusComponents.getAtomicBlocks().add(block);

+		}

+		return null;

+	}

+

+	public List<Classifier> getAtomicBlocks(){

+		return TransformationUtil.mobiusComponents.getAtomicBlocks();

+	}

+

+	public List<Classifier> getComposedBlocks(){

+		return TransformationUtil.mobiusComponents.getComposedBlocks();

+	}

+	

+	public static List<Interaction> getModelAttackScenarios(Model model){

+		List<Interaction> result = new ArrayList<>();

+		for(Element elem : model.allOwnedElements()) {

+			if(elem instanceof Interaction && elem.getAppliedStereotype(ATTACKSCENARIOQN) != null){

+				Interaction scenario = (Interaction) elem;

+				//an Interaction containing at least one attack is an attack scenario

+				boolean test = false;

+				for(Message msg : scenario.getMessages()){

+					if(msg.getAppliedStereotype(ATTACKQN) != null){

+						test = true;

+					}

+				}

+				if(test){

+					result.add(scenario);

+				}

+			}

+		}

+		//save attacks for Acceleo

+		TransformationUtil.scenarios = result;

+		

+		return result;

+	}

+	

+	public List<Interaction> getAttackScenarios(){

+		return TransformationUtil.scenarios;

+	}

+	

+	public static List<Message> getModelAttacks(Model model){

+		List<Message> result = new ArrayList<>();

+		//attacks are Messages of an Interaction stereotyped as "Attack"

+		for(Element elem : model.allOwnedElements()) {

+			if(elem instanceof Interaction){

+				Interaction scenario = (Interaction) elem;

+				for(Message msg : getAttacksForScenario(scenario)){

+					result.add(msg);

+				}

+			}

+		}

+		//save attacks for Acceleo

+		TransformationUtil.attacks = result;

+		

+		return result;

+	}

+	

+	public List<Message> getAttacks(){

+		return TransformationUtil.attacks;

+	}

+	

+	public List<String> getAllBlockAttacks(Classifier block){

+		List<String> result = new ArrayList<>();

+		//get all the attacks

+		for(Message msg : TransformationUtil.attacks){

+			Stereotype stereo = msg.getAppliedStereotype(ATTACKQN);

+			Attack attack = (Attack) msg.getStereotypeApplication(stereo);

+			//find those who exploit a vulnerability of the block

+			if(attack.getVulnerability() != null){

+				if(block.getOwnedElements().contains(attack.getVulnerability().getBase_Port())){

+					result.add(msg.getName());

+				}

+			}

+		}

+		return result;

+	}

+	

+	public List<String> getBlockAttacks(Classifier block, String scenarioName){

+		List<String> result = new ArrayList<>();

+		//get all the attacks

+		for(Message msg : TransformationUtil.attacks){

+			//get only those of the given scenario

+			if(msg.getInteraction().getName().equals(scenarioName)){

+				Stereotype stereo = msg.getAppliedStereotype(ATTACKQN);

+				Attack attack = (Attack) msg.getStereotypeApplication(stereo);

+				//get those who exploit a vulnerability of the given block

+				if(attack.getVulnerability() != null){

+					if(block.getOwnedElements().contains(attack.getVulnerability().getBase_Port())){

+						result.add(msg.getName());

+					}

+				}

+			}

+		}

+		return result;

+	}

+	

+	

+	public List<String> getBlockAttackScenarios(Classifier block){

+		List<String> result = new ArrayList<>();

+		//get all the interactions

+		for(Interaction scenario : TransformationUtil.scenarios){

+			//check if the block is represented by any lifeline of the current scenario

+			EList<Lifeline> lifelines = scenario.getLifelines();

+			for (Lifeline lifeline : lifelines) {

+				if (lifeline.getRepresents().getType().equals(block)){

+					result.add(scenario.getName());

+				}

+			}

+		}

+		return result;

+	}

+	

+	//TODO review this method to reflect the new return type;

+	public static Map<Classifier, List<Message>> getVulnerableComponents(Model model) {

+		Map<Classifier, List<Message>> result = new HashMap<>();

+		for(Interaction scenario :TransformationUtil.scenarios){

+			EList<Lifeline> lifelines = scenario.getLifelines();

+			for(Message msg : getAttacksForScenario(scenario)){

+				//we need to get this message's receiver, i.e the component vulnerable to the attack

+				for (Lifeline lifeline : lifelines) {

+					if (lifeline.getCoveredBys().contains(msg.getReceiveEvent())) {

+						if (lifeline.getRepresents().getType() instanceof Classifier){

+							Classifier comp = (Classifier) lifeline.getRepresents().getType();

+							List<Message> msgList = result.get(comp);

+							if(msgList == null){

+								msgList = new ArrayList<>();

+							}

+							msgList.add(msg);

+							result.put(comp, msgList);

+						}

+					}

+				}

+			}

+		}

+		

+		//save VulnerableComponents for Acceleo

+		TransformationUtil.vulnerableComponents = result;

+		

+		return result;

+	}

+	

+	private static List<Message> getAttacksForScenario(Interaction scenario) {

+		List<Message> result = new ArrayList<>();

+		// get all the attacks in the given scenario (at any depth level)

+		for (Element elem : scenario.allOwnedElements()) {

+			if(elem.getAppliedStereotype(ATTACKQN) != null){

+				result.add((Message) elem);

+			}

+		}

+		return result;

+	}

+

+	public Set<Classifier> getVulnerableComponents(){

+		return TransformationUtil.vulnerableComponents.keySet();

+	}

+	

+

+	public Classifier getBlockFromQN(List<Classifier> blocks, String qualifiedName){	

+		Classifier result = null;

+		for(Classifier cl : blocks){

+			if(cl.getQualifiedName().equals(qualifiedName)){

+				result = cl;

+			}

+		}

+		return result;

+	}

+	

+	public Node getNodeFromQN(List<Node> nodes, String qualifiedName){	

+		Node result = null;

+		for(Node cl : nodes){

+			if(cl.getName().equals(qualifiedName)){

+				result = cl;

+			}

+		}

+		return result;

+	}

+	

+	public State getNormalState(Classifier block) {

+		State result = null;

+		for (State state : getPlaces(block)) {

+			if(state.getAppliedStereotype(NORMALSTATEQN) != null){

+				result = state;

+			}

+		}

+		return result;

+	}

+	

+	public List<State> getPlaces(Classifier block){

+		List<State> result = new ArrayList<>();

+		StateMachine sm = getErrorModelStateMachine(block);

+		if(sm != null){

+			EList<Vertex> vertices = sm.getRegions().get(0).getSubvertices();

+			for (Vertex vertex : vertices) {

+				if(vertex instanceof State){

+					if(vertex.getAppliedStereotype(NORMALSTATEQN) != null){

+						result.add((State) vertex);

+					}else if(vertex.getAppliedStereotype(ERRORSTATEQN) != null){

+						result.add((State) vertex);

+					}else if(vertex.getAppliedStereotype(COMPROMISEDSTATEQN) != null){

+						result.add((State) vertex);

+					}

+				}

+			}

+		}

+		return result;

+	}

+	

+	public List<Transition> getActivities(Classifier block){

+		List<Transition> result = new ArrayList<>();

+		StateMachine sm = getErrorModelStateMachine(block);

+		if(sm != null){

+			//TODO

+			EList<Transition> transitions = sm.getRegions().get(0).getTransitions();

+			for (Transition transition : transitions) {

+				if(transition.getAppliedStereotype(INTERNALFAULTQN) != null){

+					result.add(transition);

+				}else if(transition.getAppliedStereotype(ATTACKQN) != null){

+					result.add(transition);

+				}

+//				else if(transition.getAppliedStereotype(REPAIRQN) != null){

+//					result.add(transition);

+//				}

+			}

+		}

+		return result;

+	}

+	

+	private static StateMachine getErrorModelStateMachine(Classifier block){

+		StateMachine sm =  null;

+		//block should be stereotyped as ErrorModelBehavior

+		Stereotype stereo = block.getAppliedStereotype(ERRORMODELBEHAVIORQN);

+		ErrorModelBehavior behavior = (ErrorModelBehavior) block.getStereotypeApplication(stereo);

+		//get the first ErrorModel (TODO: what to do with multiple ErrorModels?)

+		if(behavior!= null && behavior.getErrorModel().size() > 0){

+			ErrorModel errorModel = behavior.getErrorModel().get(0);

+			sm = errorModel.getBase_StateMachine();

+		}

+		return sm;

+	}

+	

+	public String getRate(Transition tr){

+		String rate = "";

+		Stereotype stereo = tr.getAppliedStereotype(INTERNALFAULTQN);

+		if(stereo != null){

+			InternalFault intF = (InternalFault) tr.getStereotypeApplication(stereo);

+			if (intF.getOccurrence() != null){

+				rate = intF.getOccurrence();

+			}

+		}

+		return rate;

+	}

+	

+	public List<Classifier> getSubsystems(Classifier parent){

+		List<Classifier> result = new ArrayList<>();

+		for(Element elem : parent.getOwnedElements()){

+			if (elem instanceof Property && !(elem instanceof Port)){

+				Property prop = (Property) elem;

+				if(prop.getType() instanceof Classifier){

+					Classifier cl = (Classifier) prop.getType();

+					if(prop.getType().getAppliedStereotype(BLOCKQN) != null){

+						result.add(cl);

+					}	

+				}

+			}

+		}

+		return result;

+	}

+	

+	public boolean isReplicated(Classifier block, Classifier parent){

+		boolean result = false;

+		for(Element elem : parent.getOwnedElements()){

+			if (elem instanceof Property && !(elem instanceof Port)){

+				Property prop = (Property) elem;

+				if(prop.getType() instanceof Classifier){

+					Classifier cl = (Classifier) prop.getType();

+					if (cl.getQualifiedName().equals(block.getQualifiedName())){

+						//if multiplicity's upper bound is greater than 1 or equal to -1(*)

+//						System.out.println(prop.getName() + " [" + prop.getLower() + "..." + prop.getUpper() + "]");

+						if(prop.getUpper() > 1 || prop.getUpper() == -1){

+							result = true;

+						}

+					}

+				}

+			}

+		}

+		return result;

+	}

+	

+	//probably not needed

+	public String getReplication(Classifier block, Classifier parent){

+		String result = "";

+		for(Element elem : parent.getOwnedElements()){

+			if (elem instanceof Property && !(elem instanceof Port)){

+				Property prop = (Property) elem;

+				if(prop.getType() instanceof Classifier){

+					Classifier cl = (Classifier) prop.getType();

+					if (cl.getQualifiedName().equals(block.getQualifiedName())){

+						//TODO: work in progress, at the moment we replicate only if multiplicity is a constant > 1

+//						System.out.println(prop.getName() + " [" + prop.getLower() + "..." + prop.getUpper() + "]");

+						if(prop.getLower() == prop.getUpper() && prop.getUpper() > 1){

+							result = Integer.toString(prop.getUpper());

+						}

+					}

+				}

+			}

+		}

+		return result;

+	}

+	

+	public Set<String> getEmptyStringSet() {

+		return new HashSet<String>();

+	}

+	

+	public void addToGlobalVars(String name, Set<String> globalvars){

+		if(!name.startsWith("1.0")){

+			globalvars.add(name);

+		}

+	}

+	

+	//returns the names of the attack messages associated (through vulnerability) to transition

+	public List<String> getAttackSuccName(Transition tr){

+		List<String> result = new ArrayList<>();

+		String name = "";

+		Stereotype stereo = tr.getAppliedStereotype(ATTACKQN);

+		Attack attack = (Attack) tr.getStereotypeApplication(stereo);

+		Vulnerability vuln = attack.getVulnerability();

+		if(vuln != null){

+			for(Message msg : getModelAttacks(tr.getModel())){

+				stereo = msg.getAppliedStereotype(ATTACKQN);

+				Attack msgAttack = (Attack) msg.getStereotypeApplication(stereo);

+				if(msgAttack.getVulnerability() != null && msgAttack.getVulnerability().equals(vuln)){

+					name = msgAttack.getBase_Message().getName();

+//					name += "_success";

+					result.add(name);

+				}

+			}

+		}

+		return result;

+	}

+	

+	public Interaction getScenario(Model model, String scenarioName) {

+		Interaction scenario = null;

+		for (Interaction interaction : scenarios) {

+			if(interaction.getName().equals(scenarioName)){

+				scenario = interaction;

+			}

+		}

+		return scenario;

+	}

+	

+	@Operation(kind = Kind.OPERATION, contextual = true, withExecutionContext = true)

+	public static void setCeiling2(IContext context,

+			org.eclipse.uml2.uml.Class self, String ceiling) {

+		

+	}

+	

+	

+

+public List<NamedElement> getOrderedAttacksAndFragments(Interaction scenario) {

+		

+		//duration constraints List

+		List<DurationConstraint> durConstrList = getDurConstrList(scenario);

+		

+		//fragments (message occurrence) List

+		List<MessageOccurrenceSpecification> msgOccList = getMsgOccSpecs(scenario); 

+

+		//general ordering list

+		List<GeneralOrdering> genOrderList = new ArrayList<>(); 

+		

+		for (MessageOccurrenceSpecification msgOcc : msgOccList) {

+			//general ordering inside message occurrence fragment

+			for (GeneralOrdering order : msgOcc.getGeneralOrderings()) {

+				genOrderList.add(order);

+			}

+		}

+		//general order at interaction (scenario) level, if any

+		for (GeneralOrdering order : scenario.getGeneralOrderings()) {

+			genOrderList.add(order);

+		}

+		

+		//order the messages (order based on GeneralOrdering)

+		List<Message> orderedMsgList = new ArrayList<>();

+		//TODO: we might need to review this code for unusual GeneralOrdering modeling

+		boolean start = true;

+		for (GeneralOrdering order : genOrderList) {

+			Message beforeMsg, afterMsg;

+			beforeMsg = ((MessageOccurrenceSpecification) order.getBefore()).getMessage();

+			afterMsg = ((MessageOccurrenceSpecification) order.getAfter()).getMessage();

+			if(start){

+				orderedMsgList.add(beforeMsg);

+				if(!beforeMsg.equals(afterMsg)){

+					orderedMsgList.add(afterMsg);

+				}

+				start = false;

+			}else{

+				if(orderedMsgList.contains(beforeMsg) && !orderedMsgList.contains(afterMsg)){

+					orderedMsgList.add(afterMsg);

+				}

+				if(orderedMsgList.contains(afterMsg) && !orderedMsgList.contains(beforeMsg)){

+					orderedMsgList.add(0, beforeMsg);

+				}

+			}

+		}

+		

+		//not using general ordering of messages is NOT recommended.

+		//if not used, as a workaround, we simply get the messages

+		//TODO if the user put some kind of alphanumeric ordering (0,1,2...) we could use it.

+		if(orderedMsgList.isEmpty()){

+			orderedMsgList.addAll(scenario.getMessages());

+		}

+		

+		//the real ordered list of elements ;)

+		List<NamedElement> orderedElemList = new ArrayList<>();

+		

+		//put messages (if owned by the interaction) or the CombinedFragment who owns it.

+		for (Message message : orderedMsgList) {

+			if(message.getAppliedStereotype(ATTACKQN) != null){

+				//get message "owner" (interaction/combined fragment)

+				if(message.getSendEvent() instanceof MessageOccurrenceSpecification){

+					MessageOccurrenceSpecification msgOcc = (MessageOccurrenceSpecification) message.getSendEvent();

+					if(msgOcc.getEnclosingInteraction() != null){

+						//message is "owned" directly by the interaction -> simple attack

+						orderedElemList.add(message);

+					}else if (msgOcc.getEnclosingOperand() != null){

+						//message is "owned" by an interaction operand, get its owner (CombinedFragment)

+						InteractionOperand operand = msgOcc.getEnclosingOperand();

+						CombinedFragment combfrag = (CombinedFragment) operand.getOwner();

+						//add it to the elem list but only one (otherwise the "alt" fragment will do a mess)

+						if(!orderedElemList.contains(combfrag)){

+							orderedElemList.add(combfrag);

+						}

+					}

+				}

+			}

+		}

+		

+		//finally set the delays in their right position...

+		//delays can be put in between msg or fragments. 

+		//the modeller should always set exactly one constrained element.

+		for (DurationConstraint durConstr : durConstrList) {

+			EList<Element> constrElems = durConstr.getConstrainedElements();

+			if(constrElems.size() == 0){

+				//TODO log an error/warning

+			} else{

+				//we'll consider the delay BEFORE the (first) constrained element

+				Element constrElem = constrElems.get(0);

+				if(orderedElemList.contains(constrElem)){

+					int index = orderedElemList.indexOf(constrElem);

+					orderedElemList.add(index, (NamedElement) durConstr);

+				}

+			}

+		}

+		

+		return orderedElemList;

+	}

+

+	private List<MessageOccurrenceSpecification> getMsgOccSpecs(Interaction scenario) {

+		

+		List<MessageOccurrenceSpecification> msgOccList = new ArrayList<>(); 

+

+		EList<InteractionFragment> fragments = scenario.getFragments();

+

+		for (InteractionFragment fragment : fragments) {

+			//fragments (opt/loop)

+			if(fragment instanceof CombinedFragment){

+				CombinedFragment combFrag = (CombinedFragment) fragment;

+				EList<InteractionOperand> operands = combFrag.getOperands();

+				//inner fragments

+				for (InteractionOperand intOp : operands) {

+					for (InteractionFragment intOpFrag : intOp.getFragments()) {

+						if(intOpFrag instanceof MessageOccurrenceSpecification){

+							msgOccList.add((MessageOccurrenceSpecification) intOpFrag);

+						}

+					}

+				}	

+			}

+			//fragments (message occurrence)

+			if(fragment instanceof MessageOccurrenceSpecification){

+				msgOccList.add((MessageOccurrenceSpecification) fragment);

+			}

+		}

+		return msgOccList;

+	}

+	

+	private static List<DurationConstraint> getDurConstrList(Interaction scenario) {

+		List<DurationConstraint> durConstrList = new ArrayList<>(); 

+		

+		EList<Constraint> rules = scenario.getOwnedRules();

+		for (Constraint constraint : rules) {

+			if(constraint instanceof DurationConstraint){

+				durConstrList.add((DurationConstraint) constraint);

+			}

+		}

+		return durConstrList;

+	}

+	

+	public static CombinedFragment getCombinedFragment(Message message){

+		CombinedFragment result = null;

+		if(message.getSendEvent() instanceof MessageOccurrenceSpecification){

+			MessageOccurrenceSpecification msgOcc = (MessageOccurrenceSpecification) message.getSendEvent();

+			if (msgOcc.getEnclosingOperand() != null){

+				InteractionOperand operand = msgOcc.getEnclosingOperand();

+				result = (CombinedFragment) operand.getOwner();

+			}

+		}

+		return result;

+	}

+	

+	public static String getDelay(DurationConstraint constraint){

+		String result = "delay";

+		DurationConstraint duration = (DurationConstraint) constraint;

+		DurationInterval durInt = (DurationInterval) duration.getSpecification();

+		// min/max duration interval

+		LiteralString litStrMin, litStrMax;

+//		LiteralInteger litIntMin, litIntMax;

+		Duration durMin = (Duration) durInt.getMin();

+		Duration durMax = (Duration) durInt.getMax();

+		if(durMin.getExpr() instanceof LiteralString && durMax.getExpr() instanceof LiteralString){

+			litStrMin = (LiteralString) durMin.getExpr();

+			litStrMax = (LiteralString) durMin.getExpr();

+			if(litStrMin.getValue().equals(litStrMax.getValue())){

+				result = litStrMin.getValue();

+			}

+		}

+//		else if(durMin.getExpr() instanceof LiteralInteger && durMax.getExpr() instanceof LiteralInteger){

+//			litIntMin = (LiteralInteger) durMin.getExpr();

+//			litIntMax = (LiteralInteger) durMin.getExpr();

+//			if(litIntMin.getValue() == (litIntMax.getValue())){

+//				result = Integer.toString(litIntMin.getValue());

+//			}

+//		}

+		return result;

+	}

+	

+	public String getAttackScenarioFrequency(Model model, String scenarioName) {

+		String result = "";

+		for (Interaction scenario : scenarios) {

+			if(scenario.getName().equals(scenarioName)){

+				Stereotype stereo = scenario.getAppliedStereotype(ATTACKSCENARIOQN);

+				AttackScenario attackScenario = (AttackScenario) scenario.getStereotypeApplication(stereo);

+				String freq = attackScenario.getFrequency();

+				if(freq != null && !freq.isEmpty()){

+					result = freq;

+				}

+			}

+		}

+		return result;

+	}

+	

+	public String getAttackScenarioProbSuccess(Model model, String scenarioName) {

+		String result = "";

+		for (Interaction scenario : scenarios) {

+			if(scenario.getName().equals(scenarioName)){

+				Stereotype stereo = scenario.getAppliedStereotype(ATTACKSCENARIOQN);

+				AttackScenario attackScenario = (AttackScenario) scenario.getStereotypeApplication(stereo);

+				String prob = attackScenario.getProbSuccess();

+				if(prob != null && !prob.isEmpty()){

+					result = prob;

+				}

+			}

+		}

+		return result;

+	}

+	

+	public String getAttackScenarioProbUnsuccess(Model model, String probSuccess) {

+		String result = "";

+		double prob = Double.parseDouble(probSuccess);

+		double prob2 = 1.0 - prob;

+		result = Double.toString(prob2);

+		return result;

+	}

+	

+	public String getPredicate(InteractionOperand operand) {

+		String result = operand.getName();

+		ValueSpecification valSpec = operand.getGuard().getSpecification();

+		if(valSpec instanceof LiteralString){

+			LiteralString litStr = (LiteralString) valSpec;

+			if(litStr.getValue().equalsIgnoreCase("else") && predicateList.size() > 0 ){

+				result = "1.0 - (";

+				boolean first = true;

+				for (String predicate : predicateList) {

+					if(first){

+						result += predicate;

+						first = false;

+					}else{

+						result += " + " + predicate;

+					}

+				}

+				result += ')';

+			}else{

+				result = litStr.getValue();

+				//add it to current predicate list:

+				predicateList.add(result);

+			}

+		}		

+		return result;

+	}

+	

+	//to be called for each alt/opt fragment after computing predicates and optional else case

+	public void resetPredicateList(){

+		predicateList.clear();

+	}

+	

+	//this assumes that index starts at 0

+	public Integer getAltOffset(Integer index, Integer size){

+		Integer result = (index +1 - size/2)*OFFSET; //size is even

+		if(size % 2 != 0){ //size is odd

+			result = (index - size/2)*OFFSET;

+		}

+//		System.out.println(result);

+		return result;

+	}

+	

+	public Message getOperandAttack(InteractionOperand operand){

+		Message result = null;

+		for (Message message : attacks) {

+			if(message.getSendEvent() instanceof MessageOccurrenceSpecification){

+				MessageOccurrenceSpecification msgOcc = (MessageOccurrenceSpecification) message.getSendEvent();

+				if (msgOcc.getEnclosingOperand() != null && msgOcc.getEnclosingOperand().equals(operand)){

+					result = message;

+				}

+			}

+		}

+		return result;

+	}

+	

+	public String getLoopCounter(InteractionOperand operand) {

+		String result = "counter";

+		//maxint can be literal string or int

+		ValueSpecification valSpec = operand.getGuard().getMaxint();

+		if(valSpec instanceof LiteralString){

+			LiteralString litStr = (LiteralString) valSpec;

+			result = litStr.getValue();

+		}else if(valSpec instanceof LiteralInteger){

+			LiteralInteger litInt = (LiteralInteger) valSpec;

+			result = Integer.toString(litInt.getValue());

+		}

+		//minint is expected to be = 1

+		//moreover: the loop counter should be a short variable in Mobius

+		if(!shortGlobalVars.contains(result)){

+			shortGlobalVars.add(result);

+		}

+		

+		return result;

+	}

+

+	public static String getStartPlace() {

+		return startPlace;

+	}

+

+	public static void setStartPlace(String startPlace) {

+		TransformationUtil.startPlace = startPlace;

+	}

+

+	public static Integer getStartX() {

+		return startX;

+	}

+

+	public static void setStartX(Integer startX) {

+		TransformationUtil.startX = startX;

+	}

+

+	public static Integer getStartY() {

+		return startY;

+	}

+

+	public static void setStartY(Integer startY) {

+		TransformationUtil.startY = startY;

+	}

+	

+	public String getVarType(Model model, String globalvar) {

+		String result = "double";

+		if(shortGlobalVars.contains(globalvar)){

+			result = "short";

+		}

+		return result;

+	}

+

+	public static Integer getOkX() {

+		return okX;

+	}

+

+	public static void setOkX(Integer okX) {

+		TransformationUtil.okX = okX;

+	}

+

+	public static Integer getOkY() {

+		return okY;

+	}

+

+	public static void setOkY(Integer okY) {

+		TransformationUtil.okY = okY;

+	}

+	

+	//returns the names of the attack messages associated (through vulnerability) to transition

+	public List<String> getRewards(Classifier analysisContext){

+		Stereotype stereo = analysisContext.getAppliedStereotype(CYBERSECURITYANALYSISQN);

+		SANAnalysis csa = (SANAnalysis) analysisContext.getStereotypeApplication(stereo);

+		List<String> result = new ArrayList<>();

+		String conditions = csa.getCondition();

+		//TODO current assumption: just one reference to <atomic_component_instance_path>.<errorStateName>

+		result.add(conditions);

+		return result;

+	}

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/RewardTemplate.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/RewardTemplate.xml
new file mode 100644
index 0000000..edf9d0a
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/RewardTemplate.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="RewardTemplate" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/workspace_san3"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="RewardTemplate">
+        <java classname="org.polarsys.chess.mobius.templates.RewardTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="RewardTemplate.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.RewardTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/RewardTemplateTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/RewardTemplateTarget.xml
new file mode 100644
index 0000000..fb860c9
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/RewardTemplateTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="RewardTemplateSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/RewardTemplate.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="RewardTemplateSample" description="Generate files in 'TARGET'">
+		<antcall target="RewardTemplate" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentRewardTemplate.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentRewardTemplate.xml
new file mode 100644
index 0000000..69441b2
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentRewardTemplate.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="atomicComponentRewardTemplate" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration_2"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="atomicComponentRewardTemplate">
+        <java classname="org.polarsys.chess.mobius.templates.AtomicComponentRewardTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="atomicComponentRewardTemplate.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.AtomicComponentRewardTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate.xml
new file mode 100644
index 0000000..618c9ab
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="atomicComponentTemplate" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration_3"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="atomicComponentTemplate">
+        <java classname="org.polarsys.chess.mobius.templates.AtomicComponentTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="atomicComponentTemplate.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.AtomicComponentTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplateTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplateTarget.xml
new file mode 100644
index 0000000..da1622b
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplateTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="atomicComponentTemplateSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/atomicComponentTemplate.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="atomicComponentTemplateSample" description="Generate files in 'TARGET'">
+		<antcall target="atomicComponentTemplate" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate_fromSANmodel.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate_fromSANmodel.xml
new file mode 100644
index 0000000..ffea269
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate_fromSANmodel.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="atomicComponentTemplate_fromSANmodel" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/workspace_san/org.eclipse.uml2.uml/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="atomicComponentTemplate_fromSANmodel">
+        <java classname="org.polarsys.chess.mobius.templates.AtomicComponentTemplate_fromSANmodel" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="atomicComponentTemplate_fromSANmodel.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.AtomicComponentTemplate_fromSANmodel" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate_sanmodel.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate_sanmodel.xml
new file mode 100644
index 0000000..c88ba22
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate_sanmodel.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="atomicComponentTemplate_sanmodel" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration_3"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="atomicComponentTemplate_sanmodel">
+        <java classname="org.polarsys.chess.mobius.templates.AtomicComponentTemplate_sanmodel" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="atomicComponentTemplate_sanmodel.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.AtomicComponentTemplate_sanmodel" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate_sanmodelTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate_sanmodelTarget.xml
new file mode 100644
index 0000000..f3c2329
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/atomicComponentTemplate_sanmodelTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="atomicComponentTemplate_sanmodelSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/atomicComponentTemplate_sanmodel.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="atomicComponentTemplate_sanmodelSample" description="Generate files in 'TARGET'">
+		<antcall target="atomicComponentTemplate_sanmodel" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/attackScenarioTemplate.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackScenarioTemplate.xml
new file mode 100644
index 0000000..2e95607
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackScenarioTemplate.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="AttackScenarioTemplate" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration_3"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="AttackScenarioTemplate">
+        <java classname="org.polarsys.chess.mobius.templates.AttackScenarioTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="AttackScenarioTemplate.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.AttackScenarioTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/attackScenarioTemplateTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackScenarioTemplateTarget.xml
new file mode 100644
index 0000000..303b743
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackScenarioTemplateTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="AttackScenarioTemplateSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/AttackScenarioTemplate.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="AttackScenarioTemplateSample" description="Generate files in 'TARGET'">
+		<antcall target="AttackScenarioTemplate" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/attackSimpleTemplate.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackSimpleTemplate.xml
new file mode 100644
index 0000000..d5310be
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackSimpleTemplate.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="attackSimpleTemplate" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../AQUAS/City/Eclipse"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../AQUAS/City/Workspace-aquas"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.0.0.201506111452.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201903150152.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="attackSimpleTemplate">
+        <java classname="org.polarsys.chess.mobius.templates.AttackSimpleTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="attackSimpleTemplate.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.AttackSimpleTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/attackSimpleTemplateTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackSimpleTemplateTarget.xml
new file mode 100644
index 0000000..85abf33
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackSimpleTemplateTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="attackSimpleTemplateSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/attackSimpleTemplate.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="attackSimpleTemplateSample" description="Generate files in 'TARGET'">
+		<antcall target="attackSimpleTemplate" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/attackTemplate.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackTemplate.xml
new file mode 100644
index 0000000..515f0b4
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackTemplate.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="attackTemplate" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../AQUAS/City/Eclipse"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../AQUAS/City/Workspace-aquas"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.0.0.201506111452.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201903150152.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="attackTemplate">
+        <java classname="org.polarsys.chess.mobius.templates.AttackTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="attackTemplate.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.AttackTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/attackTemplateTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackTemplateTarget.xml
new file mode 100644
index 0000000..d567d54
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/attackTemplateTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="attackTemplateSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/attackTemplate.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="attackTemplateSample" description="Generate files in 'TARGET'">
+		<antcall target="attackTemplate" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplate.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplate.xml
new file mode 100644
index 0000000..747b250
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplate.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="composedComponentTemplate" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration_3"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="composedComponentTemplate">
+        <java classname="org.polarsys.chess.mobius.templates.ComposedComponentTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="composedComponentTemplate.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.ComposedComponentTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplateTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplateTarget.xml
new file mode 100644
index 0000000..9865c14
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplateTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="composedComponentTemplateSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/composedComponentTemplate.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="composedComponentTemplateSample" description="Generate files in 'TARGET'">
+		<antcall target="composedComponentTemplate" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplate_sanmodel.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplate_sanmodel.xml
new file mode 100644
index 0000000..4fb7122
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplate_sanmodel.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="composedComponentTemplate_sanmodel" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration_3"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="composedComponentTemplate_sanmodel">
+        <java classname="org.polarsys.chess.mobius.templates.ComposedComponentTemplate_sanmodel" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="composedComponentTemplate_sanmodel.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.ComposedComponentTemplate_sanmodel" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplate_sanmodelTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplate_sanmodelTarget.xml
new file mode 100644
index 0000000..724a44e
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/composedComponentTemplate_sanmodelTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="composedComponentTemplate_sanmodelSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/composedComponentTemplate_sanmodel.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="composedComponentTemplate_sanmodelSample" description="Generate files in 'TARGET'">
+		<antcall target="composedComponentTemplate_sanmodel" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplate.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplate.xml
new file mode 100644
index 0000000..62521fa
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplate.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="projectFileTemplate" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration_3"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="projectFileTemplate">
+        <java classname="org.polarsys.chess.mobius.templates.ProjectFileTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="projectFileTemplate.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.ProjectFileTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplateTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplateTarget.xml
new file mode 100644
index 0000000..c852080
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplateTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="projectFileTemplateSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/projectFileTemplate.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="projectFileTemplateSample" description="Generate files in 'TARGET'">
+		<antcall target="projectFileTemplate" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplate_sanmodel.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplate_sanmodel.xml
new file mode 100644
index 0000000..90e4732
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplate_sanmodel.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="projectFileTemplate_sanmodel" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration_3"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="projectFileTemplate_sanmodel">
+        <java classname="org.polarsys.chess.mobius.templates.ProjectFileTemplate_sanmodel" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="projectFileTemplate_sanmodel.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.ProjectFileTemplate_sanmodel" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplate_sanmodelTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplate_sanmodelTarget.xml
new file mode 100644
index 0000000..6bb4aa6
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/projectFileTemplate_sanmodelTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="projectFileTemplate_sanmodelSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/projectFileTemplate_sanmodel.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="projectFileTemplate_sanmodelSample" description="Generate files in 'TARGET'">
+		<antcall target="projectFileTemplate_sanmodel" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/vulnerableComponentsTemplate.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/vulnerableComponentsTemplate.xml
new file mode 100644
index 0000000..7cb8182
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/vulnerableComponentsTemplate.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="vulnerableComponentsTemplate" name="org.polarsys.chess.mobius">
+    <property name="ECLIPSE_HOME" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/runtime-New_configuration_3"/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.mobius/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui_3.108.1.v20160929-1045.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface_3.12.2.v20170113-2113.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench_3.108.3.v20170216-1539.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.e4.ui.workbench3_0.13.100.v20160506-0759.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.12.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.6.0.v20160523-1914.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.4.0.v20160521-2033.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_5.2.3.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_2.1.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_2.0.0.v20170227-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.service_0.11.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.polarsys.chess.core_0.9.0.201812071049.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.editor_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.ui_1.3.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.tools_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.log_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.6.100.v20160223-2218.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.6.1.v20160815-1406.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_15.0.0.v201403281430.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding.observable_1.6.0.v20160511-1747.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sashwindows.di_1.2.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.transaction_1.9.0.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.edit_2.12.0.v20160526-0356.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160420-0247.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.8.0.201606071713.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.expressions_3.5.100.v20160418-1621.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.ide_3.12.3.v20170119-0935.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor.di_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core.sasheditor_2.0.0.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.widgets_2.0.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.databinding_1.6.0.v20160412-0910.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views.properties.tabbed_3.7.0.v20160310-0903.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.forms_3.7.1.v20161220-1635.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.views_3.8.102.v20170111-0801.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.services.labelprovider_1.2.1.201703080851.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.jface.text_3.11.2.v20170220-1911.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.text_3.6.0.v20160503-1849.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.6.6.201610060831.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.common_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.emf.util_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.cst.parser_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.4.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.project_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.m2m.qvt.oml.runtime_3.6.0.v20160606-1156.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.ui_1.8.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gef_3.11.0.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.workspace_1.5.1.201606071900.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui.services_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.common.ui_1.8.1.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.console_3.6.201.v20161107-0337.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ui.workbench.texteditor_3.10.1.v20160818-1626.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.team.core_3.8.0.v20160418-1534.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.type.core_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.gef.ui_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.8.0.201606071631.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.diagram.core_1.7.0.201606071959.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.debug.core_3.10.100.v20160419-1720.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="org.polarsys.chess.mobius.libraryclasspath.alljars">
+        <pathelement location="../org.polarsys.chess.mobius/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="org.polarsys.chess.mobius.classpath.alljars">
+        <path refid="org.polarsys.chess.mobius.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="vulnerableComponentsTemplate">
+        <java classname="org.polarsys.chess.mobius.templates.VulnerableComponentsTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="vulnerableComponentsTemplate.alljars">
+        <java classname="org.polarsys.chess.mobius.templates.VulnerableComponentsTemplate" classpathref="org.polarsys.chess.mobius.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/tasks/vulnerableComponentsTemplateTarget.xml b/plugins/mobius/org.polarsys.chess.mobius/tasks/vulnerableComponentsTemplateTarget.xml
new file mode 100644
index 0000000..eec845a
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/tasks/vulnerableComponentsTemplateTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="vulnerableComponentsTemplateSample" name="org.polarsys.chess.mobiusSample">
+	<import file="../../org.polarsys.chess.mobius/tasks/vulnerableComponentsTemplate.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="vulnerableComponentsTemplateSample" description="Generate files in 'TARGET'">
+		<antcall target="vulnerableComponentsTemplate" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>
diff --git a/plugins/mobius/org.polarsys.chess.mobius/transformations/CHESS2SAN.qvto b/plugins/mobius/org.polarsys.chess.mobius/transformations/CHESS2SAN.qvto
new file mode 100644
index 0000000..ec83220
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/transformations/CHESS2SAN.qvto
@@ -0,0 +1,2076 @@
+/*******************************************************************************

+ *               CHESS to SAN transformation

+ *

+ *               Copyright (C) 2019

+ *            			Intecs

+ *

+ *

+ *  All rights reserved. This program and the accompanying materials

+ *  are made available under the terms of the Eclipse Public License

+ *  v1.0 which accompanies this distribution, and is available at

+ *  http://www.eclipse.org/legal/epl-v10.html

+ *******************************************************************************/

+

+//import org.polarsys.CHESS.fla.transformations.utilities.blackboxlibrary;

+

+import CommonUtilities;

+import chess.SANJavaLib;

+

+modeltype CHESS uses chessmlprofile('http://CHESS');

+modeltype CHESSCore uses 'http://CHESS/Core';

+

+modeltype SAN uses 'http://www.polarsys.org/chess/SAN';

+

+modeltype UML uses 'http://www.eclipse.org/uml2/5.0.0/UML';

+modeltype MARTE uses "http://www.eclipse.org/papyrus/MARTE/1";

+modeltype SysML uses "http://www.eclipse.org/papyrus/0.7.0/SysML/PortAndFlows";

+//modeltype IM uses "http://if.dsi.unifi.it/Modeling/DIM";

+

+

+transformation CHESS2SAN(in source : CHESS, out target : SAN);

+

+// Qualified names of stereotypes

+property SANANALYSIS_STEREOTYPE = "CHESS::Dependability::StateBased::StateBasedAnalysis::SANAnalysis";

+property ERRORMODEL_STEREOTYPE ="CHESS::Dependability::ThreatsPropagation::ErrorModel";

+property NORMALSTATE_STEREOTYPE ="CHESS::Dependability::ThreatsPropagation::NormalState";

+property INTERNALFAULT_STEREOTYPE = "CHESS::Dependability::ThreatsPropagation::InternalFault";

+property INTERNALPROPAGATION_STEREOTYPE = "CHESS::Dependability::ThreatsPropagation::InternalPropagation";

+property FAILURE_STEREOTYPE = "CHESS::Dependability::ThreatsPropagation::Failure";

+property ATTACK_STEREOTYPE = "CHESS::Dependability::ThreatsPropagation::Attack";

+property REPAIR_STEREOTYPE = "CHESS::Dependability::StateBased::MaintenanceMonitoring::Repair";

+

+

+// Platform selected by user

+configuration property selectedPlatformQName : String;

+configuration property analysisContextQName : String;

+

+property model : Model;

+property rootComponent : Class;

+property rootComponentInstance : InstanceSpecification;

+property umlInstancesConnectors : Set(UML::InstanceSpecification) = Set{};		--Instances of connectors

+property umlAtomicInstances : Set(UML::InstanceSpecification) = Set{};		--Instances of terminal instances

+property instancePackage : Package;

+

+

+property sbaTransitions : Sequence(OclAny) = Sequence{CHESS::ThreatsPropagation::Failure, CHESS::ThreatsPropagation::InternalPropagation, CHESS::ThreatsPropagation::InternalFault};

+

+property attackScenarios : Set(UML::Interaction) = Set{};

+

+//assumption: <instance_name>.<state_name>

+property rewardStates : Set(String) = Set{};

+property analysisContext : Class;

+

+property OFFSET : Integer = 15;

+property predicateList : List(String) = object List(String){};

+

+property attackScenarioCurrentStartPlace : SAN::Place;

+

+main() {

+	this.model := source.rootObjects()![Model];

+	instancePackage := model.findElementByQualifiedName(selectedPlatformQName).oclAsType(Package);

+	

+	log ("analysis context: " + analysisContextQName);

+	analysisContext := model.findElementByQualifiedName(analysisContextQName).oclAsType(Class);

+	log ("found analysis context: " + analysisContext.name);

+	

+	analysisContext.initAttackScenario();

+	analysisContext.initRewards();

+	

+	this.rootComponentInstance := instancePackage.ownedElement[InstanceSpecification]->

+		selectOne(name = instancePackage.name.substringBefore("_instSpec"));

+	this.rootComponent := instancePackage.ownedElement[InstanceSpecification]->

+		selectOne(name = instancePackage.name.substringBefore("_instSpec")).classifier![Class];

+	//this.rootComponent.ownedComment += object Comment {body := "hello CHESS"; annotatedElement += rootComponent;};

+	//this.rootComponent.UmlComponent2SANnode();

+	var sanModel := this.rootComponentInstance.map UMLInstance2SANModel();

+	//this.rootComponent.UMLSystem2SANModel();

+	

+	//////////////////////////////////////////////////////////////////

+	//failure propagation

+	

+	//retrieve the set of connector instances

+	var instances : Set(UML::Element) = instancePackage.ownedElement->select(i | i.oclIsKindOf(InstanceSpecification));

+				

+	--log ("found instances"+ instances->size().toString());

+	

+	instances -> forEach(instance){

+		if (instance.oclAsType(UML::InstanceSpecification).classifier->isEmpty()){

+			this.umlInstancesConnectors += instance.oclAsType(UML::InstanceSpecification);

+			//log ("found connector "+instance.oclAsType(UML::InstanceSpecification).name);

+		}

+	};

+	

+	//this.umlInstancesConnectors := instances.oclAsType(Set(UML::InstanceSpecification));

+	

+	log ("found connectors"+ umlInstancesConnectors->size().toString());

+	log("checking ports for failure propagation................. ");

+	

+	//fill slot ports connections map

+	var portConnectedMap : Dict(UML::Slot, Set(UML::Slot));

+	this.umlAtomicInstances -> forEach(targetInstance){

+		//get input port

+		var inPorts : Set(UML::Slot) = targetInstance.getPortSlots()->select(p | p.hasInputFlow());

+		inPorts -> forEach(port){

+			log("checking port "+port.definingFeature.name);

+			//get output ports connected

+			var connPortSlots : Set(UML::Slot) := port.getSBAConnections();

+			connPortSlots -> forEach(connectedPortSlot){

+				log("found connected port "+connectedPortSlot.definingFeature.name);

+				var sourceInstance : UML::InstanceSpecification = connectedPortSlot.owner.oclAsType(UML::InstanceSpecification);

+//				if (i.isComposite()){

+//					var downSlots : Set(Slot) := connectedPortSlot.getSBADelegationsDownwards();

+//					downSlots -> forEach (downSlot){

+//						log ("found downSlot "+ downSlot.definingFeature.name);		

+//					};

+//							  

+//				}

+				//now I have the source and the target components

+				//... 

+				

+			};

+			portConnectedMap->put(port, connPortSlots);

+			log("end checking port "+port.definingFeature.name);

+		};

+	};	

+		

+	//for each atomic instance, for each internal propagation

+	this.umlAtomicInstances -> forEach(targetInstance){

+		//check each internalPropagation.externalFaults condition (e.g. iport1.omission)

+		targetInstance.getInternalPropagation()->forEach(internalPropTrans){

+			var internalPropag : CHESS::ThreatsPropagation::InternalPropagation := 

+				internalPropTrans.getStereotypeApplication(INTERNALPROPAGATION_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::InternalPropagation);

+			var faultExpr : String := internalPropag.externalFaults->asSequence()->first();

+			var targetPlace : SAN::Place := internalPropTrans.resolveIn(UML::Transition::UMLInternalPropagationTransition2IncomingFailureXXX)->first();

+			//ASSUMPTION (TBD): expr = portname.failure, i.e. no complex expression with and, or (e.g. (i.e.iport1.omission AND iport2.commission))

+			var targetPortName : String := faultExpr.tokenize(".")->asSequence()->first();

+			var targetFaultName : String := faultExpr.tokenize(".")->asSequence()->at(2);

+			//find the slot of the targetInstance representing the targetPortName referred in the failure expression

+			var targetSlotPort : UML::Slot := targetInstance.slot->select(s | s.definingFeature.name=targetPortName)->asSequence()->first();

+			//now check attached SBAcomponents ports to check if there is a source of the failures referred in the failure expression

+			var sourcePorts : Set(UML::Slot) := portConnectedMap->get(targetSlotPort);

+			sourcePorts -> forEach(sourcePortSlot){

+				//retrieve the source instance

+				var sourceInstance : UML::InstanceSpecification := sourcePortSlot.owner->asSequence()->first()->oclAsType(UML::InstanceSpecification)->asSequence()->first();

+				//check all the failure transition of the source instance

+				sourceInstance.getFailureTransition() -> forEach (failureTrans){

+					var failureSter : CHESS::ThreatsPropagation::Failure := 

+						failureTrans.getStereotypeApplication(FAILURE_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::Failure);

+					var failureMode := failureSter.mode->asSequence()->first();

+					if (failureMode.oclIsUndefined())

+						continue;

+					//ASSUMPTION: expr = portname.failure, i.e. no complex expression with 'and'...

+					var sourcePortName : String := failureMode.tokenize(".")->asSequence()->first();

+					var sourceFaultName : String := failureMode.tokenize(".")->asSequence()->at(2);

+					if (sourcePortName = sourcePortSlot.definingFeature.name and sourceFaultName = targetFaultName){

+						log ("found failure connection, atomic model is generated !!! "+faultExpr + " --  "+failureMode);

+						var sourcePlace : Place := failureTrans.resolveIn(UML::Transition::UMLFailureTransition2OutgoingFailureXXX)->first();

+						

+						//Create atomic model reifing the failure propagation

+						//TODO not sure about the source of this mapping... currently I am using the Failure transition

+						//sanModel.node.oclAsType(SAN::Join).child += failureTrans.map Failure2PropagationAtomicModel(sourcePlace, targetPlace, failureTrans, internalPropTrans);

+						var failurePropagAtomicNode : SAN::AtomicNode := failureTrans.Failure2PropagationAtomicModel(sourcePlace, targetPlace, failureTrans, internalPropTrans);

+						sanModel.node.oclAsType(SAN::Join).child += failurePropagAtomicNode;

+						

+						//join the new atomic model with the source and target places via shared variables

+						//create shared variable for sourcePlace

+						var sourceShared : SharedState;

+						var sourceAtomicNode := AtomicNode.allInstances()->select(s | s.place->includes(sourcePlace));						

+						var rep := Rep.allInstances()->select(s | s.child->includes(sourcePlace));

+						var join := Join.allInstances()->select(s | s.child->includes(sourcePlace));

+						var containerSource : SAN::ComposedNode = sourceAtomicNode.container()->asSequence()->first()->oclAsType(SAN::ComposedNode)->asSequence()->first();

+						if (containerSource.isRootJoin()){

+							//nothing to propagate

+						}else{

+							sourceShared := containerSource.getSharedState(containerSource, sourcePlace);

+						};

+						

+						var targetShared : SharedState;

+						var targetAtomicNode := AtomicNode.allInstances()->select(s | s.place->includes(targetPlace));

+						var containerTarget : SAN::ComposedNode = targetAtomicNode.container()->asSequence()->first()->oclAsType(SAN::ComposedNode)->asSequence()->first();

+						if (containerTarget.isRootJoin()){

+							//nothing to propagate

+						}else{

+							targetShared := containerTarget.getSharedState(containerTarget, targetPlace);

+						};

+						//now I can create the Joinin state for the root

+						var rootSharedState : SharedState := object SharedState{};

+						rootSharedState.name := sourcePlace.name;

+						sanModel.node.oclAsType(ComposedNode).stateVariables += rootSharedState;

+						if (sourceShared.oclIsUndefined()){

+							rootSharedState.place += sourcePlace;

+						}else{

+							rootSharedState.sharedStates += sourceShared;

+						};

+						rootSharedState.place += failurePropagAtomicNode.place-> select(s | s.name= sourcePlace.name);

+						

+						rootSharedState := object SharedState{};

+						rootSharedState.name := targetPlace.name;

+						sanModel.node.oclAsType(ComposedNode).stateVariables += rootSharedState;

+						if (targetShared.oclIsUndefined()){

+							rootSharedState.place += targetPlace;

+						}else{

+							rootSharedState.sharedStates += targetShared;

+						};

+						rootSharedState.place += failurePropagAtomicNode.place-> select(s | s.name= targetPlace.name);

+

+						//end joining

+					}

+					

+					

+				}

+			}

+

+		}

+		

+		

+		//end failure propagation

+		///////////////////////////////////////////////////////////////////

+		//////////////////////////////////////////////////////////////////

+	

+	}//for each target

+	

+}

+

+query SAN::Node::isRootJoin():Boolean{

+	return self.container().oclIsKindOf(SAN::SANModel);

+}

+

+query SAN::ComposedNode::getSharedState(inout composed : SAN::ComposedNode , placeToShare: SAN::Place) : SAN::SharedState{

+	var shared : SAN::SharedState;

+	self.stateVariables -> forEach (variable){

+		if (variable.place->includes(placeToShare) and variable.place->size()=1 and variable.sharedStates->isEmpty() ){

+			shared := variable;

+			break;	

+		}

+	};

+	if ( shared.oclIsUndefined()){

+		//create shared

+		shared := object SharedState{};

+		shared.name := placeToShare.name;

+		shared.place += placeToShare;

+		composed.stateVariables += shared;

+	};

+	if (self.container().oclAsType(SAN::Node).isRootJoin()){

+			return shared;

+		}else {

+			return self.container().oclAsType(SAN::ComposedNode).getParentShared(composed, shared);

+		};

+	return shared;

+}

+

+

+query SAN::ComposedNode::getParentShared(inout composed : SAN::ComposedNode, childShared : SAN::SharedState) : SAN::SharedState{

+	var shared : SAN::SharedState;

+	self.stateVariables -> forEach (variable){

+		if (variable.sharedStates->includes(childShared) and variable.place->isEmpty() and variable.sharedStates->size()=1 ){

+			shared := variable;

+			break;	

+		}

+	};

+	

+	if ( shared.oclIsUndefined()){

+		//create shared

+		shared := object SharedState{};

+		shared.name := childShared.name;

+		shared.sharedStates += childShared;

+		composed.stateVariables += shared;

+	};

+	

+	

+		if (self.container().oclAsType(SAN::Node).isRootJoin()){

+			return shared;

+		}else {

+			return self.container().oclAsType(SAN::ComposedNode).getParentShared(composed, shared);

+		};

+}

+

+

+

+

+

+mapping UML::InstanceSpecification::UMLInstance2SANModel() : SAN::SANModel {

+

+	var sanNode : SAN::Node;

+	//the case of just a single terminal node seems unreasonable...

+	sanNode := self.map UMLInstance2ComposedNode(true, 50);

+	result.node := sanNode;

+	result.name := self.name;

+	

+}

+

+

+mapping UML::InstanceSpecification::UMLInstance2ComposedNode(isRootJoin : Boolean, y : Integer) : SAN::ComposedNode {

+

+	init{

+		//A Join in SAN cannot have one child

+		//check  the number of ErrorModelBehaviour instances, indeed the one with no ErrorModel are not mapped to SAN

+		//E.g. in case of A decomposed by B and C, both terminals, if B has ErrorModelBehaviour and C no, then A must be map to Rep 

+		var subInsts = self.getSubInstances();

+		var createRep : Boolean = false;

+		

+		if (subInsts->size() >1){

+			//check actual error model behaviours owned

+			var numb : Integer := 0;

+			subInsts->forEach(inst){

+				if (inst.hasErrorModel()){

+					numb := numb+1;

+				}else{

+					if (inst.hasInternalErrorModelBehaviour() ){

+						numb := numb+1;

+					}

+				};

+				if (numb>1)

+					break;

+			};

+			if (numb>1){

+				result:= object SAN::Join{};

+			}

+			else {

+				createRep := true;

+			}

+		}

+		else{

+			createRep := true;

+		};

+		if (createRep){

+			result := object SAN::Rep{};

+			result.oclAsType(SAN::Rep).numbOfReps:="1";

+		}

+	}

+	

+	var node : SAN::Node;

+	var subInstance : UML::InstanceSpecification;

+	var prop : UML::Property;

+	var x1 : Integer := 50;

+	var y1 : Integer := y;

+	var deltax : Integer := 150;

+	var deltay : Integer := 100;

+	

+	if (self.isComposite()) { //this should be always true

+		//var subInsts =  self.getSubInstances();

+		var subInstSlots = self.getSubInstanceSlots();

+		subInstSlots->forEach(instSlot){

+			var rep : SAN::Rep;

+			prop := instSlot.definingFeature.oclAsType(UML::Property);

+			subInstance := instSlot.value->first().oclAsType(UML::InstanceValue).instance;

+			if ( subInstance.getErrorModel() = null and not subInstance.hasInternalErrorModelBehaviour())

+				continue;

+			

+			//Multiplicity > 1 is mapped to a Rep

+			//TODO use mapping to create Rep????

+			if (prop.getUpper()!=1){

+				rep := object SAN::Rep {};

+				rep.name := "Rep"+subInstance.name;

+				rep.numbOfReps := prop.getUpper().toString();

+				result.child +=rep;

+				rep.x := x1;

+				x1:=x1+deltax;

+				rep.y := y1;

+				y1:= y1+deltay;

+				result.addDoubleGlobalVariable('Num'.concat(rep.name), result);

+			};

+			

+			//TODO: curently if a component has errorModel attached than it is considered terminal: we should also support internal components with error model

+			if (subInstance.isComposite() and  (subInstance.getErrorModel()->oclIsUndefined() or subInstance.getErrorModel() = null)){

+				//map the subinstance

+				var childComposite : SAN::ComposedNode := subInstance.map UMLInstance2ComposedNode(false, y1+deltay);

+				if (not rep.oclIsUndefined()){

+					rep.child := childComposite;

+				}else{

+					result.child += childComposite;

+				};

+				childComposite.x := x1;

+				x1:=x1+deltax;

+				childComposite.y := y1;

+				if (not isRootJoin){

+					log("-------------------------------------");

+					//propagate shared states up in the hierarchy

+					childComposite.stateVariables -> forEach (stateVariable){

+						var shared := stateVariable.map shared2Shared();				

+						if (not rep.oclIsUndefined()){

+							//if childComposite is kinf of Rep: case RepFather->Rep child composite: if RepChild share a place, then RepFather has to share the place as well	

+							//the six lines below should work, I cannot test them now...

+							if (childComposite.oclIsTypeOf(Rep) and stateVariable.place->notEmpty() ){

+								shared.place:=stateVariable.place;

+								shared.sharedStates:=  Sequence {};

+							};

+							rep.stateVariables += shared;

+							shared := shared.map shared2Shared(); //this is the shared for the parent of Rep

+							//check case result(kind of Rep)->rep

+							if (childComposite.oclIsTypeOf(Rep) and stateVariable.place->notEmpty() and result.oclIsTypeOf(Rep)){

+								shared.place:=stateVariable.place ;

+								shared.sharedStates:=  Sequence {};

+							};

+							

+						};

+						result.stateVariables += shared;

+					}

+				}else{ //root join

+					if (not rep.oclIsUndefined()){

+						//case of rootJoin->Rep

+						childComposite.stateVariables -> forEach (stateVariable){

+							var shared := stateVariable.map shared2Shared();

+							//if childComposite is kinf of Rep: case RepFather->Rep child composite: if RepChild share a place, then RepFather has to share the place as well	

+							if (childComposite.oclIsTypeOf(Rep) and stateVariable.place->notEmpty() ){

+								shared.place:= stateVariable.place ;

+								shared.sharedStates:=  Sequence {};

+							};

+							rep.stateVariables += shared;

+						}

+					}

+				};

+				

+			}else{

+			//atomic node

+				//skip components having no error model

+				var errorModel :=subInstance.getErrorModel();

+				if (errorModel->oclIsUndefined() or errorModel->isEmpty()){

+					continue;

+				};

+			

+				var atomicNode : SAN::AtomicNode = subInstance.map UMLInstance2AtomicNode();

+				atomicNode.x := x1;

+				x1:=x1+deltax;

+				atomicNode.y := y1;

+				//register the atomic instance

+				this.umlAtomicInstances += subInstance;

+				if (not rep.oclIsUndefined()){

+					rep.child := atomicNode;

+				}else{

+					result.child += atomicNode;

+				};

+				//check rewards

+				if (not isRootJoin or not rep.oclIsUndefined()){

+					var rewardStates := subInstance.getRewardStates();

+					rewardStates -> forEach(rewardState){

+						log("checking reward state "+rewardState.name);

+						var shared : SAN::SharedState = rewardStates.map State2SharedVariable(subInstance)->asSequence()->first();

+						//get the place corresponding to the state of the subInstance

+						var rewardPlace : SAN::Place = subInstance.getPlace(rewardState);

+						shared.place := rewardPlace;

+						if (not rep.oclIsUndefined()){

+							rep.stateVariables += shared;

+							if (not isRootJoin){

+								var newShared := shared.map shared2Shared();

+								result.stateVariables += newShared;

+								//case Rep1->Rep2->Atomiic: Rep2 share a place, then Rep1 has to share the place as well

+								if (result.oclIsTypeOf(SAN::Rep)){

+									newShared.place += rewardPlace;

+									newShared.sharedStates:=  Sequence {};

+								};

+							}

+						}else

+							if (not isRootJoin){

+								result.stateVariables += shared;

+							}

+					};

+				};

+				

+				//TODO check attack success places, propate them up in the hierarchy

+				if (not isRootJoin or not rep.oclIsUndefined()){

+					var attackSuccessPlaces := atomicNode.getSuccessAttackPlace();

+					attackSuccessPlaces -> forEach (attackSuccessPlace){

+						var msg : UML::Message := attackSuccessPlace.getAttackMessage();

+						--assumption: msg is not void

+						var shared : SAN::SharedState := msg.map Message2SharedVariable(subInstance, attackSuccessPlace);

+						if (not rep.oclIsUndefined()){

+								rep.stateVariables += shared;

+								if (not isRootJoin){

+									var newShared := shared.map shared2Shared();

+									result.stateVariables += newShared;

+								}

+						}else

+							if (not isRootJoin){

+								result.stateVariables += shared;

+							}

+					}

+				}			

+			};

+			if (not rep.oclIsUndefined()){

+				y1:= y1-deltay;

+			}

+		}//for each Slot

+	};

+

+	result.name := self.name;

+	if (isRootJoin){

+	//assumoption: the root system is composed at least of two parts

+		if (not rewardStates->isEmpty()){

+			//Create Reward Atomic Model

+			var rewardModel : SAN::AtomicNode :=  this.analysisContext.map analysisContext2RewardAtomicModel();

+			result.child += rewardModel;

+			rewardModel.x := x1;

+			x1:=x1+deltax;

+			rewardModel.y := y1;

+			//Create Join State Variable

+			rewardModel.place -> forEach (rewardPlace){

+				result.stateVariables += this.analysisContext.map analysisContext2JoinStateVariable(result.oclAsType(SAN::Join), rewardPlace);

+			};

+		};

+		

+		//create nodes in the composed one for each attack scenario

+		this.attackScenarios -> forEach (interaction){

+			var attackScenario : SAN::AtomicNode := interaction.map interaction2AtomicNode();

+			attackScenario.x := x1;

+			x1:=x1+deltax;

+			attackScenario.y := y1;

+			result.child += attackScenario;

+		};

+		//Create Join State Variable to bind attack scenarios and atomic nodes places

+		this.attackScenarios -> forEach(scenario){

+			var msgs := scenario.getAttackMessages();

+			msgs ->forEach (message){

+				result.stateVariables += message.map Message2JoinStateVariable(result.oclAsType(SAN::Join));

+			}

+		};

+		

+		result.x:=400;

+		result.y:=0;

+		

+	}

+}

+

+////TODO: in case the rule is applied to the same failure transition it returns the same target object... currently I have trasformed this mappnig in query below

+//mapping UML::Transition::Failure2PropagationAtomicModelXXX(sourcePlace : SAN::Place, targetPlace : SAN::Place, failureTrans : UML::Transition, internalProp: UML::Transition) : SAN::AtomicNode{

+//	result.name :=sourcePlace.name+"__"+targetPlace.name;

+//	result.model :=sourcePlace.name+"__"+targetPlace.name;

+//	var s := failureTrans.map FailureToPropagationPlace(sourcePlace.name);

+//	var t := internalProp.map FailureToPropagationPlace(targetPlace.name);

+//	

+//	//TODO

+//	var tim : SAN::TimedActivity := object SAN::TimedActivity{};

+//	result.timedActivity += tim;

+//	s.activity += tim;

+//	tim.place += t;

+//	result.place += s;

+//	result.place += t;

+//	

+//}

+

+// this query replaces the mapping above

+query UML::Transition::Failure2PropagationAtomicModel(sourcePlace : SAN::Place, targetPlace : SAN::Place, failureTrans : UML::Transition, internalProp: UML::Transition) : SAN::AtomicNode{

+

+	var res : SAN::AtomicNode = object SAN::AtomicNode{};

+	res.name :=sourcePlace.name+"__"+targetPlace.name;

+	res.model := sourcePlace.name+"__"+targetPlace.name;

+	

+	var s := object SAN::Place{ name := sourcePlace.name};

+	var t := object SAN::Place{name := targetPlace.name};

+	

+	//TODO

+	var tim : SAN::TimedActivity := object SAN::TimedActivity{};

+	tim.name := "propagation";

+	res.timedActivity += tim;

+	s.activity += tim;

+	tim.place += t;

+	res.place += s;

+	res.place += t;

+	return res;

+}

+

+

+mapping UML::Transition::FailureToPropagationPlace(failureExpr : String) : SAN::Place {

+	result.name := failureExpr;

+}

+

+

+

+mapping UML::Message::Message2JoinStateVariable(inout join : SAN::Join) : SAN::SharedState{

+	var attackSuccessPlaces := self.resolveIn(UML::Message::UMLAttackMessage2AttackSuccessPlace, Place);

+	attackSuccessPlaces -> forEach (attackSuccessPlace){

+		join.child -> forEach (childNode){

+			

+			if (childNode.oclIsKindOf(SAN::AtomicNode)){

+				//this is the case of an atomic node directly owned by the root join node

+				childNode.oclAsType(SAN::AtomicNode).place -> forEach(place){

+					if (place = attackSuccessPlace){

+						//create a shared variable

+						result.name := attackSuccessPlace.name;

+						result.place += attackSuccessPlace;

+						result.place += self.resolveoneIn(UML::Message::UMLAttackMessage2AttackSuccessPlaceScenario, Place);

+						break;

+					}

+				}

+			}else{

+				--assumption: there is a composedNode which share the proper state variable for the attackPlace

+				childNode.oclAsType(SAN::ComposedNode).stateVariables -> forEach (state){

+					//TODO I should not rely on the name...

+					if (state.name = attackSuccessPlace.name){

+						result.name := attackSuccessPlace.name;

+						result.sharedStates +=state;

+						result.place += self.resolveoneIn(UML::Message::UMLAttackMessage2AttackSuccessPlaceScenario, Place);

+						break;

+					}

+				}

+			}

+			

+		};

+	}

+}

+

+mapping UML::Interaction::interaction2AtomicNode() : SAN::AtomicNode {

+	result.name := self.name;

+	result.model := self.name;

+	

+	var startx : Integer := 50;

+	var starty : Integer := 100;

+			

+	//start with the set of place and activities which are in commonfor all types of Interaction

+	var placeIdle : Place := object SAN::Place{name := "Idle"; x := startx; y := starty };

+	placeIdle.initialState :=1;

+	result.place +=placeIdle;

+	

+	var placeAttempted : Place := object SAN::Place{name := self.name+"Attempted"; x := startx+300; y := starty};

+	result.place += placeAttempted;

+	

+	var attackTimedActivity : SAN::TimedActivity := object SAN::TimedActivity{name := self.name+"_AttackActivity"; x := startx+150; y := starty};

+	result.timedActivity += attackTimedActivity;

+	var attackScenarioStereo := self.getStereotypeApplication(ATTACK_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::AttackScenario);

+	

+	if (not attackScenarioStereo.frequency->oclIsUndefined() and attackScenarioStereo.frequency != ""){

+		//attackTimedActivity.timeDistributionFunction := attackScenarioStereo.frequency.toString();

+		attackTimedActivity.rate := attackScenarioStereo.frequency.toString();

+	}else{

+		//attackTimedActivity.timeDistributionFunction := self.name +"_intensity";

+		attackTimedActivity.rate := self.name +"_intensity";

+		result.addDoubleGlobalVariable(self.name+"_intensity", result);

+	};

+	

+	placeIdle.activity += attackTimedActivity;

+	attackTimedActivity.place += placeAttempted;

+	var launchedPlace : SAN::Place := object SAN::Place{name := self.name+"Launched"; x:=startx+600; y:=starty-50};

+	result.place += launchedPlace;

+	var blockedPlace : SAN::Place := object SAN::Place{name := self.name+"Blocked"; x:=startx+600; y:=starty+50};

+	result.place += blockedPlace;

+	var blockActivity : SAN::InstantaneousActivity := object SAN::InstantaneousActivity{name := self.name+"_BlockActivity"; x := startx+450; y := starty};

+	result.instantaneousActivity += blockActivity;

+	if (not attackScenarioStereo.probSuccess.oclIsUndefined() and attackScenarioStereo.probSuccess!=""){

+		blockActivity._case+="return("+attackScenarioStereo.probSuccess+");";

+		blockActivity._case+="return(1.0-"+attackScenarioStereo.probSuccess+");";

+	}else{

+		//use global variables

+		blockActivity._case+="return("+self.name+"_succ_prob"+");";

+		blockActivity._case+="return (1.0 - "+self.name+"_succ_prob"+");";

+		result.addDoubleGlobalVariable(self.name+"_succ_prob", result);

+	};

+	var case1 : ActivityPlaceCase = object SAN::ActivityPlaceCase{place +=launchedPlace; _case:=1; x:=startx+450; y:=starty-15;};

+	blockActivity.placecase += case1;

+	var case2 : ActivityPlaceCase = object SAN::ActivityPlaceCase{place +=blockedPlace; _case:=2; x:=startx+450; y:=starty;};

+	blockActivity.placecase += case2;

+	

+	placeAttempted.activity += blockActivity;

+	

+	var outGate : SAN::OutputGate := object SAN::OutputGate{name := self.name+"OutputGate"; x:= startx+250; y:= starty-50};

+	result.outputGate += outGate;

+	outGate.outputFunction := "Idle->Mark() = 1;	// Implies continuous attacks with given intensity;";

+	attackTimedActivity.outputGate+= outputGate;

+	

+	//now add Interactions specific nodes

+//	var x2 : Integer := 50;

+//	var y2 : Integer := 250;

+	var orderedList : Sequence(UML::NamedElement) := self.getOrderedAttacksAndFragments();

+	var index : Integer := 0;

+	attackScenarioCurrentStartPlace := launchedPlace;

+	orderedList -> forEach(elem){

+		index := index+1;	

+		if (elem.oclIsTypeOf(Message)){

+			//SINGLE ATTACK TEMPLATE

+			var mess: UML::Message := elem.oclAsType(Message);

+			mess.map UMLAttackMessage2SAN(result, 50, 250*index, attackScenarioCurrentStartPlace);

+		}else{

+			if (elem.oclIsTypeOf(CombinedFragment)){

+				var combFrag : CombinedFragment = elem.oclAsType(CombinedFragment);

+				var operator : String = combFrag.interactionOperator.toString();

+				if (operator.equalsIgnoreCase('alt')){

+					elem.oclAsType(UML::CombinedFragment).map UMLAltFragment2SAN (result, 50, 250*index, attackScenarioCurrentStartPlace, self);

+				}else if (operator.equalsIgnoreCase('opt')){

+					elem.oclAsType(UML::CombinedFragment).map UMLOptFragment2SAN (result, 50, 250*index, attackScenarioCurrentStartPlace, self);

+				} else if (operator.equalsIgnoreCase('loop')) {

+					elem.oclAsType(UML::CombinedFragment).map UMLLoopFragment2SAN (result, 50, 300*index, attackScenarioCurrentStartPlace, self);

+				}

+			};

+			

+		};

+		if (elem.oclIsTypeOf(DurationConstraint)){

+			elem.oclAsType(DurationConstraint).map UMLDurationConstraint2SAN (result, 50, 300*index, attackScenarioCurrentStartPlace, self);	

+		};

+	};

+	

+	//

+

+//	var attackMessages := self.getAttackMessages();

+//	attackMessages -> forEach (attackMessage){

+//		result.place+=attackMessage.map UMLAttackMessage2AttackSuccessPlaceScenario(result);

+//	}

+}

+

+mapping UML::Message::UMLAttackMessage2SAN(inout atomicNode : SAN::AtomicNode, x1:Integer, y1:Integer, inout startNode : SAN::Place) : List(SAN::NamedElement) {

+	

+	var placeFailed : Place := object SAN::Place{name := self.name+"_failed"; x := x1+300; y := y1+50};

+	atomicNode.place += placeFailed;

+	result += placeFailed;

+	var placeSuccess : Place;// := object SAN::Place{name := self.name+"_success"; x := x1+300; y := y1-50};

+	//I need a map for the success place to be able to retrieve later for the shared variables creation...

+	//TODO should I use a mapping (instance, message)->place?

+	placeSuccess := self.map UMLAttackMessage2AttackSuccessPlaceScenario(atomicNode);

+	placeSuccess.x := x1+300;

+	placeSuccess.y := y1-50;

+	atomicNode.place += placeSuccess;

+	result->add(placeSuccess);

+	var placeEnd : Place := object SAN::Place{name := "End"+self.name; x := x1+300; y := y1+100};

+	atomicNode.place += placeEnd;

+	result += placeEnd;

+	var instAct : SAN::InstantaneousActivity := object SAN::InstantaneousActivity{name := self.name+"_activity"; x:=x1+150;y:=y1;};

+	atomicNode.instantaneousActivity += instAct;

+	result += instAct;

+	instAct._case += self.name+"_success_prob";	

+	instAct._case += "1.0 - "+self.name+"_success_prob";

+	atomicNode.addDoubleGlobalVariable(self.name+"_success_prob", atomicNode);

+	startNode.activity += instAct;

+	

+	var case1 : ActivityPlaceCase = object SAN::ActivityPlaceCase{place +=placeSuccess; place +=placeEnd; _case:=1; x:=x1+150; y:=y1-15;};

+	instAct.placecase += case1;

+	

+	var case2 : ActivityPlaceCase = object SAN::ActivityPlaceCase{place +=placeFailed; place +=placeEnd; _case:=2; x:=x1+150; y:=y1;};

+	instAct.placecase += case2;

+

+	

+	attackScenarioCurrentStartPlace := placeEnd;

+}

+

+

+mapping UML::CombinedFragment::UMLOptFragment2SAN(inout atomicNode : SAN::AtomicNode, x1:Integer, y1:Integer, inout startNode : SAN::Place, ownerInteraction : UML::Interaction) {

+	var optFragmentName : String = self.name;

+	var operand : UML::InteractionOperand = self.operand->first();

+	var attack : Message = operand.getOperationAttack(ownerInteraction);

+	

+	var endPlace : SAN::Place := object SAN::Place{name := "End"+optFragmentName; x:=x1+250; y:=y1+50};

+	atomicNode.place += endPlace;

+	

+	var fragmentInstActivity : SAN::InstantaneousActivity := object SAN::InstantaneousActivity{name := optFragmentName+"Activity"; x:= x1+150; y:=y1};

+	atomicNode.instantaneousActivity += fragmentInstActivity;

+	var predicate : String = operand.getPredicate();

+	fragmentInstActivity._case += "return("+predicate+");";

+	atomicNode.addDoubleGlobalVariable(predicate, atomicNode);

+	fragmentInstActivity._case += "return(1.0 - "+predicate+");";

+	//connect it to the start place

+	startNode.activity += fragmentInstActivity;

+	

+	var attackPlace : SAN::Place := object SAN::Place{name := attack.name; x:=x1+250; y:=y1;};

+	atomicNode.place += attackPlace;

+	

+	

+	var case1 : ActivityPlaceCase := object SAN::ActivityPlaceCase{place +=attackPlace; _case:=1; x:=x1+150; y:=y1-15;};

+	fragmentInstActivity.placecase += case1;

+	case1 := object SAN::ActivityPlaceCase{place +=endPlace;  _case:=2; x:=x1+150; y:=y1;}; 

+	fragmentInstActivity.placecase += case1;

+	

+	var attackInstActivity : SAN::InstantaneousActivity := object SAN::InstantaneousActivity{name :=attack.name+"activity"; x:=x1+450; y:= y1};

+	atomicNode.instantaneousActivity += attackInstActivity;

+	attackInstActivity._case += "return("+attack.name+"_success_prob);\t//Attack succeeds";

+	attackInstActivity._case += "return(1.0 -"+attack.name+"_success_prob);\t//Attack fails";

+	atomicNode.addDoubleGlobalVariable(attack.name.concat('_success_prob'), atomicNode);

+	

+	//I need a map for the success place to be able to retrieve later for the shared variables creation...

+	//TODO should I  use a mapping (instance, message)->place?

+	var successPlace : SAN::Place := attack.map UMLAttackMessage2AttackSuccessPlaceScenario(atomicNode);

+	atomicNode.place += successPlace;

+	successPlace.x:=x1+600;

+	successPlace.y:=y1-25;

+	

+	var failedPlace : SAN::Place := object SAN::Place{name:=attack.name+"_failed"; x:=x1+600; y:=y1+25};

+	atomicNode.place += failedPlace;

+	

+	case1 := object SAN::ActivityPlaceCase{place +=successPlace; _case:=1; x:=x1+450; y:=y1-15;};

+	attackInstActivity.placecase += case1;

+	case1 := object SAN::ActivityPlaceCase{place +=failedPlace;  _case:=2; x:=x1+450; y:=y1;}; 

+	attackInstActivity.placecase += case1;

+	

+	attackPlace.activity += attackInstActivity;

+	

+	attackScenarioCurrentStartPlace := endPlace;

+	

+}

+

+

+mapping UML::CombinedFragment::UMLAltFragment2SAN(inout atomicNode : SAN::AtomicNode, x1:Integer, y1:Integer, inout startNode : SAN::Place, ownerInteraction : UML::Interaction) {

+	var altFragmentName : String = self.name;

+	var operands : OrderedSet(InteractionOperand) = self.operand;

+//	var x2 : Integer = 50;

+//	var y2 : Integer = 250;

+	

+	var failedPlace : SAN::Place := object SAN::Place{name := altFragmentName+"_failed"; x:= x1+750; y:= y1+operands->size()*75};

+	atomicNode.place += failedPlace;

+	

+	var endPlace : SAN::Place := object SAN::Place{name := "End"+altFragmentName; x:=x1+250; y:=y1+operands->size()*75};

+	atomicNode.place += endPlace;

+	

+	var fragmentInstActivity : SAN::InstantaneousActivity := object SAN::InstantaneousActivity{name := altFragmentName+"Activity"; x:= x1+150+5; y:=y1+5};

+	atomicNode.instantaneousActivity += fragmentInstActivity;

+	

+	//reset predicate list

+	predicateList := object List(String){};

+	operands -> forEach(operand){

+		var predicate : String = operand.getPredicate();

+		fragmentInstActivity._case += "return ("+predicate+");";

+		atomicNode.addDoubleGlobalVariable(predicate, atomicNode);

+	};

+	

+	//comment iterate over the operands

+	var i:Integer:=0;

+	operands -> forEach(operand){

+		i:= i+1;

+		var attack : Message = operand.getOperationAttack(ownerInteraction);

+		if (attack = null){

+			log("*********WARNING: "+self.name+" -> no attack for operand : "+operand.name);

+			continue;

+		};

+		var attackPlace : SAN::Place := object SAN::Place{name:=attack.name;x:=x1+250;y:=y1+75*(i-1)};

+		atomicNode.place += attackPlace;

+		

+		var attackInstActivity : SAN::InstantaneousActivity := object SAN::InstantaneousActivity{name:=attack.name+"_activity";x:=x1+450; y:=y1+75*(i-1)};

+		atomicNode.instantaneousActivity += attackInstActivity;

+		//TODO: is it possible to model success prob?

+		attackInstActivity._case += "return("+attack.name+"_success_prob);\t// Attack succeeds";

+		attackInstActivity._case += "return(1.0 - "+attack.name+"_success_prob);\t// Attack fails";

+		atomicNode.addDoubleGlobalVariable(attack.name.concat('_success_prob'), atomicNode);

+				

+		//I need a map for the success place to be able to retrieve later for the shared variables creation...

+		//TODO should I  use a mapping (instance, message)->place?

+		var successPlace : SAN::Place := attack.map UMLAttackMessage2AttackSuccessPlaceScenario(atomicNode);

+		successPlace.name := attack.name+"_success";

+		successPlace.x := x1+650;

+		successPlace.y := y1+75*(i-1);

+		//var successPlace : SAN::Place := object SAN::Place{name:= attack.name+"_success"; x:= x2+650; y:=y2+75*(i-1)};

+		atomicNode.place += successPlace;

+		

+		//do the connections

+		var activityCase : ActivityPlaceCase := object SAN::ActivityPlaceCase{place +=endPlace; place +=attackPlace; _case:=i; x:=x1+150; y:=y1-getAltOffset(operands->size()-i, operands->size());};

+		fragmentInstActivity.placecase += activityCase;

+

+		attackPlace.activity +=attackInstActivity;

+		

+		activityCase := object SAN::ActivityPlaceCase{place +=successPlace; _case:=1; x:=x1+450; y:=y1+75*(i-1)-15;};

+		attackInstActivity.placecase += activityCase;

+		activityCase := object SAN::ActivityPlaceCase{place +=failedPlace; _case:=2; x:=x1+450; y:=y1+75*(i-1);};

+		attackInstActivity.placecase += activityCase;

+		//end connections

+	};

+	//start place is previous fragment end place

+	startNode.activity  += fragmentInstActivity;

+	

+	attackScenarioCurrentStartPlace := endPlace;

+}

+

+mapping UML::CombinedFragment::UMLLoopFragment2SAN(inout atomicNode : SAN::AtomicNode, x1:Integer, y1:Integer, inout startNode : SAN::Place, ownerInteraction : UML::Interaction) {

+

+	var loopFragmentName : String = self.name;

+	var operand : InteractionOperand = self.operand->first();

+	var attack : Message = operand.getOperationAttack(ownerInteraction);

+	

+	var loopFragmentInstAct : SAN::InstantaneousActivity := object SAN::InstantaneousActivity {name := "SetUp"+loopFragmentName; x:=x1+200; y:= y1};

+	atomicNode.instantaneousActivity += loopFragmentInstAct;

+	

+	var setCounterOutGate : SAN::OutputGate := object SAN::OutputGate{name:= loopFragmentName+"SetCounter"; x:= x1+250; y:= y1-50;};

+	atomicNode.outputGate += setCounterOutGate;

+	var counter : String = operand.getLoopCounter();

+	atomicNode.addDoubleGlobalVariable(counter, atomicNode);

+	setCounterOutGate.outputFunction := loopFragmentName+"Counter-&gt;Mark() = "+counter+";";

+	

+	var counterPlace : SAN::Place := object SAN::Place {name := loopFragmentName+"Counter"; x:= x1+475; y:=y1-50;};

+	atomicNode.place += counterPlace;

+	

+	var loopPlace : SAN::Place := object SAN::Place {name := loopFragmentName+"_loop"; x:= x1+350; y:=y1;};

+	atomicNode.place += loopPlace;

+	

+	var loopDelayTimedActivity := object SAN::TimedActivity{name := loopFragmentName+"_loop_delay"; x:= x1+525; y:= y1;};

+	atomicNode.timedActivity += loopDelayTimedActivity; 

+	loopDelayTimedActivity._case += "return("+attack.name+"_success_prob);\t// Attack succeeds";

+	loopDelayTimedActivity._case += "return(1.0 - "+attack.name+"_success_prob);\t// Attack fails";

+	atomicNode.addDoubleGlobalVariable(attack.name+"_success_prob", atomicNode);

+	//loopDelayTimedActivity.timeDistributionFunction := "return("+loopFragmentName+"_attack_delay);";

+	loopDelayTimedActivity.rate := "return("+loopFragmentName+"_attack_delay);";

+	atomicNode.addDoubleGlobalVariable(loopFragmentName+"_attack_delay", atomicNode);

+	

+	var endPlace : SAN::Place := object SAN::Place {name := "End"+loopFragmentName; x:= x1+800; y:=y1;};

+	atomicNode.place += endPlace;

+	

+	var outGateSuccess : SAN::OutputGate := object SAN::OutputGate{name:= loopFragmentName+"_success"; x:= x1+675; y:= y1-25;};

+	atomicNode.outputGate += outGateSuccess;

+	outGateSuccess.outputFunction := loopFragmentName+"Counter-&gt;Mark()--;\nif("+loopFragmentName+"Counter-&gt;Mark() &gt; 0)

+			\\n  {\\n    "+attack.name+"_success-&gt;Mark()++;\t// Add an attack. 

+			This place may be shared among many instances.\\n\t\t\t\t\t

+			// The token will be taken by one of the instances: 

+			they will compete for the token.\\n    "+loopFragmentName+"_loop-&gt;Mar

+			k() = 1;\t// Continue with the loop\\n  }\\nelse\\n  End"+loopFragmentName+"

+			-&gt;Mark() = 1;\t// Exit from the loop";

+			

+	var outGateBlocked : SAN::OutputGate := object SAN::OutputGate{name:= loopFragmentName+"_blocked"; x:= x1+675; y:= y1+25;};

+	atomicNode.outputGate += outGateBlocked;

+	outGateBlocked.outputFunction := loopFragmentName+"Counter-&gt;Mark()--;\nif("+loopFragmentName+"Counter-&gt;Mark() &gt; 0)

+			\\n  {\\n// This is the branch which corresponds to unsuccessf

+			ul attacks on component.\\n// Hence no token is added to att

+			ack place \\n    "+loopFragmentName+"_loop-&gt;Mark() = 1;\t// Continue

+			 with the loop\\n  }\\nelse\\n  End"+loopFragmentName+"-&gt;Mark() = 1;\t/

+			/ Exit from the loop";

+			

+	//I need a map for the success place to be able to retrieve later for the shared variables creation...

+	//TODO should I  use a mapping (instance, message)->place?

+	var successPlace : SAN::Place := attack.map UMLAttackMessage2AttackSuccessPlaceScenario(atomicNode);

+	successPlace.name := attack.name+"_success";

+	successPlace.x := x1+800;

+	successPlace.y := y1-50;

+	atomicNode.place += successPlace;

+	

+	//now let's do the connections

+	loopFragmentInstAct.outputGate += setCounterOutGate;

+	loopFragmentInstAct.place += loopPlace;

+	loopPlace.activity += loopDelayTimedActivity;

+	

+	var activityCase : ActivityPlaceCase := object SAN::ActivityPlaceCase{place +=outGateSuccess;  _case:=1; x:=x1+525; y:=y1-15;};

+	loopDelayTimedActivity.placecase += activityCase;

+	

+	activityCase := object SAN::ActivityPlaceCase{place +=outGateBlocked;  _case:=2; x:=x1+525; y:=y1;};

+	loopDelayTimedActivity.placecase += activityCase;

+	

+	startNode.activity += loopFragmentInstAct;

+	//end connections

+	

+	attackScenarioCurrentStartPlace := endPlace;

+	

+}

+

+

+mapping UML::DurationConstraint::UMLDurationConstraint2SAN(inout atomicNode : SAN::AtomicNode, x1:Integer, y1:Integer, inout startPlace : SAN::Place, ownerInteraction : UML::Interaction) {

+	var delayName : String = self.name;

+	var endPlace : SAN::Place := object SAN::Place{name := "End"+delayName; x:=x1+300; y:=y1;};

+	atomicNode.place += endPlace;

+	

+	var delayTimedActivity : SAN::TimedActivity := object SAN::TimedActivity{name := delayName+"Activity"; x:=x1+150; y:=y1;};

+	atomicNode.timedActivity += delayTimedActivity;

+	var delay_rate : String := self.getDelay();

+	delayTimedActivity.timeDistributionFunction := "return("+delay_rate+");";

+	delayTimedActivity.rate := "return("+delay_rate+");";

+	atomicNode.addDoubleGlobalVariable(delay_rate, atomicNode);

+	

+	//now let's do the connections

+	delayTimedActivity.place += endPlace;

+	startPlace.activity+=delayTimedActivity;

+	

+	//set nextStart place

+	attackScenarioCurrentStartPlace := endPlace;

+}

+

+

+

+mapping UML::Message::UMLAttackMessage2AttackSuccessPlaceScenario(inout atomicNode : SAN::AtomicNode) : SAN::Place {

+	result.name := self.name +"_success";

+	atomicNode.place += result;

+	//result.inputGate += inputGate;

+}

+

+

+mapping UML::Class::analysisContext2RewardAtomicModel() : SAN::AtomicNode {

+	

+	var index : Integer := 0;

+	var indexY : Integer :=0;

+	this.rewardStates -> forEach (state){

+		index := index+1;

+		indexY := (indexY+1).mod(2);

+		//Create a place

+		//TODO here I should use a map maybe... so retrieve the (UML::State, UML::InstanceSpecification) and map it to a Place

+		var place := object SAN::Place {};

+		place.name := state;

+		result.place += place;

+		place.x := index*150;

+		place.y := 40*indexY;

+	};

+	result.name := self.name+"_reward";

+	result.model := self.name+"_reward";

+}

+

+--assumption: rewardplace is from the rewardModel and has name <instance name>.<state name>

+mapping UML::Class::analysisContext2JoinStateVariable(inout join : SAN::Join, rewardPlace : SAN::Place) : SAN::SharedState {

+	

+		--Assumption: a corresponding shared variable is available in the join node

+		var stateName = rewardPlace.name.substring(rewardPlace.name.lastIndexOf(".")+1, rewardPlace.name.length());

+		join.child -> forEach (childNode){

+		

+			if (not rewardPlace.name.startsWith(childNode.name) and not childNode.oclIsKindOf(SAN::Rep))

+				continue;

+			

+			if (childNode.oclIsKindOf(SAN::AtomicNode)){

+				//this is the case of an atomic node directly owned by the root join node

+				childNode.oclAsType(SAN::AtomicNode).place -> forEach(place){

+					if (place.name = stateName){

+						//create a shared variable

+						

+						result.name := rewardPlace.name;

+						result.place +=place;

+						result.place += rewardPlace;

+						break;

+						

+					}

+				}

+			}else{

+				childNode.oclAsType(SAN::ComposedNode).stateVariables -> forEach (state){

+					if (state.name = rewardPlace.name){

+						result.name := rewardPlace.name;

+						result.sharedStates +=state;

+						result.place += rewardPlace;

+						break;

+					}

+				}

+			}

+			

+		};

+		

+		if (result.name.oclIsUndefined() or result.name=""){

+			log("ERROR : entity not found for reward "+rewardPlace.name);

+		};

+		

+}

+

+

+--rule: shared states propagates from child to parent places

+mapping SAN::SharedState::shared2Shared() : SAN::SharedState {

+	result.name := self.name;

+	--result.place := self.place;

+	result.sharedStates += self;

+}

+

+--a sharedState originating from a state of an instance

+//TODO should shared state originate from UML::AnaylsisContext???

+mapping UML::State::State2SharedVariable(instance : UML::InstanceSpecification) : SAN::SharedState {

+result.name := instance.name+"."+self.name;

+}

+

+--a sharedState originating from an attack message to an instance

+mapping UML::Message::Message2SharedVariable(instance : UML::InstanceSpecification, place : SAN::Place) : SAN::SharedState {

+	result.place := place;

+	result.name := place.name;

+}

+

+

+//multi instance solution

+mapping UML::InstanceSpecification::UMLInstance2AtomicNode() : SAN::AtomicNode {

+	

+	result.name:=self.name;

+	//result.model:=self.classifier->asSequence()->first().name;

+	result.model:=self.name;

+	

+	var errorModel : UML::StateMachine = self.getErrorModel();

+	//TODO: check about regions

+	var trans := errorModel.region->asSequence()->first().transition;

+	var source : UML::State;

+	var target : UML::State;

+	var sourceVertex : UML::Vertex;

+	var targetVertex : UML::Vertex;

+	var normalPlace : SAN::Place;

+	var placeX : Integer :=0;

+	var placeY : Integer :=75;

+	var targetplaceX : Integer :=0;

+	var targetplaceY : Integer :=250;

+	var activityX : Integer :=50;

+	var activityY : Integer :=150;

+	var attackX : Integer :=100;

+	var attackY : Integer :=400;

+	var stateCounter : Integer :=0;

+	var targetStateCounter : Integer :=0;

+	var activityCounter : Integer :=1;

+	var attackCounter : Integer :=1;

+	

+	trans -> forEach(transition){

+		sourceVertex := transition.source->asSequence()->first();

+		targetVertex := transition.target->asSequence()->first();

+		

+		var tupleSelf_SourceVertex :=Tuple{inst=self, vertex =sourceVertex};

+		

+		//var sourcePlace := tupleSelf_SourceVertex.resolveIn(UMLInstance_Vertex2Place)->asSequence()->first();

+		//sourcePlace := tupleSelf_SourceVertex.resolve(Place)->asSequence()->first() ;

+		var sourcePlace : SAN::Place := tupleSelf_SourceVertex.resolveone(Place);

+		

+		if (sourcePlace.oclIsUndefined()){

+		

+			if (sourceVertex.oclIsTypeOf(UML::Pseudostate)){

+				//TODO  pseudostates are not currently supported

+				continue;

+				

+			}else{

+				if (sourceVertex.oclIsTypeOf(UML::State)){

+					//sourcePlace := t.map UMLInstanceVertex2Place();

+					sourcePlace := UMLInstance_Vertex2Place(tupleSelf_SourceVertex);

+					sourcePlace.x := placeX+stateCounter*150;

+					sourcePlace.y := placeY;

+					stateCounter := stateCounter+1;

+					

+					result.place += sourcePlace;

+					if (not sourceVertex.getAppliedStereotype(NORMALSTATE_STEREOTYPE).oclIsUndefined()){

+						log("found normal state "+ sourceVertex.name);

+						normalPlace := sourcePlace;

+					};

+				}

+			}

+		};

+		var targetPlace := targetVertex.resolveoneIn(Vertex::UMLVertex2Place, Place);

+		var tupleSelf_TargetVertex :=Tuple{inst=self, vertex =targetVertex};

+//		targetPlace := tupleSelf_TargetVertex.resolveIn(UMLInstance_Vertex2Place)->asSequence()->first();

+//		targetPlace := tupleSelf_TargetVertex.resolve(Place)->asSequence()->first() ;

+		targetPlace := tupleSelf_TargetVertex.resolveone(Place);

+		

+		if (targetPlace->oclIsUndefined() or targetPlace = null){

+			if (targetVertex.oclIsTypeOf(UML::State)){

+					//var t2 :=Tuple{a=self, b =targetVertex};

+					//targetPlace := t2.map UMLInstanceVertex2Place();

+					targetPlace := UMLInstance_Vertex2Place(tupleSelf_TargetVertex);

+					targetPlace.x := targetplaceX+targetStateCounter*150;

+					targetPlace.y := targetplaceY;

+					targetStateCounter := targetStateCounter+1;

+					result.place += targetPlace;

+				}

+		};

+		

+		//TODO internalPropagation mapping is ongoing, requirements are not clear...

+		if (transition.isStereotyped(INTERNALFAULT_STEREOTYPE) or transition.isStereotyped(REPAIR_STEREOTYPE) or transition.isStereotyped(INTERNALPROPAGATION_STEREOTYPE)){

+			//create a timedACtivity

+			//log ("found internal fault "+transition.name);

+			var activity : SAN::Activity;// := transition.map UMLTransition2Activity();

+			var transTuple :=Tuple{inst=self, trans =transition};

+			if (transition.isStereotyped(INTERNALFAULT_STEREOTYPE)){

+				activity:= UMLInstance_InternalFaultTransition2TimedActivity(transTuple, result);

+			

+			}else {

+				if (transition.isStereotyped(REPAIR_STEREOTYPE)){

+					activity:= UMLInstance_RepairTransition2TimedActivity(transTuple, result);

+					

+				}

+				else if (transition.isStereotyped(INTERNALPROPAGATION_STEREOTYPE)){

+					activity:= UMLInstance_InternalPropagationTransition2InstantaneousActivity(transTuple);

+				}

+			};

+			activity.x := activityX+activityCounter*150;

+			activity.y := activityY;

+			activityCounter := activityCounter+1;

+			

+			sourcePlace.activity += activity;

+			activity.place +=targetPlace;

+			activity.name := sourcePlace.name+"_"+targetPlace.name;

+			if (activity.oclIsKindOf(SAN::TimedActivity)) {

+				result.timedActivity+=activity.oclAsType(SAN::TimedActivity);

+			}

+			else{

+				result.instantaneousActivity+=activity.oclAsType(SAN::InstantaneousActivity);

+			};

+			if (transition.isStereotyped(INTERNALPROPAGATION_STEREOTYPE)){

+				//TODO, for failure propagation, work in progress...

+				var failurePlace : Place := transition->UMLInternalPropagationTransition2IncomingFailureXXX()->asSequence()->first();

+				result.place += failurePlace;

+				failurePlace.x := placeX+stateCounter*150;

+				failurePlace.y := placeY;

+				stateCounter := stateCounter+1;

+				failurePlace.activity += activity;

+				

+			}

+			

+		}else if (transition.isStereotyped(ATTACK_STEREOTYPE)){

+			//create a timedACtivity

+			--log ("found internal fault "+transition.name);

+			var activity : SAN::InstantaneousActivity := transition.map UMLAttackTransition2InstantaneousActivity();

+			activity.x := activityX+activityCounter*150;

+			activity.y := activityY;

+			activityCounter := activityCounter+1;

+			

+			sourcePlace.activity += activity;

+			activity.place +=targetPlace;

+			activity.name := sourcePlace.name+"_"+targetPlace.name;

+			result.instantaneousActivity+=activity;

+			

+			//check attack messages associated (through vulnerability) to the transition

+			var attackMessage : Set(UML::Message) := transition.getAttackMessages();

+			attackMessage -> forEach(message){

+				var inputGate := message.map UMLAttackMessage2InputGate(result, normalPlace);

+				var successPlace := message.map UMLAttackMessage2AttackSuccessPlace(result, inputGate);

+				var confirmedPlace := message.map UMLAttackMessage2AttackConfirmedPlace(result, activity, inputGate);

+				//e.g.: (OptAttackBlock1_portA_success->Mark() > 0) && (OK->Mark() > 0) && (OptAttackBlock1_portA_confirmed->Mark() == 0))

+				inputGate.inputPredicated:="("+successPlace.name+"->Mark() > 0) && ("+normalPlace.name+"->Mark() > 0) && ("+confirmedPlace.name+"->Mark() == 0)";

+				//e.g.: OptAttackBlock1_portA_confirmed->Mark() = 1;

+				inputGate.inputFunction:=confirmedPlace.name+"->Mark() = 1";

+				

+				successPlace.x := attackX+attackCounter*150+50;

+				successPlace.y := attackY+100;

+				confirmedPlace.x := attackX+attackCounter*150+50;

+				confirmedPlace.y := attackY;

+				inputGate.x := attackX+attackCounter*150+50;

+				inputGate.y := attackY+50;

+				attackCounter := attackCounter+1;

+				

+			}

+			

+		}else if (transition.isStereotyped(FAILURE_STEREOTYPE)) {

+			//TODO, for failure propagation, work in progress...

+			var failurePlace : SAN::Place = transition->UMLFailureTransition2OutgoingFailureXXX()->asSequence()->first();

+			result.place += failurePlace;

+			failurePlace.x := targetplaceX+targetStateCounter*150;

+			failurePlace.y := targetplaceY;

+			targetStateCounter := targetStateCounter+1;

+			

+			

+			var transTuple :=Tuple{inst=self, trans =transition};

+			var activity := UMLInstance_FailurePropagationTransition2InstantaneousActivity(transTuple);

+			activity.x := activityX+activityCounter*150;

+			activity.y := activityY;

+			activityCounter := activityCounter+1;

+			result.instantaneousActivity += activity;

+			sourcePlace.activity += activity;

+			activity.place += failurePlace;

+			

+		}

+	

+	};

+

+}

+

+

+

+

+mapping UML::InstanceSpecification::UMLInstance2AtomicNode_no_multi_instance() : SAN::AtomicNode {

+	

+	result.name:=self.name;

+	//result.model:=self.classifier->asSequence()->first().name;

+	result.model:=self.name;

+	

+	var errorModel : UML::StateMachine = self.getErrorModel();

+	//TODO: check about regions

+	var trans := errorModel.region->asSequence()->first().transition;

+	var source : UML::State;

+	var target : UML::State;

+	var sourceVertex : UML::Vertex;

+	var targetVertex : UML::Vertex;

+	var normalPlace : SAN::Place;

+	trans -> forEach(transition){

+		sourceVertex := transition.source->asSequence()->first();

+		targetVertex := transition.target->asSequence()->first();

+		

+		var t :=Set{self, sourceVertex};

+		

+		//t.resolveIn(Tuple(a:InstanceSpecification, b:Vertex)::UMLInstanceVertex2Place);

+		

+		var sourcePlace := sourceVertex.resolveoneIn(Vertex::UMLVertex2Place, Place);

+		if (sourcePlace = null){

+		

+			if (sourceVertex.oclIsTypeOf(UML::Pseudostate)){

+				//TODO for me moment skip pseudostates

+				continue;

+//				var place := sourceVertex.map UMLVertex2Place();

+//				result.place += place;

+				

+			}else{

+				if (sourceVertex.oclIsTypeOf(UML::State)){

+					sourcePlace := sourceVertex.map UMLVertex2Place(self);

+					result.place += sourcePlace;

+					if (not sourceVertex.getAppliedStereotype(NORMALSTATE_STEREOTYPE).oclIsUndefined()){

+						log("found normal state "+ sourceVertex.name);

+						normalPlace := sourcePlace;

+					};

+				}

+			}

+		};

+		var targetPlace := targetVertex.resolveoneIn(Vertex::UMLVertex2Place, Place);

+		if (targetPlace = null){

+			if (targetVertex.oclIsTypeOf(UML::State)){

+					targetPlace := targetVertex.map UMLVertex2Place(self);

+					result.place += targetPlace;

+				}

+		};

+		

+		//TODO actually I am not sure about internalPropagation mapping...

+		if (transition.isStereotyped(INTERNALFAULT_STEREOTYPE) or transition.isStereotyped(REPAIR_STEREOTYPE) or transition.isStereotyped(INTERNALPROPAGATION_STEREOTYPE)){

+			//create a timedACtivity

+			//log ("found internal fault "+transition.name);

+			var activity : SAN::Activity := transition.map UMLTransition2Activity(result);

+			sourcePlace.activity += activity;

+			activity.place +=targetPlace;

+			activity.name := sourcePlace.name+"_"+targetPlace.name;

+			if (activity.oclIsKindOf(SAN::TimedActivity)) {

+				result.timedActivity+=activity.oclAsType(SAN::TimedActivity);

+			}

+			else{

+				result.instantaneousActivity+=activity.oclAsType(SAN::InstantaneousActivity);

+			};

+			if (transition.isStereotyped(INTERNALPROPAGATION_STEREOTYPE)){

+				//TODO, for failure propagation, work in progress...

+				result.place += transition->UMLInternalPropagationTransition2IncomingFailureXXX();

+			}

+			

+		}else if (transition.isStereotyped(ATTACK_STEREOTYPE)){

+			//create a timedACtivity

+			--log ("found internal fault "+transition.name);

+			var activity : SAN::InstantaneousActivity := transition.map UMLAttackTransition2InstantaneousActivity();

+			sourcePlace.activity += activity;

+			activity.place +=targetPlace;

+			activity.name := sourcePlace.name+"_"+targetPlace.name;

+			result.instantaneousActivity+=activity;

+			

+			//check attack messages associated (through vulnerability) to the transition

+			var attackMessage : Set(UML::Message) := transition.getAttackMessages();

+			attackMessage -> forEach(message){

+				var inputGate := message.map UMLAttackMessage2InputGate(result, normalPlace);

+				var successPlace := message.map UMLAttackMessage2AttackSuccessPlace(result, inputGate);

+				var confirmedPlace := message.map UMLAttackMessage2AttackConfirmedPlace(result, activity, inputGate);

+				//e.g.: (OptAttackBlock1_portA_success->Mark() > 0) && (OK->Mark() > 0) && (OptAttackBlock1_portA_confirmed->Mark() == 0))

+				inputGate.inputPredicated:="("+successPlace.name+"->Mark() > 0) && ("+normalPlace.name+"->Mark() > 0) && ("+confirmedPlace.name+"->Mark() == 0)";

+				//e.g.: OptAttackBlock1_portA_confirmed->Mark() = 1;

+				inputGate.inputFunction:=confirmedPlace.name+"->Mark() = 1";

+			}

+			

+		}else if (transition.isStereotyped(FAILURE_STEREOTYPE)) {

+			//TODO, for failure propagation, work in progress...

+			result.place += transition->UMLFailureTransition2OutgoingFailureXXX();

+			

+		}

+	

+	};

+

+}

+

+//					add one place for attack_success,

+//					add one place for attack_confirmed,

+//					add an input attack_gate,

+//					connect attack_success with attack_gate,

+//					connect OK(normal state) with attack_gate,

+//					connect attack_confirmed with attack_gate,

+//					connect attack_confirmed with instActivityName/

+mapping UML::Message::UMLAttackMessage2AttackSuccessPlace(inout atomicNode : SAN::AtomicNode, inputGate : SAN::InputGate) : SAN::Place {

+	result.name := self.name +"_success";

+	atomicNode.place += result;

+	result.inputGate += inputGate;

+}

+mapping UML::Message::UMLAttackMessage2AttackConfirmedPlace(inout atomicNode : SAN::AtomicNode, instActivity : SAN::InstantaneousActivity, inputGate : SAN::InputGate) : SAN::Place {

+	result.name := self.name +"_confirmed";

+	atomicNode.place += result;

+	result.activity+=instActivity;

+	result.inputGate += inputGate;

+}

+mapping UML::Message::UMLAttackMessage2InputGate(inout atomicNode : SAN::AtomicNode, inout normalPlace : SAN::Place) : SAN::InputGate {

+	result.name := self.name +"Gate";

+	atomicNode.inputGate += result;

+	normalPlace.inputGate += result;

+	

+

+}

+

+mapping UML::Transition::UMLInternalFaultTransition2TimedActivity(inout atomicNode : SAN::AtomicNode) : SAN::TimedActivity when {self.isStereotyped(INTERNALFAULT_STEREOTYPE)} {

+	var internalFault : CHESS::ThreatsPropagation::InternalFault := self.getStereotypeApplication(INTERNALFAULT_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::InternalFault);

+	result.name := self.name;

+	if (not internalFault.oclAsType(CHESS::ThreatsPropagation::InternalFault).occurrence.oclIsUndefined()){

+		result.rate := internalFault.oclAsType(CHESS::ThreatsPropagation::InternalFault).occurrence.toString();

+	}else{

+		result.rate := self.name+"Rate";

+		atomicNode.addDoubleGlobalVariable(self.name+"Rate", atomicNode);

+	};

+	//TODO distribution function???

+	result.timeDistributionFunction := "exponential";

+}

+

+mapping UML::Transition::UMLRepairTransition2TimedActivity(inout atomicNode : SAN::AtomicNode) : SAN::TimedActivity when {self.isStereotyped(REPAIR_STEREOTYPE)} {

+	var repair : CHESS::MaintenanceMonitoring::Repair := self.getStereotypeApplication(REPAIR_STEREOTYPE).oclAsType(CHESS::MaintenanceMonitoring::Repair);

+	result.name := self.name;

+	if (not repair.probSuccess.oclIsUndefined()){

+		result.rate := repair.probSuccess.toString();

+	}else{

+		result.rate := self.name+"Rate";

+		atomicNode.addDoubleGlobalVariable(self.name+"Rate", atomicNode);	

+	};

+	//TODO distribution function???

+	result.timeDistributionFunction := "exponential";

+}

+

+mapping UML::Transition::UMLInternalPropagationTransition2InstantaneousActivity(inout atomicNode : SAN::AtomicNode) : SAN::InstantaneousActivity when {self.isStereotyped(INTERNALPROPAGATION_STEREOTYPE)} {

+	var internalPropag : CHESS::ThreatsPropagation::InternalPropagation := self.getStereotypeApplication(INTERNALPROPAGATION_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::InternalPropagation);

+	result.name := self.name;

+}

+

+mapping UML::Transition::UMLTransition2Activity(inout atomicNode : SAN::AtomicNode) : SAN::Activity 

+	disjuncts UML::Transition::UMLInternalFaultTransition2TimedActivity, UML::Transition::UMLRepairTransition2TimedActivity, UML::Transition::UMLInternalPropagationTransition2InstantaneousActivity {}

+

+mapping UML::Transition::UMLFailureTransition2OutgoingFailureXXX() : SAN::Place {

+	var failureStereo : CHESS::ThreatsPropagation::Failure := self.getStereotypeApplication(FAILURE_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::Failure);

+	result.name := failureStereo.mode->asSequence()->first();

+}

+

+mapping UML::Transition::UMLInternalPropagationTransition2IncomingFailureXXX() : SAN::Place {

+	var internalPropag : CHESS::ThreatsPropagation::InternalPropagation := self.getStereotypeApplication(INTERNALPROPAGATION_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::InternalPropagation);

+	result.name := internalPropag.externalFaults;

+}

+

+

+///////////////MULTI INSTANCE 

+mapping UMLInstance_InternalFaultTransition2TimedActivity(in tup : Tuple(inst:InstanceSpecification , trans:Transition), inout atomicNode : SAN::AtomicNode) : SAN::TimedActivity when {tup.trans.isStereotyped(INTERNALFAULT_STEREOTYPE)} {

+	var internalFault : CHESS::ThreatsPropagation::InternalFault := tup.trans.getStereotypeApplication(INTERNALFAULT_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::InternalFault);

+	result.name := tup.trans.name;

+	if (not internalFault.oclAsType(CHESS::ThreatsPropagation::InternalFault).occurrence.oclIsUndefined()){

+		result.rate := internalFault.oclAsType(CHESS::ThreatsPropagation::InternalFault).occurrence.toString();

+	}

+	else{

+		result.rate := tup.trans.name+"Rate";

+		atomicNode.addDoubleGlobalVariable(tup.trans.name+"Rate", atomicNode);	

+	};

+	//TODO distribution function???

+	result.timeDistributionFunction := "exponential";

+}

+mapping UMLInstance_RepairTransition2TimedActivity(in tup : Tuple(inst:InstanceSpecification , trans:Transition), inout atomicNode : SAN::AtomicNode) : SAN::TimedActivity when {tup.trans.isStereotyped(REPAIR_STEREOTYPE)} {

+	var repair : CHESS::MaintenanceMonitoring::Repair := tup.trans.getStereotypeApplication(REPAIR_STEREOTYPE).oclAsType(CHESS::MaintenanceMonitoring::Repair);

+	result.name := tup.trans.name;

+	if (not repair.probSuccess.oclIsUndefined()){

+		result.rate := repair.probSuccess.toString();

+	}else{

+		result.rate := tup.trans.name+"Rate";

+		atomicNode.addDoubleGlobalVariable(tup.trans.name+"Rate", atomicNode);	

+	};

+	//TODO distribution function???

+	result.timeDistributionFunction := "exponential";

+}

+mapping UMLInstance_InternalPropagationTransition2IncomingFailureXXX(in tup : Tuple(inst:InstanceSpecification , trans:Transition)) : SAN::Place {

+	var internalPropag : CHESS::ThreatsPropagation::InternalPropagation := tup.trans.getStereotypeApplication(INTERNALPROPAGATION_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::InternalPropagation);

+	result.name := internalPropag.externalFaults;

+}

+

+mapping UMLInstance_InternalPropagationTransition2InstantaneousActivity(in tup : Tuple(inst:InstanceSpecification , trans:Transition)) : SAN::InstantaneousActivity when {tup.trans.isStereotyped(INTERNALPROPAGATION_STEREOTYPE)} {

+	var internalPropag : CHESS::ThreatsPropagation::InternalPropagation := tup.trans.getStereotypeApplication(INTERNALPROPAGATION_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::InternalPropagation);

+	result.name := tup.trans.name;

+}

+

+mapping UMLInstance_FailurePropagationTransition2InstantaneousActivity(in tup : Tuple(inst:InstanceSpecification , trans:Transition)) : SAN::InstantaneousActivity when {tup.trans.isStereotyped(FAILURE_STEREOTYPE)} {

+	var internalPropag : CHESS::ThreatsPropagation::Failure := tup.trans.getStereotypeApplication(FAILURE_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::Failure);

+	result.name := tup.trans.name;

+}

+/////////////////////

+

+

+//TODO get a precondition here about attacktransition

+mapping UML::Transition::UMLAttackTransition2InstantaneousActivity() : SAN::InstantaneousActivity {

+	var internalFault : CHESS::ThreatsPropagation::Attack := self.getStereotypeApplication(ATTACK_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::Attack);

+	result.name := self.name;

+}

+

+

+mapping UML::Vertex::UMLVertex2Place(instance : InstanceSpecification) : SAN::Place {

+	result.name := self.name;

+	if (not self.getAppliedStereotype(NORMALSTATE_STEREOTYPE).oclIsUndefined()){

+		result.initialState :=1;

+	}else{

+		result.initialState :=0;

+	}

+}

+

+mapping Tuple(a:InstanceSpecification , b:Vertex)::UMLInstanceVertex2Place() : SAN::Place {

+	result.name := self.b.name;

+	if (not self.b.getAppliedStereotype(NORMALSTATE_STEREOTYPE).oclIsUndefined()){

+		result.initialState :=1;

+	}else{

+		result.initialState :=0;

+	}

+}

+

+mapping UMLInstance_Vertex2Place(in tup : Tuple(inst:InstanceSpecification , vertex:Vertex)) : SAN::Place{

+	result.name := tup.vertex.name;

+	if (not tup.vertex.getAppliedStereotype(NORMALSTATE_STEREOTYPE).oclIsUndefined()){

+		result.initialState :=1;

+	}else{

+		result.initialState :=0;

+	}

+}

+

+//mapping UML::State::UMLState2Place() : SAN::Place {

+//	result.name := self.name;

+//}

+

+//TODO use AnalysisContext.workload property

+//currently I use the 'condition' string property = <interaction1QN>;<Inteaction2QN>;...

+query UML::Class::initAttackScenario_OLD(){

+

+	var analysis : CHESS::StateBasedAnalysis::SANAnalysis := self.getStereotypeApplication(SANANALYSIS_STEREOTYPE).oclAsType(CHESS::StateBasedAnalysis::SANAnalysis);

+	--log("attack scenario QN : "+analysis.condition);

+	var interactions :Collection(String) := analysis.condition.oclAsType(String).trim().tokenize(";").trim();

+	interactions -> forEach(interactionQN){

+		var interaction : UML::Interaction := this.model.findElementByQualifiedName(interactionQN).oclAsType(UML::Interaction);

+		log("attack scenario found : "+interaction.name);

+		this.attackScenarios += interaction;

+	};

+}

+

+query UML::Class::initAttackScenario(){

+

+	var analysis : CHESS::StateBasedAnalysis::SANAnalysis := self.getStereotypeApplication(SANANALYSIS_STEREOTYPE).oclAsType(CHESS::StateBasedAnalysis::SANAnalysis);

+	--log("attack scenario QN : "+analysis.condition);

+	

+	//to be used with the official MARTE release

+	//var  workloads : Set(MARTE::GQAM::GaWorkloadBehavior) := analysis.workload->asSet();

+	//to be used with the nightly build MARTE (the one solving CDO issue)

+	var  workloads : Set(MARTE::GQAMMARTE_AnalysisModel::GQAM::GaWorkloadBehavior) := analysis.workload->asSet();

+	

+	workloads -> forEach(workload){

+		var named :=workload.base_NamedElement;

+		//ocl check does not work...

+		//if (named->oclIsTypeOf(UML::Interaction)){

+			log("attack scenario found : "+named.name);

+			this.attackScenarios += named.oclAsType(UML::Interaction);

+		//}

+	};

+

+}

+

+

+query UML::Class::initRewards(){

+	var analysis : CHESS::StateBasedAnalysis::SANAnalysis := self.getStereotypeApplication(SANANALYSIS_STEREOTYPE).oclAsType(CHESS::StateBasedAnalysis::SANAnalysis);

+	

+	analysis.context-> forEach (reward){

+		if (reward.toString().startsWith('*.')){  //support for wildcard, e.g. *.ErrorState ->all instances having ErorState are interested by the reward

+			var stateName := reward.toString().substring(3, reward.toString().size());

+			//check all errorModel instances

+			var children := getAllErrorModelBehaviourInstance();

+			var errorModel : UML::StateMachine;

+			children -> forEach(child){

+				errorModel := child.getErrorModel();

+				//if (errorModel != null and not errorModel->oclIsInvalid()){ //this is actually guaranteed

+					var vertexes := errorModel.region->asSequence()->first().oclAsType(UML::Region).subvertex;

+					vertexes ->forEach(vertex){

+						if (vertex.name = stateName){

+							this.rewardStates  += child.name+"."+vertex.oclAsType(UML::State).name;

+						}

+					}

+				//}

+			}

+		}else{

+			//TODO here I just copy the name of the state from the analysis context...for each state, I should check that it exist actually in the model

+			//Assumption: reward = <instance name>.<error model state name>

+			this.rewardStates+=reward;

+		}

+	};

+	this.rewardStates -> forEach(state){

+		log("reward states of interest: " + state);

+	};

+	

+}

+

+query getAllErrorModelBehaviourInstance() : Set(UML::InstanceSpecification){

+	var set := instancePackage.ownedElement->selectByKind(InstanceSpecification)->select(i:InstanceSpecification | not (i->oclAsType(UML::InstanceSpecification).getErrorModel()=null));

+	return set;

+}

+

+//returns the UML Messages associated (through vulnerability) to transition

+query UML::Transition::getAttackMessages() : Set(UML::Message){

+

+	var attack := self.getStereotypeApplication(ATTACK_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::Attack);

+	var vuln := attack.vulnerability;

+	

+	var messages : Set(UML::Message) = Set{};

+	this.attackScenarios -> forEach(scenario){

+		scenario.ownedElement -> forEach(element){

+			if (element.isStereotyped(ATTACK_STEREOTYPE)){

+				var attackMsg := element.getStereotypeApplication(ATTACK_STEREOTYPE).oclAsType(CHESS::ThreatsPropagation::Attack);

+				if (attackMsg.vulnerability=(attack.vulnerability)){

+					messages += element.oclAsType(UML::Message);

+				}

+			}

+		}

+	};

+	return messages;

+}

+

+

+query UML::Interaction::getAttackMessages() : Set(UML::Message){

+	var messages : Set(UML::Message) = Set{};

+	self.ownedElement -> forEach(element){

+		if (element.isStereotyped(ATTACK_STEREOTYPE)){

+			messages += element.oclAsType(UML::Message);

+		}

+	};

+	return messages;

+}

+

+

+--Returns the reward states of interest for the given instance

+--assumption: rewards states have been previously retrieved

+--assumption: rewards states have been provided as string <instance name>.<state name>

+query UML::InstanceSpecification::getRewardStates() : Set(UML::State){

+	var states : Set(UML::State) = Set{};

+	this.rewardStates -> forEach(state){

+				

+		var instanceName : String := state.substring(1, state.lastIndexOf(".")-1);

+		if (self.name=instanceName){

+			var stateName = state.substring(state.lastIndexOf(".")+1, state.size());

+			--log("rewards state name: " + stateName);

+			var errorModel : UML::StateMachine = self.getErrorModel();

+			

+			//TODO: check about regions

+			var vertexes := errorModel.region->asSequence()->first().oclAsType(UML::Region).subvertex;

+			vertexes ->forEach(vertex){

+				if (vertex.name = stateName){

+					states  += vertex.oclAsType(UML::State);

+				}

+			}

+		}

+	};

+	return states;

+}

+

+--self has been already be mapped to an AtomicNode

+query UML::InstanceSpecification::getRewardsPlaces() : Set(SAN::Place){

+	var places : Set(SAN::Place) = Set{};

+	var states := self.getRewardStates();

+	states->forEach(state){

+		//find the place of the node originating from self which has been derived from 'state'

+		var atomic : SAN::AtomicNode := self.resolveoneIn(UML::InstanceSpecification::UMLInstance2AtomicNode, SAN::AtomicNode);

+		atomic.place -> forEach(place){

+			if (place.name = state.name){

+				places += place;

+				continue;

+			}

+		}

+		

+	};

+	return places;

+}

+

+--returns the place corresponding to the given instance's' state

+--self has been already be mapped to an AtomicNode

+query UML::InstanceSpecification::getPlace(state : UML::State) : SAN::Place{

+	

+	//find the place of the node originating from self which has been derived from 'state'

+	var atomic : SAN::AtomicNode := self.resolveoneIn(UML::InstanceSpecification::UMLInstance2AtomicNode, SAN::AtomicNode);

+	atomic.place -> forEach(place){

+		if (place.name = state.name){

+			return place;

+		}

+	};

+	return null;	

+}

+

+--returns the places corresponding to success attack owned by the given AtomicNode

+query SAN::AtomicNode::getSuccessAttackPlace() : Set(SAN::Place){

+	var places : Set(SAN::Place) = Set{};

+	self.place -> forEach(place){

+		var source := place.invresolveIn(UML::Message::UMLAttackMessage2AttackSuccessPlace);

+		if (not source->asSequence()->isEmpty()){

+			var msg = source->asSequence()->first();

+			places += place;

+			--log ("found success attack mesasge "+ msg.oclAsType(Message).name);

+		}

+	};

+	return places;

+}

+

+--return the Message from which the given Place has been mapped, if any

+query SAN::Place::getAttackMessage() : UML::Message {

+	var msg : UML::Message;

+	var source := self.invresolveIn(UML::Message::UMLAttackMessage2AttackSuccessPlace);

+	if (not source->asSequence()->isEmpty()){

+		msg := source->asSequence()->first();

+	};

+	return msg;

+}

+

+

+helper UML::InstanceSpecification::hasErrorModel() : Boolean =

+	self.getErrorModel() != null;

+

+helper UML::InstanceSpecification::getErrorModel() : UML::StateMachine =

+ self.classifier.oclAsType(UML::Class).ownedBehavior->selectOne(sm : UML::StateMachine | sm.isStereotyped(ERRORMODEL_STEREOTYPE)).oclAsType(StateMachine);

+ 

+ query UML::InstanceSpecification::getInternalPropagation() : Set(UML::Transition) {

+ 	var res : Set(UML::Transition);

+ 	var trans := self.getErrorModel().region->asSequence()->first().transition;

+	trans -> forEach(transition){

+ 		if (transition.isStereotyped(INTERNALPROPAGATION_STEREOTYPE)){

+ 			res += transition;

+ 		}

+ 	};

+ 	return res;

+ }

+ 

+  query UML::InstanceSpecification::getFailureTransition() : Set(UML::Transition) {

+ 	var res : Set(UML::Transition);

+ 	var trans := self.getErrorModel().region->asSequence()->first().transition;

+	trans -> forEach(transition){

+ 		if (transition.isStereotyped(FAILURE_STEREOTYPE)){

+ 			res += transition;

+ 		}

+ 	};

+ 	return res;

+ }

+

+

+//query UML::InstanceSpecification::hasInternalInstancesWithErroModel() : Boolean {

+//	var childs := self.getSubInstances();

+//	childs -> forEach(child){

+//		if (not child.getErrorModel()->oclIsUndefined())

+//			return true;

+//		if (child.getSubInstances()->size() >0){

+//			var res = child.hasInternalInstancesWithErroModel();

+//			if (res){

+//				return true;

+//			}

+//		}

+//			

+//	};

+//	return false;

+//}

+

+--------------------------------------------------------------------

+-- Helpers to get, start from a given InstanceSpecification,

+-- port instances and subcomponent instances

+--------------------------------------------------------------------

+helper UML::InstanceSpecification::getPortSlots() : Set(UML::Slot) = 

+	self.slot->select(s | s.definingFeature.oclIsKindOf(UML::Port));

+

+helper UML::InstanceSpecification::getSubInstanceSlots() : Set(UML::Slot) =

+	self.slot->select(s | not s.definingFeature.oclIsKindOf(UML::Port));

+

+query UML::InstanceSpecification::getSubInstances() : Set(UML::InstanceSpecification) {

+	var slots : Set(UML::Slot) = self.getSubInstanceSlots()->select(s | s.value->first().oclIsKindOf(UML::InstanceValue));

+	var instances : Set(UML::InstanceSpecification);

+	slots -> forEach(slot){

+		instances += slot.value.oclAsType(UML::InstanceValue).instance;

+	};

+	--log("subinstances of "+self.name+" = "+instances->size().toString());

+	return instances;

+}

+

+

+query UML::InstanceSpecification::getAllSubInstances() : List(UML::InstanceSpecification) {

+	var res : List(UML::InstanceSpecification);

+	var instances : Set(UML::InstanceSpecification);

+	instances := self.getSubInstances();

+	var sub : Set(UML::InstanceSpecification);

+	instances->forEach(instance){

+		res->add(instance);

+		var sub2 = instance.getAllSubInstances();

+		sub2 -> forEach (instance2) {

+			res->add(instance2);

+		};

+	};

+	return res;

+}

+

+query UML::InstanceSpecification::hasInternalErrorModelBehaviour() : Boolean {

+	var b: Boolean = not self.getAllSubInstances()->select(inst : InstanceSpecification | inst.getErrorModel() != null)->isEmpty();

+	//log("*************"+self.name+" has internal errorModel "+b.toString());

+	return b;

+}

+

+

+

+helper UML::InstanceSpecification::isSubInstanceOf(parent : UML::InstanceSpecification) : Boolean =

+	parent.getSubInstances()->includes(self);

+	

+helper UML::InstanceSpecification::isComposite() : Boolean =

+	self.getSubInstances()->notEmpty();

+

+

+

+--------------------------------------------------------------------

+-- Helpers to explore the model and get the component that is

+-- connected to the other side of a port

+--------------------------------------------------------------------

+

+--Get connectors that are linked to a certain port instance

+helper UML::Slot::getConnectors() : Set(UML::InstanceSpecification) =

+	this.umlInstancesConnectors->

+				select(c | not c.slot->select(s | s.definingFeature = self.definingFeature 

+					and s.value->first().oclAsType(UML::InstanceValue).instance = self.owningInstance)->isEmpty());

+					

+query UML::Slot::getConnectorsDEBUG() : Set(UML::InstanceSpecification) {

+	var se : Set(UML::InstanceSpecification) := this.umlInstancesConnectors->

+				select(c | not c.slot->select(s | s.definingFeature = self.definingFeature 

+					and s.value->first().oclAsType(UML::InstanceValue).instance = self.owningInstance)->isEmpty());

+	log ("getConnectors - found "+se->size().toString());

+	return se;

+}

+					

+--Is the connector instance a "normal" connection

+--betweentwo components at the same level?

+--THIS HELPER DOES NOT WORK, IT RETURNS ALWAYS INVALID... 

+helper UML::InstanceSpecification::isConnectionORIG() : Boolean = 

+	let sl : OrderedSet(UML::Slot) = self.slot->asOrderedSet() in

+	let i1 : UML::InstanceSpecification = sl->first().value->first().oclAsType(UML::InstanceValue).instance in

+	let i2 : UML::InstanceSpecification = sl->last().value->first().oclAsType(UML::InstanceValue).instance in

+	if (i1.oclIsUndefined() or i2.oclIsUndefined()) then false 

+	else {

+		not i1.isSubInstanceOf(i2) and not i2.isSubInstanceOf(i1)

+	}

+	endif;

+	

+--Is the connector instance a "normal" connection

+--betweentwo components at the same level?

+query UML::InstanceSpecification::isConnection() : Boolean {

+	var res  : Boolean;

+	var slots : OrderedSet(UML::Slot) = self.slot->asOrderedSet();

+	var i1 : InstanceSpecification = slots->first().value->first().oclAsType(UML::InstanceValue).instance;

+	var i2 : InstanceSpecification = slots->last().value->first().oclAsType(UML::InstanceValue).instance;

+	

+	if (i1.oclIsUndefined() or i2.oclIsUndefined()) then {

+	 res := false;

+	}

+	else {

+		res :=not i1.isSubInstanceOf(i2) and not i2.isSubInstanceOf(i1);

+	}

+	endif;

+	return res;

+}

+

+--Is the connector instance a delegation?

+helper UML::InstanceSpecification::isDelegation() : Boolean = 

+	let sl : OrderedSet(UML::Slot) = self.slot->asOrderedSet() in

+	let i1 : UML::InstanceSpecification = sl->first().value->first().oclAsType(UML::InstanceValue).instance in

+	let i2 : UML::InstanceSpecification = sl->last().value->first().oclAsType(UML::InstanceValue).instance in

+	i1.isSubInstanceOf(i2) or i2.isSubInstanceOf(i1);

+	

+	

+	

+	--Get the target of connection taking into account SBA stereotypes,

+--i.e., get the first slot whose owning instance has SBA information.

+--(it can be even the slot directly connected to the one under examination)

+--Stefano: I have added self to the set of port for which immediate and delegation down has to be cheked

+helper UML::Slot::getSBAConnections() : Set(UML::Slot) =

+	self.getSBADelegationsUpwards()->union(self->asBag())->

+		collect(d | d.getConnectedImmediate())->flatten()->

+		collect(sl | sl.getSBADelegationsDownwards())->flatten()->asSet();	

+		

+		

+		

+--Get the target of delegation taking into account SBA stereotypes,

+--i.e., get the first slot whose owning instance has SBA information.

+--(it can be even the slot under examination itself)

+helper UML::Slot::getSBADelegationsDownwardsORIG() : Set(UML::Slot) =

+	let inst : UML::InstanceSpecification = self.owner.oclAsType(UML::InstanceSpecification) in

+	let deleg : Set(UML::Slot) = self.getDelegationEndsDownwards() in

+	if deleg->isEmpty() or 

+		inst.getSubInstances().getErrorModel()->oclIsUndefined() or 

+		inst.getSubInstances()->isEmpty() 

+	then

+		Set{self}

+	else

+		deleg->collect(e | e.getSBADelegationsDownwards())->flatten()->asSet()

+	endif;

+	

+--Get the target of delegation taking into account SBA stereotypes,

+--i.e., get the first slot whose owning instance has SBA information.

+--(it can be even the slot under examination itself)

+query UML::Slot::getSBADelegationsDownwards() : Set(UML::Slot) {

+

+	if (self.owner.oclAsType(UML::InstanceSpecification).getErrorModel()->oclIsUndefined())

+		return Set{self};

+

+	var res = let inst : UML::InstanceSpecification = self.owner.oclAsType(UML::InstanceSpecification) in

+	let deleg : Set(UML::Slot) = self.getDelegationEndsDownwards() in

+	if deleg->isEmpty() or 

+		--not (inst.getErrorModel()->oclIsUndefined()) or 

+		inst.getSubInstances()->isEmpty() 

+	then

+		Set{self}

+	else

+		deleg->collect(e | e.getSBADelegationsDownwards())->flatten()->asSet()

+	endif;

+	

+	--log("getSBADelegationsDownwards for " + self.definingFeature.name +" , res  is "+res->size().toString());

+	

+	return res;

+}

+		

+helper UML::Slot::getSBADelegationsUpwards() : Set(UML::Slot) =

+	let inst : UML::InstanceSpecification = self.owner.oclAsType(UML::InstanceSpecification) in

+	let deleg : Set(UML::Slot) = self.getDelegationEndsUpwards() in

+	if deleg->isEmpty() then

+		Set{self}

+	else

+		deleg->collect(e | e.getSBADelegationsUpwards())->flatten()->asSet()

+	endif;

+

+--Get taget(s) of delegation in sub-instances

+helper UML::Slot::getDelegationEndsDownwards() : Set(UML::Slot) = 

+	self.getDelegationEnds()->select(s | s.owner.oclAsType(UML::InstanceSpecification).isSubInstanceOf(self.owner.oclAsType(UML::InstanceSpecification)))->asSet();

+

+--Get source(s) of delegation in parent instance

+helper UML::Slot::getDelegationEndsUpwards() : Set(UML::Slot) = 

+	self.getDelegationEnds()->select(s | self.owner.oclAsType(UML::InstanceSpecification).isSubInstanceOf(s.owner.oclAsType(UML::InstanceSpecification)))->asSet();

+	

+--Get port instances that receive/send delegation from/to a certain port instance

+helper UML::Slot::getDelegationEnds() : Set(UML::Slot) =

+	let connectorsSlots : Set(UML::Slot) =

+	self.getConnectors()->select(c | c.isDelegation())->

+							collect(c | c.slot)->

+							flatten()->

+							select(s | s.definingFeature <> self.definingFeature)->asSet()

+	in

+	connectorsSlots->collect(s | s.value.oclAsType(InstanceValue).instance.slot->

+									select(sl | sl.definingFeature = s.definingFeature))->flatten()->asSet();

+	

+	

+--Get port instances that are *directly* connected to a certain port instance

+helper UML::Slot::getConnectedImmediateORIG() : Set(UML::Slot) =

+	let connectorsSlots : Set(UML::Slot) = 

+	self.getConnectors()->select(c | c.isConnection())->

+							collect(c | c.slot)->

+							flatten()->

+							select(s | s.definingFeature <> self.definingFeature)->asSet()

+	in

+	connectorsSlots->collect(s | s.value.oclAsType(UML::InstanceValue).instance.slot->

+									select(sl | sl.definingFeature = s.definingFeature))->flatten()->asSet();

+									

+query UML::Slot::getConnectedImmediate() : Set(UML::Slot) {

+	var res := let connectorsSlots : Set(UML::Slot) = 

+	self.getConnectors()->select(c | c.isConnection())->

+							collect(c | c.slot)->

+							flatten()->

+							select(s | s.definingFeature <> self.definingFeature)->asSet()

+	in

+	connectorsSlots->collect(s | s.value.oclAsType(UML::InstanceValue).instance.slot->

+									select(sl | sl.definingFeature = s.definingFeature))->flatten()->asSet();

+	--log("getConnectedImmediate for slot "+self.definingFeature.name+" , res is "+res->size().toString());

+	return res;

+}

+									

+									

+query UML::Slot::getConnectedImmediateDEBUG() : Set(UML::Slot) {

+	

+	var se : Set(UML::Slot) :=

+	let connectorsSlots : Set(UML::Slot) = 

+	self.getConnectors()->select(c | c.isConnection())->

+							collect(c | c.slot)->

+							flatten()->

+							select(s | s.definingFeature <> self.definingFeature)->asSet()

+	in

+	connectorsSlots->collect(s | s.value.oclAsType(UML::InstanceValue).instance.slot->

+									select(sl | sl.definingFeature = s.definingFeature))->flatten()->asSet();

+								

+	return se;								

+}

+	

+------------------------------------------------------------------------------

+--Helpers for attack scenarios

+------------------------------------------------------------------------------

+

+

+

+

+--------------------------------------------------------------------

+-- Check if a Port (or Slot) has input or output dataflow

+--------------------------------------------------------------------

+helper UML::Slot::hasInputFlow() : Boolean = self.definingFeature.oclAsType(UML::Port).hasInputFlow();

+helper UML::Slot::hasOutputFlow() : Boolean = self.definingFeature.oclAsType(UML::Port).hasOutputFlow();

+

+helper  UML::Port::hasInputFlow() : Boolean =

+	let flowport : SysML::FlowPort = SysML::FlowPort.allInstances()->select(c | c.base_Port = self)->asSequence()->first() in

+	

+		if not flowport.oclIsUndefined() then 

+			flowport.hasInputFlow() 

+		else

+			false

+	 endif;

+	 

+helper UML::Port::hasOutputFlow() : Boolean =

+	

+	let flowport : SysML::FlowPort = SysML::FlowPort.allInstances()->select(c | c.base_Port = self)->asSequence()->first() in

+		if not flowport.oclIsUndefined() then flowport.hasOutputFlow() 

+		 else

+				false

+	endif;

+	

+helper SysML::FlowPort::hasInputFlow() : Boolean = self.direction.toString() <> 'out';

+helper SysML::FlowPort::hasOutputFlow() : Boolean = self.direction.toString() = 'out';

+

+helper SAN::Node::addDoubleGlobalVariable(glob : String, inout node : SAN::Node){

+	if(glob.startsWith("1.0")){

+		return;

+	};

+	var globVar : SAN::GlobalVariable := object SAN::GlobalVariable{name := glob; type := "double";};

+	node.globalVariable += globVar;

+} 

+

+helper UML::InteractionOperand::getPredicate() : String{

+	var pred : String  = self.name;

+	var valSpec: ValueSpecification  = self.guard.specification;

+	if(valSpec.oclIsTypeOf(LiteralString)){

+		var litStr: LiteralString  = valSpec.oclAsType(LiteralString);

+		if(litStr.value="else" and not predicateList->isEmpty()){

+			var s : String := predicateList->size().toString(); 

+			log("predicate list "+ s);

+			

+			pred := "1.0 - (";

+			var first : Boolean := true;

+			predicateList -> forEach (predicate){

+				if(first){

+					pred :=pred + predicate;

+					first := false;

+				}else{

+					pred:=pred+" + " + predicate;

+				};

+			};

+			pred:= pred +')';

+		}else{

+			pred := litStr.value;

+			//add it to current predicate list:

+			predicateList->add(pred);

+		};

+	};	

+	return pred;	

+}

+

+query UML::InteractionOperand::getOperationAttack(ownerInteraction:UML::Interaction) : UML::Message{

+	var msg : Message;

+	ownerInteraction.getAttackMessages()->forEach(message){

+		if(message.sendEvent.oclIsTypeOf(MessageOccurrenceSpecification)){

+			var	msgOcc : MessageOccurrenceSpecification := message.sendEvent.oclAsType(MessageOccurrenceSpecification);

+				if (msgOcc.enclosingOperand != null and msgOcc.enclosingOperand=self){

+					msg := message;

+					break;//TODO what about multiple attack in the same operand?

+				}

+		}

+	};

+	return msg;

+}

+

+query getAltOffset(index: Integer, size: Integer) : Integer {

+		var res:Real := (index +1 - size/2)*OFFSET; //size is even

+		if(size.mod(2) != 0){ //size is odd

+			res := (index - size/2)*OFFSET;

+		};

+		return res.floor()+1;

+	}

+

+helper UML::InteractionOperand::getLoopCounter() : String{

+	var res : String  = "counter";

+	//maxint can be literal string or int

+	var valSpec : UML::ValueSpecification  := self.guard.maxint;

+	if(valSpec.oclIsTypeOf(UML::LiteralString)){

+		var litStr: LiteralString = valSpec.oclAsType(UML::LiteralString);

+		res:= litStr.value;

+	}else if(valSpec.oclIsTypeOf(LiteralInteger)){

+		var litInt : LiteralInteger  = valSpec.oclAsType(LiteralInteger);

+		res := litInt.value.toString();

+	};

+	//minint is expected to be = 1

+	//moreover: the loop counter should be a short variable in Mobius

+	return res;

+}

+

+helper UML::DurationConstraint::getDelay() : String{

+	var res : String = "delay";

+	var duration : DurationConstraint = self.oclAsType(DurationConstraint);

+	var durInt : DurationInterval = duration.specification.oclAsType(DurationInterval);

+		// min/max duration interval

+	var litStrMin : LiteralString;

+	var litStrMax : LiteralString;

+	var durMin : Duration := durInt.min.oclAsType(Duration);

+	var durMax : Duration := durInt.max.oclAsType(Duration);

+		

+	if(durMin.expr.oclIsTypeOf(LiteralString) and durMax.expr.oclIsTypeOf(LiteralString)){

+			litStrMin :=  durMin.expr.oclAsType(LiteralString);

+			litStrMax :=  durMin.expr.oclAsType(LiteralString);

+			if(litStrMin.value=litStrMax.value){

+				res := litStrMin.value;

+			}

+		};

+	return res;

+}

diff --git a/plugins/mobius/org.polarsys.chess.mobius/transformations/CommonUtilities.qvto b/plugins/mobius/org.polarsys.chess.mobius/transformations/CommonUtilities.qvto
new file mode 100644
index 0000000..8f6a7f1
--- /dev/null
+++ b/plugins/mobius/org.polarsys.chess.mobius/transformations/CommonUtilities.qvto
@@ -0,0 +1,98 @@
+/*******************************************************************************

+ *                  CHESS core plugin

+ *

+ *               Copyright (C) 2011-2015

+ *            Mälardalen University, Sweden

+ *

+ *

+ *  All rights reserved. This program and the accompanying materials

+ *  are made available under the terms of the Eclipse Public License

+ *  v1.0 which accompanies this distribution, and is available at

+ *  http://www.eclipse.org/legal/epl-v10.html

+ *******************************************************************************/

+

+modeltype chess uses chessmlprofile('http://CHESS');

+modeltype uml uses 'http://www.eclipse.org/uml2/5.0.0/UML';

+

+

+library CommonUtilities;

+

+query Model::getView(viewName : String) : Package {

+	var seq := self.packagedElement[Package]-> union(self.packagedElement[Package].packagedElement[Package]);

+	return seq -> selectOne(isStereotyped("CHESS::Core::CHESSViews::" + viewName));

+}

+

+query NamedElement::getTransformationId() : String {

+	//return self.getXmiId();

+	return self.getQualifiedName();

+}

+

+query uml::Class::isComposite() : Boolean {

+	return self.ownedMember->exists(oclIsTypeOf(Property));

+}

+

+query InstanceSpecification::isComposite() : Boolean {

+	return self.ownedElement[Slot]->exists(slot : Slot | slot.definingFeature.oclIsKindOf(Port) = false); 

+}

+

+query uml::Property::hasPorts() : Boolean{

+	return not self.type.ownedElement[Port]->isEmpty();

+}

+

+query uml::Element::getPort(id : String) : uml::Port {

+	return self.ownedElement[uml::Port]->selectOne(getTransformationId() = id);

+}

+

+query uml::Component::getSubcomponent(id : String) : Class{

+	return self.ownedElement[Class]->selectOne(getTransformationId() = id);

+}

+

+query uml::Class::getProperty(id : String) : Property{

+	return self.ownedElement[Property]->selectOne(getTransformationId() = id);

+}

+

+query Comment::hasAnnotatedElement(element : Element) : Boolean {

+	return self.annotatedElement->exists(annotatedElement : Element | annotatedElement = element);

+}

+

+query Element::isStereotyped(stereoName : String) : Boolean {

+	return self.getAppliedStereotype(stereoName) <> null;

+}

+

+query Element::getStereotypeApplication(qualifiedName : String) : OclAny {

+	return self.getStereotypeApplication(self.getApplicableStereotype(qualifiedName));

+}

+

+query Element::applyStereotype(qualifiedName : String) : Stereotype{

+	var stereotype := self.getApplicableStereotype(qualifiedName);

+	if (stereotype <> null) {

+		self.applyStereotype(stereotype);

+	};

+	return stereotype;

+}

+

+query Element::getStereotypeValue(qualifiedName : String, propertyName : String) : OclAny {

+	var stereotype = self.getAppliedStereotype(qualifiedName);

+	if (stereotype = null) {

+		return null;

+	};

+	return self.getValue(self.getAppliedStereotype(qualifiedName), propertyName);

+}

+

+query Model::findElementByQualifiedName(in qName : String) : NamedElement {

+	var pathParts = qName.tokenize("::")->asOrderedSet();

+	assert fatal (pathParts->first() = "model");

+	if (pathParts->size() = 1) {

+		return self;

+	};

+	var i : Integer = 2;

+	var p : Package := self;

+	while (i < pathParts->size()) {

+		var packageName = pathParts->at(i); 

+		p := p.ownedElement[Package]->selectOne(name = pathParts->at(i));

+		i := i + 1;

+	};

+	return p.ownedMember[NamedElement]->selectOne(name = pathParts->last());

+}

+

+

diff --git a/plugins/org.polarsys.chess.cdo/plugin.xml b/plugins/org.polarsys.chess.cdo/plugin.xml
index c2d3af3..87f9f9b 100644
--- a/plugins/org.polarsys.chess.cdo/plugin.xml
+++ b/plugins/org.polarsys.chess.cdo/plugin.xml
@@ -59,26 +59,28 @@
   <extension point="org.eclipse.ui.menus">
   	<menuContribution
     	allPopups="false"
-        locationURI="menu:org.eclipse.ui.main.menu">
- 		<menu
-        	id="org.polarsys.chess.mainMenu"
-            label="CHESS"
-            mnemonic="E">
+        locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.basicoperations.id">
+ 		
             <menu
-            	id="org.polarsys.chess.mainMenu.cdo"
-            	label="CDO">
-				<command
-					commandId="org.polarsys.chess.cdo.import"
-			    	label="Import from CDO"
-			    	style="push">
-			  	</command>
-			  	<command
-					commandId="org.polarsys.chess.cdo.export"
-			    	label="Export to CDO"
-			    	style="push">
-			  	</command>
-          	</menu>
-      	</menu>
+                  id="chess.menu.importexport.id"
+                  label="Import/Export">
+               <menu
+                     id="chess.menu.cdo.id"
+                     label="CDO">
+                  <command
+                        commandId="org.polarsys.chess.cdo.import"
+                        label="Import from CDO"
+                        style="push">
+                  </command>
+                  <command
+                        commandId="org.polarsys.chess.cdo.export"
+                        label="Export to CDO"
+                        style="push">
+                  </command>
+               </menu>
+            </menu>
+          
+      	
 	</menuContribution>
   </extension>
   <extension point="org.eclipse.ui.handlers">
diff --git a/plugins/org.polarsys.chess.chessmlprofile/model/CHESS.genmodel b/plugins/org.polarsys.chess.chessmlprofile/model/CHESS.genmodel
index 927ee1e..7abd449 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/model/CHESS.genmodel
+++ b/plugins/org.polarsys.chess.chessmlprofile/model/CHESS.genmodel
@@ -465,9 +465,26 @@
               propertySortChoices="true" ecoreFeature="ecore:EReference chessmlprofile.ecore#//Dependability/ThreatsPropagation/Attack/vulnerability"/>

           <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

               propertySortChoices="true" ecoreFeature="ecore:EAttribute chessmlprofile.ecore#//Dependability/ThreatsPropagation/Attack/threat"/>

+          <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

+              propertySortChoices="true" ecoreFeature="ecore:EReference chessmlprofile.ecore#//Dependability/ThreatsPropagation/Attack/base_Message"/>

+          <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute chessmlprofile.ecore#//Dependability/ThreatsPropagation/Attack/intensity"/>

         </genClasses>

         <genClasses xsi:type="genmodel:GenClass" ecoreClass="chessmlprofile.ecore#//Dependability/ThreatsPropagation/Vulnerability">

           <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute chessmlprofile.ecore#//Dependability/ThreatsPropagation/Vulnerability/kind"/>

+          <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

+              propertySortChoices="true" ecoreFeature="ecore:EReference chessmlprofile.ecore#//Dependability/ThreatsPropagation/Vulnerability/base_Classifier"/>

+          <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

+              propertySortChoices="true" ecoreFeature="ecore:EReference chessmlprofile.ecore#//Dependability/ThreatsPropagation/Vulnerability/base_Port"/>

+        </genClasses>

+        <genClasses xsi:type="genmodel:GenClass" ecoreClass="chessmlprofile.ecore#//Dependability/ThreatsPropagation/Adversary">

+          <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

+              propertySortChoices="true" ecoreFeature="ecore:EReference chessmlprofile.ecore#//Dependability/ThreatsPropagation/Adversary/base_Actor"/>

+        </genClasses>

+        <genClasses xsi:type="genmodel:GenClass" ecoreClass="chessmlprofile.ecore#//Dependability/ThreatsPropagation/AttackScenario">

+          <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

+              propertySortChoices="true" ecoreFeature="ecore:EReference chessmlprofile.ecore#//Dependability/ThreatsPropagation/AttackScenario/base_Interaction"/>

+          <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute chessmlprofile.ecore#//Dependability/ThreatsPropagation/AttackScenario/frequency"/>

+          <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute chessmlprofile.ecore#//Dependability/ThreatsPropagation/AttackScenario/probSuccess"/>

         </genClasses>

         <genClasses xsi:type="genmodel:GenClass" ecoreClass="chessmlprofile.ecore#//Dependability/ThreatsPropagation/ErrorModel">

           <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

@@ -584,6 +601,8 @@
           <genClasses xsi:type="genmodel:GenClass" ecoreClass="chessmlprofile.ecore#//Dependability/StateBased/MaintenanceMonitoring/Repair">

             <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

                 propertySortChoices="true" ecoreFeature="ecore:EReference chessmlprofile.ecore#//Dependability/StateBased/MaintenanceMonitoring/Repair/targets"/>

+            <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

+                propertySortChoices="true" ecoreFeature="ecore:EReference chessmlprofile.ecore#//Dependability/StateBased/MaintenanceMonitoring/Repair/base_Transition"/>

           </genClasses>

           <genClasses xsi:type="genmodel:GenClass" ecoreClass="chessmlprofile.ecore#//Dependability/StateBased/MaintenanceMonitoring/Replace">

             <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

@@ -604,6 +623,9 @@
         <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="StateBasedAnalysis"

             basePackage="org.polarsys.chess.chessmlprofile.Dependability.StateBased"

             resource="XML" disposableProviderFactory="true" ecorePackage="chessmlprofile.ecore#//Dependability/StateBased/StateBasedAnalysis">

+          <genClasses xsi:type="genmodel:GenClass" ecoreClass="chessmlprofile.ecore#//Dependability/StateBased/StateBasedAnalysis/SANAnalysis">

+            <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute chessmlprofile.ecore#//Dependability/StateBased/StateBasedAnalysis/SANAnalysis/condition"/>

+          </genClasses>

           <genClasses xsi:type="genmodel:GenClass" ecoreClass="chessmlprofile.ecore#//Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysis">

             <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute chessmlprofile.ecore#//Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysis/measure"/>

             <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute chessmlprofile.ecore#//Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysis/measureEvaluationResult"/>

@@ -847,8 +869,8 @@
             propertySortChoices="true" ecoreFeature="ecore:EReference chessmlprofile.ecore#//Expressions/ParameterAssumptions/base_Constraint"/>

       </genClasses>

     </nestedGenPackages>

-    <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="StateMachines" disposableProviderFactory="true"

-        ecorePackage="chessmlprofile.ecore#//StateMachines">

+    <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="StateMachines" basePackage="org.polarsys.chess.chessmlprofile"

+        disposableProviderFactory="true" ecorePackage="chessmlprofile.ecore#//StateMachines">

       <genClasses xsi:type="genmodel:GenClass" ecoreClass="chessmlprofile.ecore#//StateMachines/PrioritizedTransition">

         <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute chessmlprofile.ecore#//StateMachines/PrioritizedTransition/priority"/>

         <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"

diff --git a/plugins/org.polarsys.chess.chessmlprofile/model/CHESS.profile.uml b/plugins/org.polarsys.chess.chessmlprofile/model/CHESS.profile.uml
index 8d0d686..35f2b9b 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/model/CHESS.profile.uml
+++ b/plugins/org.polarsys.chess.chessmlprofile/model/CHESS.profile.uml
@@ -1,9427 +1,9508 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
-  <uml:Profile xmi:id="_EA6IcDcwEd-mWLzcI61s7Q" name="CHESS" URI="http://CHESS" metaclassReference="_f4IT8LzoEd-yoLyJo0JlOg _hi07MLzoEd-yoLyJo0JlOg _06BxsLzuEd-yoLyJo0JlOg _xsRxML88Ed-TL8tpOyViyA _IuJJQMAMEd-Dn5_MBIs5Vw _BWmhsMAREd-Dn5_MBIs5Vw">
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_f4IT8LzoEd-yoLyJo0JlOg" alias="Component">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_hi07MLzoEd-yoLyJo0JlOg" alias="Property">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_06BxsLzuEd-yoLyJo0JlOg" alias="Connector">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_xsRxML88Ed-TL8tpOyViyA" alias="Activity">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_IuJJQMAMEd-Dn5_MBIs5Vw" alias="Class">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_BWmhsMAREd-Dn5_MBIs5Vw" alias="Comment">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-    </elementImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_EA6IcTcwEd-mWLzcI61s7Q">
-      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
-    </packageImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_Kmy3UTcwEd-mWLzcI61s7Q">
-      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_dDxjEAeNEdytasR0-Ec7ew"/>
-    </packageImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_Knc-oDcwEd-mWLzcI61s7Q">
-      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_3DJKAA4uEdysTsAUPnp57Q"/>
-    </packageImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_Kn64sDcwEd-mWLzcI61s7Q">
-      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_X3JtMAeNEdytasR0-Ec7ew"/>
-    </packageImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_Ko6XMDcwEd-mWLzcI61s7Q">
-      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_g2qR8A74EdyML4mHwjNDrw"/>
-    </packageImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_KpSKoDcwEd-mWLzcI61s7Q">
-      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_l6ms8A74EdyML4mHwjNDrw"/>
-    </packageImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_Kp9gEDcwEd-mWLzcI61s7Q">
-      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_x9l9sA74EdyML4mHwjNDrw"/>
-    </packageImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_KqS3QDcwEd-mWLzcI61s7Q">
-      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2GPOEA74EdyML4mHwjNDrw"/>
-    </packageImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_KqvjMDcwEd-mWLzcI61s7Q">
-      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_RTwjABgzEdyHL91mBnoLNQ"/>
-    </packageImport>
-    <packagedElement xmi:type="uml:Profile" xmi:id="_ad4owDgVEd-68Z_bhNRGsA" name="Core" URI="http://CHESS/Core" metaclassReference="_x8t_0DgXEd-68Z_bhNRGsA _FEHugDgYEd-68Z_bhNRGsA _mUYGcE7nEeCiWfCHUearZQ _wDY7IFYfEeGwxKcMAge2Cg _aKE3gKrGEeSm_c79BO815Q">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p-a_7jgVEd-68Z_bhNRGsA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-        <contents xmi:type="ecore:EPackage" xmi:id="_v7qw0U7nEeCiWfCHUearZQ" name="Core" nsURI="http://CHESS/Core" nsPrefix="Core">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v9v0cE7nEeCiWfCHUearZQ" source="PapyrusVersion">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0cU7nEeCiWfCHUearZQ" key="Version" value="0.1.10"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0ck7nEeCiWfCHUearZQ" key="Comment" value="added Core::CHGAResourcePlatform"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0c07nEeCiWfCHUearZQ" key="Copyright" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0dE7nEeCiWfCHUearZQ" key="Date" value="2011-03-15"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0dU7nEeCiWfCHUearZQ" key="Author" value=""/>
-          </eAnnotations>
-          <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7qw0k7nEeCiWfCHUearZQ" name="CHESS">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7qw007nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_opjLUDgXEd-68Z_bhNRGsA"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw1E7nEeCiWfCHUearZQ" name="base_Model" ordered="false" unique="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Model"/>
-            </eStructuralFeatures>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw1k7nEeCiWfCHUearZQ" name="analysisView" ordered="false" lowerBound="1" eType="_v7z6wk7nEeCiWfCHUearZQ"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw2E7nEeCiWfCHUearZQ" name="deploymentView" ordered="false" lowerBound="1" eType="_v7z63k7nEeCiWfCHUearZQ"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw2k7nEeCiWfCHUearZQ" name="requirementView" ordered="false" lowerBound="1" eType="_v7z64k7nEeCiWfCHUearZQ"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw3E7nEeCiWfCHUearZQ" name="componentView" ordered="false" lowerBound="1" eType="_v7z65k7nEeCiWfCHUearZQ"/>
-          </eClassifiers>
-          <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7qw9E7nEeCiWfCHUearZQ" name="CHGaResourcePlatform">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7qw9U7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_a-X3gE7nEeCiWfCHUearZQ"/>
-            <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//GQAM/GaResourcesPlatform"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw9k7nEeCiWfCHUearZQ" name="base_InstanceSpecification" ordered="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
-            </eStructuralFeatures>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw-E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-            </eStructuralFeatures>
-          </eClassifiers>
-        </contents>
-        <contents xmi:type="ecore:EPackage" xmi:id="_EVh4oETyEeChVqfgLme9HQ" name="Core" nsURI="http://CHESS/schemas/Core/_EVYusETyEeChVqfgLme9HQ/20" nsPrefix="Core">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EXBGYETyEeChVqfgLme9HQ" source="PapyrusVersion">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGYUTyEeChVqfgLme9HQ" key="Version" value="0.1.9"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGYkTyEeChVqfgLme9HQ" key="Comment" value="added right views references for CHESS"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGY0TyEeChVqfgLme9HQ" key="Copyright" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGZETyEeChVqfgLme9HQ" key="Date" value="2011-03-02"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGZUTyEeChVqfgLme9HQ" key="Author" value=""/>
-          </eAnnotations>
-          <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh4oUTyEeChVqfgLme9HQ" name="CHESS">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh4okTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_opjLUDgXEd-68Z_bhNRGsA"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4o0TyEeChVqfgLme9HQ" name="base_Model" ordered="false" unique="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Model"/>
-            </eStructuralFeatures>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4pUTyEeChVqfgLme9HQ" name="analysisView" ordered="false" lowerBound="1" eType="_EVh4xUTyEeChVqfgLme9HQ"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4p0TyEeChVqfgLme9HQ" name="deploymentView" ordered="false" lowerBound="1" eType="_EVh44UTyEeChVqfgLme9HQ"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4qUTyEeChVqfgLme9HQ" name="requirementView" ordered="false" lowerBound="1" eType="_EVh45UTyEeChVqfgLme9HQ"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4q0TyEeChVqfgLme9HQ" name="componentView" ordered="false" lowerBound="1" eType="_EVh46UTyEeChVqfgLme9HQ"/>
-          </eClassifiers>
-        </contents>
-        <contents xmi:type="ecore:EPackage" xmi:id="_PfTEoce6Ed-7etIj5eTw0Q" name="Core" nsURI="http://CHESS/schemas/Core/_PfTEoMe6Ed-7etIj5eTw0Q/19" nsPrefix="Core">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UbqQ8Me6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ8ce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ8se6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ88e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ9Me6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ9ce6Ed-7etIj5eTw0Q" key="Author" value=""/>
-          </eAnnotations>
-          <eClassifiers xmi:type="ecore:EClass" xmi:id="_PfTEose6Ed-7etIj5eTw0Q" name="CHESS">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PfTEo8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_opjLUDgXEd-68Z_bhNRGsA"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTEpMe6Ed-7etIj5eTw0Q" name="base_Model" ordered="false" unique="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Model"/>
-            </eStructuralFeatures>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTEpse6Ed-7etIj5eTw0Q" name="analysisView" ordered="false" lowerBound="1" eType="_Pfc1ose6Ed-7etIj5eTw0Q"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTEqMe6Ed-7etIj5eTw0Q" name="functionalView" ordered="false" lowerBound="1" eType="_Pfc1yse6Ed-7etIj5eTw0Q"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTEqse6Ed-7etIj5eTw0Q" name="extraFunctionalView" ordered="false" lowerBound="1" eType="_Pfc1uMe6Ed-7etIj5eTw0Q"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTErMe6Ed-7etIj5eTw0Q" name="deploymentView" ordered="false" lowerBound="1" eType="_Pfc10se6Ed-7etIj5eTw0Q"/>
-          </eClassifiers>
-        </contents>
-      </eAnnotations>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_x8t_0DgXEd-68Z_bhNRGsA" alias="Model">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Model"/>
-      </elementImport>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_FEHugDgYEd-68Z_bhNRGsA" alias="Package">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-      </elementImport>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_mUYGcE7nEeCiWfCHUearZQ" alias="InstanceSpecification">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-      </elementImport>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_wDY7IFYfEeGwxKcMAge2Cg" alias="Slot">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-      </elementImport>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_aKE3gKrGEeSm_c79BO815Q" alias="Component">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-      </elementImport>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_opjLUDgXEd-68Z_bhNRGsA" name="CHESS">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_1Baf4jgXEd-68Z_bhNRGsA" name="base_Model" isUnique="false" association="_1Baf4DgXEd-68Z_bhNRGsA">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Model"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_708k4MJeEd-9OOhgleDe8g" name="analysisView" type="_KYAcoLwzEd-CDNLmLgazUQ" aggregation="composite"/>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_AX1dEMJmEd-o9IXQjCmxTw" name="deploymentView" type="_6-HM4MJFEd-0jpzjleFnug" aggregation="composite"/>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_0mxgwETxEeChVqfgLme9HQ" name="requirementView" visibility="public" type="_E1ZRkDQ1EeC0ueejuetpgA" aggregation="composite">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3Y_wwETxEeChVqfgLme9HQ" value="1"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3ZTSwETxEeChVqfgLme9HQ" value="1"/>
-          <defaultValue xmi:type="uml:LiteralString" xmi:id="_3ZmNsETxEeChVqfgLme9HQ">
-            <value xsi:nil="true"/>
-          </defaultValue>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_80gXMETxEeChVqfgLme9HQ" name="componentView" visibility="public" type="_cMJs4DkoEeCw66wKEzSFRg" aggregation="composite">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-njCIETxEeChVqfgLme9HQ" value="1"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-nszIETxEeChVqfgLme9HQ" value="1"/>
-          <defaultValue xmi:type="uml:LiteralString" xmi:id="_-n_uEETxEeChVqfgLme9HQ">
-            <value xsi:nil="true"/>
-          </defaultValue>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_G4dxMPWcEeG6etnsQZngdA" name="systemView" type="_-q1ocPWbEeG6etnsQZngdA" aggregation="composite"/>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_30_8UFOzEeS4RO3Q2Jk6sA" name="psmView" type="_eCaeYElHEeSHXILU_Im6sA"/>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_4a5ZkNcwEeWr_eoZOyce5Q" name="domain" type="_qrbY4NcwEeWr_eoZOyce5Q">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_APwdANcxEeWr_eoZOyce5Q" value="1"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_APwdAdcxEeWr_eoZOyce5Q" value="1"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_1Baf4DgXEd-68Z_bhNRGsA" name="Extension_CHESS" memberEnd="_1Baf4TgXEd-68Z_bhNRGsA _1Baf4jgXEd-68Z_bhNRGsA">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_1Baf4TgXEd-68Z_bhNRGsA" name="extension_CHESS" type="_opjLUDgXEd-68Z_bhNRGsA" aggregation="composite" association="_1Baf4DgXEd-68Z_bhNRGsA"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Profile" xmi:id="_FttqgMJDEd-0jpzjleFnug" name="CHESSViews" URI="http://CHESS/Core/Views" metaclassReference="_f_fboDkoEeCw66wKEzSFRg">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9qjjAMJbEd-0jpzjleFnug" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <contents xmi:type="ecore:EPackage" xmi:id="_v7z6wU7nEeCiWfCHUearZQ" name="CHESSViews" nsURI="http://CHESS/Core/Views" nsPrefix="CHESSViews">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wASLEE7nEeCiWfCHUearZQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLEU7nEeCiWfCHUearZQ" key="Version" value="0.1.10"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLEk7nEeCiWfCHUearZQ" key="Comment" value="added Core::CHGAResourcePlatform"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLE07nEeCiWfCHUearZQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLFE7nEeCiWfCHUearZQ" key="Date" value="2011-03-15"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLFU7nEeCiWfCHUearZQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z6wk7nEeCiWfCHUearZQ" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6w07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z6xE7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z6xk7nEeCiWfCHUearZQ" name="rtanalysisview" ordered="false" lowerBound="1" eType="_v7z6yE7nEeCiWfCHUearZQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z6yE7nEeCiWfCHUearZQ" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6yU7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z6yk7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z6zE7nEeCiWfCHUearZQ" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6zU7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6zk7nEeCiWfCHUearZQ" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_v7z6z07nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z60E7nEeCiWfCHUearZQ" source="redefines" references="_v7z60k7nEeCiWfCHUearZQ"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z60k7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z61E7nEeCiWfCHUearZQ" name="timingdataflowview" ordered="false" lowerBound="1" eType="_v7z61k7nEeCiWfCHUearZQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z61k7nEeCiWfCHUearZQ" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6107nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z62E7nEeCiWfCHUearZQ" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_v7z62U7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z62k7nEeCiWfCHUearZQ" source="redefines" references="_v7z63E7nEeCiWfCHUearZQ"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z63E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z63k7nEeCiWfCHUearZQ" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6307nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z64E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z64k7nEeCiWfCHUearZQ" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6407nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z65E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z65k7nEeCiWfCHUearZQ" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6507nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z66E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z66k7nEeCiWfCHUearZQ" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6607nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EBEuADqeEeCYT-iAb0LhsA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z67E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_EVh4xETyEeChVqfgLme9HQ" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_EVh4w0TyEeChVqfgLme9HQ/24" nsPrefix="CHESSViews">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EZZsAETyEeChVqfgLme9HQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsAUTyEeChVqfgLme9HQ" key="Version" value="0.1.9"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsAkTyEeChVqfgLme9HQ" key="Comment" value="added right views references for CHESS"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsA0TyEeChVqfgLme9HQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsBETyEeChVqfgLme9HQ" key="Date" value="2011-03-02"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsBUTyEeChVqfgLme9HQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh4xUTyEeChVqfgLme9HQ" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh4xkTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4x0TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4yUTyEeChVqfgLme9HQ" name="rtanalysisview" ordered="false" lowerBound="1" eType="_EVh4y0TyEeChVqfgLme9HQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh4y0TyEeChVqfgLme9HQ" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh4zETyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4zUTyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh4z0TyEeChVqfgLme9HQ" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh40ETyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh40UTyEeChVqfgLme9HQ" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_EVh40kTyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh400TyEeChVqfgLme9HQ" source="redefines" references="_EVh41UTyEeChVqfgLme9HQ"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh41UTyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh410TyEeChVqfgLme9HQ" name="timingdataflowview" ordered="false" lowerBound="1" eType="_EVh42UTyEeChVqfgLme9HQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh42UTyEeChVqfgLme9HQ" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh42kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh420TyEeChVqfgLme9HQ" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_EVh43ETyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh43UTyEeChVqfgLme9HQ" source="redefines" references="_EVh430TyEeChVqfgLme9HQ"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh430TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh44UTyEeChVqfgLme9HQ" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh44kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh440TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh45UTyEeChVqfgLme9HQ" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh45kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh450TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh46UTyEeChVqfgLme9HQ" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh46kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh460TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh47UTyEeChVqfgLme9HQ" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh47kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EBEuADqeEeCYT-iAb0LhsA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh470TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_pngpMDqxEeCUI4z76XHrLw" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_pnW4MDqxEeCUI4z76XHrLw/23" nsPrefix="CHESSViews">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ppTY8DqxEeCUI4z76XHrLw" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY8TqxEeCUI4z76XHrLw" key="Version" value="0.0.1"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY8jqxEeCUI4z76XHrLw" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY8zqxEeCUI4z76XHrLw" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY9DqxEeCUI4z76XHrLw" key="Date" value="2011-02-17"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY9TqxEeCUI4z76XHrLw" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpMTqxEeCUI4z76XHrLw" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpMjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpMzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpNTqxEeCUI4z76XHrLw" name="rtanalysisview" ordered="false" lowerBound="1" eType="_pngpNzqxEeCUI4z76XHrLw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpNzqxEeCUI4z76XHrLw" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpODqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpOTqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpOzqxEeCUI4z76XHrLw" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpPDqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpPTqxEeCUI4z76XHrLw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_pngpPjqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpPzqxEeCUI4z76XHrLw" source="redefines" references="_pngpQTqxEeCUI4z76XHrLw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpQTqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpQzqxEeCUI4z76XHrLw" name="timingdataflowview" ordered="false" lowerBound="1" eType="_pngpRTqxEeCUI4z76XHrLw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpRTqxEeCUI4z76XHrLw" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpRjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpRzqxEeCUI4z76XHrLw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_pngpSDqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpSTqxEeCUI4z76XHrLw" source="redefines" references="_pngpSzqxEeCUI4z76XHrLw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpSzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpTTqxEeCUI4z76XHrLw" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpTjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpTzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpUTqxEeCUI4z76XHrLw" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpUjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpUzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpVTqxEeCUI4z76XHrLw" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpVjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpVzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpWTqxEeCUI4z76XHrLw" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpWjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EBEuADqeEeCYT-iAb0LhsA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpWzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_J4JPEDqeEeCYT-iAb0LhsA" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_J3_eEDqeEeCYT-iAb0LhsA/22" nsPrefix="CHESSViews">
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPETqeEeCYT-iAb0LhsA" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPEjqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPEzqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPFTqeEeCYT-iAb0LhsA" name="rtanalysisview" ordered="false" lowerBound="1" eType="_J4JPGDqeEeCYT-iAb0LhsA"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPGDqeEeCYT-iAb0LhsA" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPGTqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPGjqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPHDqeEeCYT-iAb0LhsA" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPHTqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPHjqeEeCYT-iAb0LhsA" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_J4JPHzqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPIDqeEeCYT-iAb0LhsA" source="redefines" references="_J4JPIjqeEeCYT-iAb0LhsA"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPIjqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPJDqeEeCYT-iAb0LhsA" name="timingdataflowview" ordered="false" lowerBound="1" eType="_J4JPJjqeEeCYT-iAb0LhsA" containment="true"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPJjqeEeCYT-iAb0LhsA" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPJzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPKDqeEeCYT-iAb0LhsA" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_J4JPKTqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPKjqeEeCYT-iAb0LhsA" source="redefines" references="_J4JPLDqeEeCYT-iAb0LhsA"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPLDqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPLjqeEeCYT-iAb0LhsA" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPLzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPMDqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPMjqeEeCYT-iAb0LhsA" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPMzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPNDqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPNjqeEeCYT-iAb0LhsA" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPNzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPODqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPOjqeEeCYT-iAb0LhsA" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPOzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EBEuADqeEeCYT-iAb0LhsA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPPDqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_gbAdgTkpEeCw66wKEzSFRg" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_gbAdgDkpEeCw66wKEzSFRg/21" nsPrefix="CHESSViews">
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdgjkpEeCw66wKEzSFRg" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdgzkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdhDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdhjkpEeCw66wKEzSFRg" name="rtanalysisview" ordered="false" lowerBound="1" eType="_gbAdijkpEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdiDkpEeCw66wKEzSFRg" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_gbAdjjkpEeCw66wKEzSFRg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdijkpEeCw66wKEzSFRg" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdizkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdjDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdjjkpEeCw66wKEzSFRg" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdjzkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdkDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdkzkpEeCw66wKEzSFRg" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdlDkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdlTkpEeCw66wKEzSFRg" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_gbAdljkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdlzkpEeCw66wKEzSFRg" source="redefines" references="_gbAdmTkpEeCw66wKEzSFRg"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdmTkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdmzkpEeCw66wKEzSFRg" name="timingdataflowview" ordered="false" lowerBound="1" eType="_gbAdnTkpEeCw66wKEzSFRg" containment="true"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdnTkpEeCw66wKEzSFRg" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdnjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdnzkpEeCw66wKEzSFRg" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_gbAdoDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdoTkpEeCw66wKEzSFRg" source="redefines" references="_gbAdozkpEeCw66wKEzSFRg"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdozkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdpTkpEeCw66wKEzSFRg" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdpjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdpzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdqTkpEeCw66wKEzSFRg" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdqjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdqzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdrTkpEeCw66wKEzSFRg" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdrjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdrzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_PmNqoTkpEeCw66wKEzSFRg" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_PmNqoDkpEeCw66wKEzSFRg/20" nsPrefix="CHESSViews">
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqojkpEeCw66wKEzSFRg" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqozkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqpDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqpjkpEeCw66wKEzSFRg" name="rtanalysisview" ordered="false" lowerBound="1" eType="_PmNqqjkpEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqqDkpEeCw66wKEzSFRg" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_PmNqrjkpEeCw66wKEzSFRg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqqjkpEeCw66wKEzSFRg" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqqzkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqrDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqrjkpEeCw66wKEzSFRg" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqrzkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqsDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqszkpEeCw66wKEzSFRg" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqtDkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqtTkpEeCw66wKEzSFRg" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_PmNqtjkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqtzkpEeCw66wKEzSFRg" source="redefines" references="_PmNquTkpEeCw66wKEzSFRg"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNquTkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNquzkpEeCw66wKEzSFRg" name="timingdataflowview" ordered="false" lowerBound="1" eType="_PmNqvTkpEeCw66wKEzSFRg" containment="true"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqvTkpEeCw66wKEzSFRg" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqvjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqvzkpEeCw66wKEzSFRg" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_PmNqwDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqwTkpEeCw66wKEzSFRg" source="redefines" references="_PmNqwzkpEeCw66wKEzSFRg"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqwzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqxTkpEeCw66wKEzSFRg" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqxjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqxzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqyTkpEeCw66wKEzSFRg" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqyjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqyzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqzTkpEeCw66wKEzSFRg" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqzjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqzzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_mm1jETkoEeCw66wKEzSFRg" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_mm1jEDkoEeCw66wKEzSFRg/19" nsPrefix="CHESSViews">
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jEjkoEeCw66wKEzSFRg" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jEzkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jFDkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jFjkoEeCw66wKEzSFRg" name="rtanalysisview" ordered="false" lowerBound="1" eType="_mm1jGjkoEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jGDkoEeCw66wKEzSFRg" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_mm1jHjkoEeCw66wKEzSFRg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jGjkoEeCw66wKEzSFRg" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jGzkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jHDkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jHjkoEeCw66wKEzSFRg" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jHzkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jIDkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jIzkoEeCw66wKEzSFRg" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jJDkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jJTkoEeCw66wKEzSFRg" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_mm1jJjkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jJzkoEeCw66wKEzSFRg" source="redefines" references="_mm1jKTkoEeCw66wKEzSFRg"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jKTkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jKzkoEeCw66wKEzSFRg" name="timingdataflowview" ordered="false" lowerBound="1" eType="_mm1jLTkoEeCw66wKEzSFRg" containment="true"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jLTkoEeCw66wKEzSFRg" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jLjkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jLzkoEeCw66wKEzSFRg" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_mm1jMDkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jMTkoEeCw66wKEzSFRg" source="redefines" references="_mm1jMzkoEeCw66wKEzSFRg"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jMzkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jNTkoEeCw66wKEzSFRg" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jNjkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jNzkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jOTkoEeCw66wKEzSFRg" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jOjkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jOzkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jPTkoEeCw66wKEzSFRg" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jPjkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jPzkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_43soITkkEeCuLetZbbIvGw" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_43soIDkkEeCuLetZbbIvGw/18" nsPrefix="CHESSViews">
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soIjkkEeCuLetZbbIvGw" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soIzkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soJDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soJjkkEeCuLetZbbIvGw" name="rtanalysisview" ordered="false" lowerBound="1" eType="_43soKjkkEeCuLetZbbIvGw"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soKDkkEeCuLetZbbIvGw" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_43soLjkkEeCuLetZbbIvGw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soKjkkEeCuLetZbbIvGw" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soKzkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soLDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soLjkkEeCuLetZbbIvGw" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soLzkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soMDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_43soMjkkEeCuLetZbbIvGw" name="errormodelingview" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soMzkkEeCuLetZbbIvGw" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soNDkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soNTkkEeCuLetZbbIvGw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_43soNjkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soNzkkEeCuLetZbbIvGw" source="redefines" references="_43soOTkkEeCuLetZbbIvGw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soOTkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soOzkkEeCuLetZbbIvGw" name="timingdataflowview" ordered="false" lowerBound="1" eType="_43soPTkkEeCuLetZbbIvGw" containment="true"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soPTkkEeCuLetZbbIvGw" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soPjkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soPzkkEeCuLetZbbIvGw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_43soQDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soQTkkEeCuLetZbbIvGw" source="redefines" references="_43soQzkkEeCuLetZbbIvGw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soQzkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soRTkkEeCuLetZbbIvGw" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soRjkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soRzkkEeCuLetZbbIvGw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_43soSDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soSTkkEeCuLetZbbIvGw" source="redefines" references="_43soSzkkEeCuLetZbbIvGw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soSzkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soTTkkEeCuLetZbbIvGw" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soTjkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soTzkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soUTkkEeCuLetZbbIvGw" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soUjkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soUzkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_kDogIDkgEeCuLetZbbIvGw" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_kDfWMDkgEeCuLetZbbIvGw/17" nsPrefix="CHESSViews">
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogITkgEeCuLetZbbIvGw" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogIjkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogIzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogJTkgEeCuLetZbbIvGw" name="rtanalysisview" ordered="false" lowerBound="1" eType="_kDogKTkgEeCuLetZbbIvGw"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogJzkgEeCuLetZbbIvGw" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_kDogLTkgEeCuLetZbbIvGw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogKTkgEeCuLetZbbIvGw" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogKjkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogKzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogLTkgEeCuLetZbbIvGw" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogLjkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogLzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kDogMTkgEeCuLetZbbIvGw" name="errormodelingview" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogMjkgEeCuLetZbbIvGw" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogMzkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogNDkgEeCuLetZbbIvGw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_kDogNTkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogNjkgEeCuLetZbbIvGw" source="redefines" references="_kDogODkgEeCuLetZbbIvGw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogODkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogOjkgEeCuLetZbbIvGw" name="timingdataflowview" ordered="false" lowerBound="1" eType="_kDogPDkgEeCuLetZbbIvGw" containment="true"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogPDkgEeCuLetZbbIvGw" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogPTkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogPjkgEeCuLetZbbIvGw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_kDogPzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogQDkgEeCuLetZbbIvGw" source="redefines" references="_kDogQjkgEeCuLetZbbIvGw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogQjkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogRDkgEeCuLetZbbIvGw" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogRTkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogRjkgEeCuLetZbbIvGw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_kDogRzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogSDkgEeCuLetZbbIvGw" source="redefines" references="_kDogSjkgEeCuLetZbbIvGw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogSjkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogTDkgEeCuLetZbbIvGw" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogTTkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogTjkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogUDkgEeCuLetZbbIvGw" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogUTkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogUjkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_NxxdEDkfEeCuLetZbbIvGw" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_NxoTIDkfEeCuLetZbbIvGw/16" nsPrefix="CHESSViews">
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdETkfEeCuLetZbbIvGw" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdEjkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdEzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdFTkfEeCuLetZbbIvGw" name="rtanalysisview" ordered="false" lowerBound="1" eType="_NxxdGTkfEeCuLetZbbIvGw"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdFzkfEeCuLetZbbIvGw" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_NxxdHTkfEeCuLetZbbIvGw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdGTkfEeCuLetZbbIvGw" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdGjkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdGzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdHTkfEeCuLetZbbIvGw" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdHjkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdHzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NxxdITkfEeCuLetZbbIvGw" name="errormodelingview" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdIjkfEeCuLetZbbIvGw" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdIzkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdJDkfEeCuLetZbbIvGw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_NxxdJTkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdJjkfEeCuLetZbbIvGw" source="redefines" references="_NxxdKDkfEeCuLetZbbIvGw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdKDkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdKjkfEeCuLetZbbIvGw" name="timingdataflowview" ordered="false" lowerBound="1" eType="_NxxdLDkfEeCuLetZbbIvGw" containment="true"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdLDkfEeCuLetZbbIvGw" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdLTkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdLjkfEeCuLetZbbIvGw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_NxxdLzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdMDkfEeCuLetZbbIvGw" source="redefines" references="_NxxdMjkfEeCuLetZbbIvGw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdMjkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdNDkfEeCuLetZbbIvGw" name="ComponentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdNTkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdNjkfEeCuLetZbbIvGw" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_NxxdNzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdODkfEeCuLetZbbIvGw" source="redefines" references="_NxxdOjkfEeCuLetZbbIvGw"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdOjkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdPDkfEeCuLetZbbIvGw" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdPTkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdPjkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdQDkfEeCuLetZbbIvGw" name="RequirementView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdQTkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdQjkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_Pfc1oce6Ed-7etIj5eTw0Q" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_Pfc1oMe6Ed-7etIj5eTw0Q/15" nsPrefix="CHESSViews">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UqaeoMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uqaeoce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uqaeose6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uqaeo8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UqaepMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uqaepce6Ed-7etIj5eTw0Q" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1ose6Ed-7etIj5eTw0Q" name="AnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1o8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1pMe6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1pse6Ed-7etIj5eTw0Q" name="rtanalysisview" ordered="false" lowerBound="1" eType="_Pfc1qse6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1qMe6Ed-7etIj5eTw0Q" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_Pfc1rse6Ed-7etIj5eTw0Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1qse6Ed-7etIj5eTw0Q" name="RTAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1q8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1rMe6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1rse6Ed-7etIj5eTw0Q" name="DependabilityAnalysisView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1r8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1sMe6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1sse6Ed-7etIj5eTw0Q" name="errormodelingview" ordered="false" lowerBound="1" eType="_Pfc1tMe6Ed-7etIj5eTw0Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1tMe6Ed-7etIj5eTw0Q" name="ErrorModelingView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1tce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1tse6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1uMe6Ed-7etIj5eTw0Q" name="ExtraFunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1uce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1use6Ed-7etIj5eTw0Q" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_Pfc1u8e6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1vMe6Ed-7etIj5eTw0Q" source="redefines" references="_Pfc1vse6Ed-7etIj5eTw0Q"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1vse6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1wMe6Ed-7etIj5eTw0Q" name="timingdataflowview" ordered="false" lowerBound="1" eType="_Pfc1wse6Ed-7etIj5eTw0Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1wse6Ed-7etIj5eTw0Q" name="TimingDataFlowView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1w8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1xMe6Ed-7etIj5eTw0Q" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_Pfc1xce6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1xse6Ed-7etIj5eTw0Q" source="redefines" references="_Pfc1yMe6Ed-7etIj5eTw0Q"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1yMe6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1yse6Ed-7etIj5eTw0Q" name="FunctionalView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1y8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1zMe6Ed-7etIj5eTw0Q" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_Pfc1zce6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1zse6Ed-7etIj5eTw0Q" source="redefines" references="_Pfc10Me6Ed-7etIj5eTw0Q"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc10Me6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc10se6Ed-7etIj5eTw0Q" name="DeploymentView">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc108e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc11Me6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-          </contents>
-        </eAnnotations>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_f_fboDkoEeCw66wKEzSFRg" alias="Package">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-        </elementImport>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_KYAcoLwzEd-CDNLmLgazUQ" name="AnalysisView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_5XsXAMGoEd-sPbYkpPS5Bg" name="base_Package" association="_5XsXAcGoEd-sPbYkpPS5Bg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Ns7GUMJPEd-0jpzjleFnug" name="rtanalysisview" type="_-ir0cLwyEd-CDNLmLgazUQ" aggregation="composite">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ns7GUsJPEd-0jpzjleFnug" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ns7GUcJPEd-0jpzjleFnug" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_vy9_kFOzEeS4RO3Q2Jk6sA" name="depanalysisview" type="_EBEuADqeEeCYT-iAb0LhsA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_5XsXAcGoEd-sPbYkpPS5Bg" name="E_AnalysisView_Package1" memberEnd="_5XsXAsGoEd-sPbYkpPS5Bg _5XsXAMGoEd-sPbYkpPS5Bg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_5XsXAsGoEd-sPbYkpPS5Bg" name="extension_AnalysisView" type="_KYAcoLwzEd-CDNLmLgazUQ" aggregation="composite" association="_5XsXAcGoEd-sPbYkpPS5Bg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_4c-bMcGoEd-sPbYkpPS5Bg" name="E_RTAnalysisView_Package1" memberEnd="_4c-bMsGoEd-sPbYkpPS5Bg _4c-bMMGoEd-sPbYkpPS5Bg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_4c-bMsGoEd-sPbYkpPS5Bg" name="extension_RTAnalysisView" type="_-ir0cLwyEd-CDNLmLgazUQ" aggregation="composite" association="_4c-bMcGoEd-sPbYkpPS5Bg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6bSHkDgXEd-68Z_bhNRGsA" name="ExtraFunctionalView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_49d5IMGoEd-sPbYkpPS5Bg" name="base_Package">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="__DL_UMJaEd-0jpzjleFnug" name="timingdataflowview" type="_fOsNELwyEd-CDNLmLgazUQ" aggregation="composite">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__DL_UsJaEd-0jpzjleFnug" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__DL_UcJaEd-0jpzjleFnug" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_-ir0cLwyEd-CDNLmLgazUQ" name="RTAnalysisView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_4c-bMMGoEd-sPbYkpPS5Bg" name="base_Package" association="_4c-bMcGoEd-sPbYkpPS5Bg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_fOsNELwyEd-CDNLmLgazUQ" name="TimingDataFlowView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_4DpVMMGoEd-sPbYkpPS5Bg" name="base_Package">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6-HM4MJFEd-0jpzjleFnug" name="DeploymentView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_8DQ3EMJFEd-0jpzjleFnug" name="base_Package" association="_8DQ3EcJFEd-0jpzjleFnug">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_eEteUIa2EeCjkaWi4DtZtA" name="AssignList">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gN3jMIa2EeCjkaWi4DtZtA"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ieds0Ia2EeCjkaWi4DtZtA" value="*"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_8DQ3EcJFEd-0jpzjleFnug" name="E_DeploymentView_Package0" memberEnd="_8DQ3EsJFEd-0jpzjleFnug _8DQ3EMJFEd-0jpzjleFnug">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_8DQ3EsJFEd-0jpzjleFnug" name="extension_DeploymentView" type="_6-HM4MJFEd-0jpzjleFnug" aggregation="composite" association="_8DQ3EcJFEd-0jpzjleFnug"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_E1ZRkDQ1EeC0ueejuetpgA" name="RequirementView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_ICmNYDQ1EeC0ueejuetpgA" name="base_Package" association="_ICvXUDQ1EeC0ueejuetpgA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_ICvXUDQ1EeC0ueejuetpgA" name="E_RequirementView_Package0" memberEnd="_ICvXUTQ1EeC0ueejuetpgA _ICmNYDQ1EeC0ueejuetpgA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ICvXUTQ1EeC0ueejuetpgA" name="extension_RequirementView" type="_E1ZRkDQ1EeC0ueejuetpgA" aggregation="composite" association="_ICvXUDQ1EeC0ueejuetpgA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_cMJs4DkoEeCw66wKEzSFRg" name="ComponentView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_gYhmsDkoEeCw66wKEzSFRg" name="base_Package" association="_gYhmsTkoEeCw66wKEzSFRg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_gYhmsTkoEeCw66wKEzSFRg" name="E_ComponentView_Package0" memberEnd="_gYhmsjkoEeCw66wKEzSFRg _gYhmsDkoEeCw66wKEzSFRg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gYhmsjkoEeCw66wKEzSFRg" name="extension_ComponentView" type="_cMJs4DkoEeCw66wKEzSFRg" aggregation="composite" association="_gYhmsTkoEeCw66wKEzSFRg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_EBEuADqeEeCYT-iAb0LhsA" name="DependabilityAnalysisView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_GYU5QDqeEeCYT-iAb0LhsA" name="base_Package" association="_GYU5QTqeEeCYT-iAb0LhsA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_GYU5QTqeEeCYT-iAb0LhsA" name="E_DependabilityAnalysisView_Package0" memberEnd="_GYU5QjqeEeCYT-iAb0LhsA _GYU5QDqeEeCYT-iAb0LhsA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_GYU5QjqeEeCYT-iAb0LhsA" name="extension_DependabilityAnalysisView" type="_EBEuADqeEeCYT-iAb0LhsA" aggregation="composite" association="_GYU5QTqeEeCYT-iAb0LhsA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_-q1ocPWbEeG6etnsQZngdA" name="SystemView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_DphI8PWcEeG6etnsQZngdA" name="base_Package" association="_DpiXEPWcEeG6etnsQZngdA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_DpiXEPWcEeG6etnsQZngdA" name="E_SystemView_Package1" memberEnd="_DpiXEfWcEeG6etnsQZngdA _DphI8PWcEeG6etnsQZngdA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DpiXEfWcEeG6etnsQZngdA" name="extension_SystemView" type="_-q1ocPWbEeG6etnsQZngdA" aggregation="composite" association="_DpiXEPWcEeG6etnsQZngdA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_eCaeYElHEeSHXILU_Im6sA" name="PSMView">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_gD_UkElHEeSHXILU_Im6sA" name="base_Package" association="_gD_7oElHEeSHXILU_Im6sA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_gD_7oElHEeSHXILU_Im6sA" name="E_PSMView_Package1" memberEnd="_gD_7oUlHEeSHXILU_Im6sA _gD_UkElHEeSHXILU_Im6sA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gD_7oUlHEeSHXILU_Im6sA" name="extension_PSMView" type="_eCaeYElHEeSHXILU_Im6sA" aggregation="composite" association="_gD_7oElHEeSHXILU_Im6sA"/>
-        </packagedElement>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_a-X3gE7nEeCiWfCHUearZQ" name="CHGaResourcePlatform">
-        <generalization xmi:type="uml:Generalization" xmi:id="_kTB5wE7nEeCiWfCHUearZQ">
-          <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_JSAYgBKgEdyaWJN1BYon3A"/>
-        </generalization>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_mx4h0E7nEeCiWfCHUearZQ" name="base_InstanceSpecification" association="_mx4h0U7nEeCiWfCHUearZQ">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_rkacsE7nEeCiWfCHUearZQ" name="base_Package" association="_rkacsU7nEeCiWfCHUearZQ">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_mx4h0U7nEeCiWfCHUearZQ" name="E_CHGaResourcePlatform_InstanceSpecification0" memberEnd="_mx4h0k7nEeCiWfCHUearZQ _mx4h0E7nEeCiWfCHUearZQ">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_mx4h0k7nEeCiWfCHUearZQ" name="extension_CHGaResourcePlatform" type="_a-X3gE7nEeCiWfCHUearZQ" aggregation="composite" association="_mx4h0U7nEeCiWfCHUearZQ"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_rkacsU7nEeCiWfCHUearZQ" name="E_CHGaResourcePlatform_Package0" memberEnd="_rkacsk7nEeCiWfCHUearZQ _rkacsE7nEeCiWfCHUearZQ">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_rkacsk7nEeCiWfCHUearZQ" name="extension_CHGaResourcePlatform" type="_a-X3gE7nEeCiWfCHUearZQ" aggregation="composite" association="_rkacsU7nEeCiWfCHUearZQ"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Association" xmi:id="_17agYFk-EeGoZZsLvNQabA" name="identifInstance_instanceSpec" memberEnd="_17agYVk-EeGoZZsLvNQabA">
-        <ownedEnd xmi:type="uml:Property" xmi:id="_17agYVk-EeGoZZsLvNQabA" name="identifInstance" association="_17agYFk-EeGoZZsLvNQabA">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17agY1k-EeGoZZsLvNQabA"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17agYlk-EeGoZZsLvNQabA" value="1"/>
-        </ownedEnd>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_dusOgFhYEeSGgdhwaAUffg" name="PSMPackage">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_gTcDMFhYEeSGgdhwaAUffg" name="base_Package" association="_gTdRUFhYEeSGgdhwaAUffg">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_jN-hsFhYEeSGgdhwaAUffg" name="AnalysisContext">
-          <type xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_JAGTsBKhEdyxBYjIJwIrZA"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_gTdRUFhYEeSGgdhwaAUffg" name="E_PSMPackage_Package1" memberEnd="_gTdRUVhYEeSGgdhwaAUffg _gTcDMFhYEeSGgdhwaAUffg">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gTdRUVhYEeSGgdhwaAUffg" name="extension_PSMPackage" type="_dusOgFhYEeSGgdhwaAUffg" aggregation="composite" association="_gTdRUFhYEeSGgdhwaAUffg"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Enumeration" xmi:id="_qrbY4NcwEeWr_eoZOyce5Q" name="Domain">
-        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_-SxEgNczEeWVgfhRtuetJg" name="cross_domain"/>
-        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_uJyWINcwEeWr_eoZOyce5Q" name="avionics"/>
-        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_wC1icNcwEeWr_eoZOyce5Q" name="automotive"/>
-        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ylcCENcwEeWr_eoZOyce5Q" name="telecom"/>
-        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zgpGENcwEeWr_eoZOyce5Q" name="space"/>
-        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_1UXtgNcwEeWr_eoZOyce5Q" name="medical"/>
-        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_2k2d8NcwEeWr_eoZOyce5Q" name="petroleum"/>
-      </packagedElement>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Package" xmi:id="_WSNEsMGMEd--atLXXafOiQ" name="Dependability">
-      <packagedElement xmi:type="uml:Profile" xmi:id="_hdOrwLwzEd-CDNLmLgazUQ" name="FailurePropagation" URI="http://CHESS/Dependability/FailurePropagation" metaclassReference="_tr9pIDQ6EeC0ueejuetpgA _1E4EkHpQEeCIAr4_5S9-cA _nxIhIHpREeCIAr4_5S9-cA _r_x7oKbSEeSHP5PnCeTneg _IZ-SsM2TEeSrt5YehnIlig _NAcukM2TEeSrt5YehnIlig _lDOIQDHyEeWt8Ovv2G_EJg">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IFiz4MGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <contents xmi:type="ecore:EPackage" xmi:id="_vlrMsTROEeCPrptoDUJcNQ" name="FailurePropagation" nsURI="http://CHESS/Dependability/FailurePropagation" nsPrefix="FailurePropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vmRpoDROEeCPrptoDUJcNQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRpoTROEeCPrptoDUJcNQ" key="Version" value="0.1.9"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRpojROEeCPrptoDUJcNQ" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRpozROEeCPrptoDUJcNQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRppDROEeCPrptoDUJcNQ" key="Date" value="2011-02-09"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRppTROEeCPrptoDUJcNQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_vlrMsjROEeCPrptoDUJcNQ" name="FPTC">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vlrMszROEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4m1fcMF0Ed--atLXXafOiQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vlrMtDROEeCPrptoDUJcNQ" name="inputPort" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vlrMtjROEeCPrptoDUJcNQ" name="outputPort" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vlrMuDROEeCPrptoDUJcNQ" name="fptc" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vlrMujROEeCPrptoDUJcNQ" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_vlrMvDROEeCPrptoDUJcNQ" name="FailurePropagationAnalysis">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vlrMvTROEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sNfHsMF1Ed--atLXXafOiQ"/>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//GQAM/GaAnalysisContext"/>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_QBRwUMe6Ed-7etIj5eTw0Q" name="FailurePropagation" nsURI="http://CHESS.DependabilitySecurity/schemas/FailurePropagation/_PilCIMe6Ed-7etIj5eTw0Q/8" nsPrefix="FailurePropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U1cC48e6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC5Me6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC5ce6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC5se6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC58e6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC6Me6Ed-7etIj5eTw0Q" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_QBRwUce6Ed-7etIj5eTw0Q" name="FPTC">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwUse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4m1fcMF0Ed--atLXXafOiQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRwU8e6Ed-7etIj5eTw0Q" name="base_Class" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRwVce6Ed-7etIj5eTw0Q" name="component" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRwV8e6Ed-7etIj5eTw0Q" name="inputPort" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QBRwWce6Ed-7etIj5eTw0Q" name="inputFailureType" ordered="false" lowerBound="1" eType="_QBRwYce6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRwW8e6Ed-7etIj5eTw0Q" name="outputPort" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QBRwXce6Ed-7etIj5eTw0Q" name="outputFailureType" ordered="false" lowerBound="1" eType="_QBRwYce6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UvoV0Me6Ed-7etIj5eTw0Q" name="propagationProbability" ordered="false" lowerBound="1" eType="_UvoV0se6Ed-7etIj5eTw0Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRwYce6Ed-7etIj5eTw0Q" name="CHESSML_DependabilitySecurity_FailurePropagation_FailurePropagationDataTypes_FailureType">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwYse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_UhqyoMF1Ed--atLXXafOiQ"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwY8e6Ed-7etIj5eTw0Q" name="late"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwZMe6Ed-7etIj5eTw0Q" name="early" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwZce6Ed-7etIj5eTw0Q" name="valueSubtle" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwZse6Ed-7etIj5eTw0Q" name="valueCoarse" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwZ8e6Ed-7etIj5eTw0Q" name="omission" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwaMe6Ed-7etIj5eTw0Q" name="commission" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwace6Ed-7etIj5eTw0Q" name="noError" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwase6Ed-7etIj5eTw0Q" name="variable" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwa8e6Ed-7etIj5eTw0Q" name="wildcard" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRwxMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwxce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRwxse6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwx8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwyMe6Ed-7etIj5eTw0Q" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwyce6Ed-7etIj5eTw0Q" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwyse6Ed-7etIj5eTw0Q" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwy8e6Ed-7etIj5eTw0Q" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRwzMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwzce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwzse6Ed-7etIj5eTw0Q" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwz8e6Ed-7etIj5eTw0Q" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw0Me6Ed-7etIj5eTw0Q" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw0ce6Ed-7etIj5eTw0Q" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw0se6Ed-7etIj5eTw0Q" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw08e6Ed-7etIj5eTw0Q" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw1Me6Ed-7etIj5eTw0Q" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw1ce6Ed-7etIj5eTw0Q" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw1se6Ed-7etIj5eTw0Q" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRw18e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRw2Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw2ce6Ed-7etIj5eTw0Q" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw2se6Ed-7etIj5eTw0Q" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRw28e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRw3Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRw3ce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRw3se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_QBRw38e6Ed-7etIj5eTw0Q" name="FailurePropagationAnalysis">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRw4Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sNfHsMF1Ed--atLXXafOiQ"/>
-              <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_329vLZi4Ed-m0Oaexd_lJA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRw4ce6Ed-7etIj5eTw0Q" name="result" ordered="false" upperBound="-1" eType="_QBRwUce6Ed-7etIj5eTw0Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRxA8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxBMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxRse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxR8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxSMe6Ed-7etIj5eTw0Q" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxSce6Ed-7etIj5eTw0Q" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxSse6Ed-7etIj5eTw0Q" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxS8e6Ed-7etIj5eTw0Q" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxTMe6Ed-7etIj5eTw0Q" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxTce6Ed-7etIj5eTw0Q" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxTse6Ed-7etIj5eTw0Q" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxVse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxV8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxWMe6Ed-7etIj5eTw0Q" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxWce6Ed-7etIj5eTw0Q" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxWse6Ed-7etIj5eTw0Q" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxW8e6Ed-7etIj5eTw0Q" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxXMe6Ed-7etIj5eTw0Q" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxZMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_PowerUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxZce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ijhHUA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxZse6Ed-7etIj5eTw0Q" name="W"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxZ8e6Ed-7etIj5eTw0Q" name="mW" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxaMe6Ed-7etIj5eTw0Q" name="KW" value="2"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxcMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_EnergyUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxcce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UaKKgA4zEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxcse6Ed-7etIj5eTw0Q" name="J"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxc8e6Ed-7etIj5eTw0Q" name="KJ" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxdMe6Ed-7etIj5eTw0Q" name="Wh" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxdce6Ed-7etIj5eTw0Q" name="KWh" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxdse6Ed-7etIj5eTw0Q" name="mWh" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRxjse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxj8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxr8e6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeStandardKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxsMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_MDyyoA-KEdyNj8xzjk-DoA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxsce6Ed-7etIj5eTw0Q" name="TAI"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxsse6Ed-7etIj5eTw0Q" name="UT0" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxs8e6Ed-7etIj5eTw0Q" name="UT1" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxtMe6Ed-7etIj5eTw0Q" name="UTC" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxtce6Ed-7etIj5eTw0Q" name="Local" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxtse6Ed-7etIj5eTw0Q" name="TT" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxt8e6Ed-7etIj5eTw0Q" name="TBD" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxuMe6Ed-7etIj5eTw0Q" name="TCG" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxuce6Ed-7etIj5eTw0Q" name="TCB" value="8"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxuse6Ed-7etIj5eTw0Q" name="Sidereal" value="9"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxu8e6Ed-7etIj5eTw0Q" name="GPS" value="10"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRx0se6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeNatureKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRx08e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_WAvb0A75EdyML4mHwjNDrw"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRx1Me6Ed-7etIj5eTw0Q" name="discrete"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRx1ce6Ed-7etIj5eTw0Q" name="dense" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRyPse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRyP8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyQMe6Ed-7etIj5eTw0Q" name="Hz"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyQce6Ed-7etIj5eTw0Q" name="KHz" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyQse6Ed-7etIj5eTw0Q" name="MHz" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyQ8e6Ed-7etIj5eTw0Q" name="GHz" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyRMe6Ed-7etIj5eTw0Q" name="rpm" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRypMe6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_PeriodicServerKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRypce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UP5HEBFbEdyUJeMeN__D-A"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRypse6Ed-7etIj5eTw0Q" name="Sporadic"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyp8e6Ed-7etIj5eTw0Q" name="Deferrable" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyqMe6Ed-7etIj5eTw0Q" name="Undef" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyqce6Ed-7etIj5eTw0Q" name="Other" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRyvce6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_SchedPolicyKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRyvse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_4GfMYBFaEdyUJeMeN__D-A"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyv8e6Ed-7etIj5eTw0Q" name="EarliestDeadlineFirst"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRywMe6Ed-7etIj5eTw0Q" name="FIFO" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRywce6Ed-7etIj5eTw0Q" name="FixedPriority" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRywse6Ed-7etIj5eTw0Q" name="LeastLaxityFirst" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyw8e6Ed-7etIj5eTw0Q" name="RoundRobin" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyxMe6Ed-7etIj5eTw0Q" name="TimeTableDriven" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyxce6Ed-7etIj5eTw0Q" name="Undef" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyxse6Ed-7etIj5eTw0Q" name="Other" value="7"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRy3Me6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_ProtectProtocolKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRy3ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HkE7wBFbEdyUJeMeN__D-A"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy3se6Ed-7etIj5eTw0Q" name="FIFO"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy38e6Ed-7etIj5eTw0Q" name="NoPreemption" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy4Me6Ed-7etIj5eTw0Q" name="PriorityCeiling" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy4ce6Ed-7etIj5eTw0Q" name="PriorityInheritance" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy4se6Ed-7etIj5eTw0Q" name="StackBased" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy48e6Ed-7etIj5eTw0Q" name="Undef" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy5Me6Ed-7etIj5eTw0Q" name="Other" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRzGMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_NFPs_ConstraintKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRzGce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ZCtm0A4vEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzGse6Ed-7etIj5eTw0Q" name="required"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzG8e6Ed-7etIj5eTw0Q" name="offered" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzHMe6Ed-7etIj5eTw0Q" name="contract" value="2"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRzHce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_AnalysisModel_GQAM_LaxityKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRzHse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Gs3fEBKcEdymP89M8JXkzA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzH8e6Ed-7etIj5eTw0Q" name="hard"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzIMe6Ed-7etIj5eTw0Q" name="soft" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzIce6Ed-7etIj5eTw0Q" name="other" value="2"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UvoV0se6Ed-7etIj5eTw0Q" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UvoV08e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U1cC4Me6Ed-7etIj5eTw0Q" name="NFP_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U1cC4ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-        </eAnnotations>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_bK14cDHzEeWt8Ovv2G_EJg" annotatedElement="_aN9sgHpQEeCIAr4_5S9-cA">
-          <body>this allows to work with FPTC at instance level by using composite diagrams. It allows to decorate ports of the parts.</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_kqozsDHzEeWt8Ovv2G_EJg" annotatedElement="_cSCAkHpREeCIAr4_5S9-cA">
-          <body>deprecated, use FailureModes</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_pfGoQDHzEeWt8Ovv2G_EJg" annotatedElement="_4m1fcMF0Ed--atLXXafOiQ">
-          <body>deprecated, use FLABehavior instead&#xD;
-</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_Ky2DMDa9EeW314N4GP8y1Q" annotatedElement="_J31DEDH0EeWt8Ovv2G_EJg">
-          <body>this is added to mantain compatibility with the previous implementation work with FPTC stereotypes.&#xD;
-So a FailureModes applied to Slot (in place of the FPTCPortSlot) can refer the &lt;&lt;FPTCSpecification>> Comments.</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_8-bmMDa-EeW314N4GP8y1Q" annotatedElement="_I64AUc2TEeSrt5YehnIlig">
-          <body>to be removed</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_ntzfMDbUEeW5DJdhCjCHFw" annotatedElement="_E4Uw4M2TEeSrt5YehnIlig">
-          <body>replace the old FPTC stereotype</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_0FQkEDbUEeW5DJdhCjCHFw" annotatedElement="_aN9sgHpQEeCIAr4_5S9-cA">
-          <body>attribute 'failure' is deprecated, use 'failureModes'</body>
-        </ownedComment>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_tr9pIDQ6EeC0ueejuetpgA" alias="Comment">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_1E4EkHpQEeCIAr4_5S9-cA" alias="Property">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_nxIhIHpREeCIAr4_5S9-cA" alias="Slot">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_r_x7oKbSEeSHP5PnCeTneg" alias="Connector">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_IZ-SsM2TEeSrt5YehnIlig" alias="Constraint">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_NAcukM2TEeSrt5YehnIlig" alias="Class">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_lDOIQDHyEeWt8Ovv2G_EJg" alias="InstanceSpecification">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-        </elementImport>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_4m1fcMF0Ed--atLXXafOiQ" name="FPTC">
-          <generalization xmi:type="uml:Generalization" xmi:id="_GHeyEHriEeCZzfQgCDrHbQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_oLFpQMF1Ed--atLXXafOiQ" name="fptc" visibility="public">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qOE0sMF1Ed--atLXXafOiQ" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qOOlsMF1Ed--atLXXafOiQ" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_qOXvoMF1Ed--atLXXafOiQ">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_uSrTwDROEeCPrptoDUJcNQ" name="base_Comment" association="_uSrTwTROEeCPrptoDUJcNQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_trTCQKbSEeSHP5PnCeTneg" name="base_Connector" association="_trTpUKbSEeSHP5PnCeTneg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Package" xmi:id="_J_FksMF1Ed--atLXXafOiQ" name="FailurePropagationDataTypes">
-          <ownedComment xmi:type="uml:Comment" xmi:id="_7ozh8Da8EeW314N4GP8y1Q" annotatedElement="_UhqyoMF1Ed--atLXXafOiQ">
-            <body>deprecated, use FailureMode</body>
-          </ownedComment>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_Gn6goAFgEeG47Njvphl3lQ" name="D_avoidable">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_R9NLoAFlEeGITcsal1T3Og" name="unspecified"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Gn6goQFgEeG47Njvphl3lQ" name="impermanence"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Gn6gogFgEeG47Njvphl3lQ" name="none"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_B8CAUAFgEeG47Njvphl3lQ" name="I_avoidable">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VgUGAAFlEeGITcsal1T3Og" name="unspecified"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_B8CAUQFgEeG47Njvphl3lQ" name="interference"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_B8CAUgFgEeG47Njvphl3lQ" name="none"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="__14BkAFeEeG47Njvphl3lQ" name="C_avoidable">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VxBbgAFlEeGITcsal1T3Og" name="unspecified"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_EK0okAFfEeG47Njvphl3lQ" name="inconsistency"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_GOGH4AFfEeG47Njvphl3lQ" name="none"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_UhqyoMF1Ed--atLXXafOiQ" name="FailureType">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XE_rAMF1Ed--atLXXafOiQ" name="late"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XrJFAMF1Ed--atLXXafOiQ" name="early"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_YfmAwMF1Ed--atLXXafOiQ" name="valueSubtle"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ZhAacMF1Ed--atLXXafOiQ" name="valueCoarse"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_au8NMMF1Ed--atLXXafOiQ" name="omission"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_cFhloMF1Ed--atLXXafOiQ" name="commission"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_c7wqEMF1Ed--atLXXafOiQ" name="noFailure"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_d27R0MF1Ed--atLXXafOiQ" name="variable"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_e19F4MF1Ed--atLXXafOiQ" name="wildcard"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_zutbcAFeEeG47Njvphl3lQ" name="A_avoidable">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Wic4cAFlEeGITcsal1T3Og" name="unspecified"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_3eNzEAFeEeG47Njvphl3lQ" name="incompletion"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_6nEaYAFeEeG47Njvphl3lQ" name="none"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_jO-nsAFgEeG47Njvphl3lQ" name="A_mitigation">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_W2YhEAFlEeGITcsal1T3Og" name="unspecified"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jO-nsQFgEeG47Njvphl3lQ" name="all_or_nothing"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_oVyJcAFgEeG47Njvphl3lQ" name="all_or_compensation"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jO-nsgFgEeG47Njvphl3lQ" name="none"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_rQws0AFgEeG47Njvphl3lQ" name="C_mitigation">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XMRRgAFlEeGITcsal1T3Og" name="unspecified"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rQws0QFgEeG47Njvphl3lQ" name="full_consistency"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rQws0gFgEeG47Njvphl3lQ" name="range_violation_allowed"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rQws0wFgEeG47Njvphl3lQ" name="none"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_zPfd8AFgEeG47Njvphl3lQ" name="I_mitigation">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XZPWgAFlEeGITcsal1T3Og" name="unspecified"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zPfd8QFgEeG47Njvphl3lQ" name="portable_level"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zPfd8gFgEeG47Njvphl3lQ" name="serializable"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zPfd8wFgEeG47Njvphl3lQ" name="none"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_-HY0kAFgEeG47Njvphl3lQ" name="D_mitigation">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XsbYQAFlEeGITcsal1T3Og" name="unspecified"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_-HY0kQFgEeG47Njvphl3lQ" name="no_loss"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_-HY0kgFgEeG47Njvphl3lQ" name="partial_loss_allowed"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_-HY0kwFgEeG47Njvphl3lQ" name="none"/>
-          </packagedElement>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_sNfHsMF1Ed--atLXXafOiQ" name="FailurePropagationAnalysis">
-          <generalization xmi:type="uml:Generalization" xmi:id="_yIAlYMF1Ed--atLXXafOiQ">
-            <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>
-          </generalization>
-          <generalization xmi:type="uml:Generalization" xmi:id="_TjKe0DQ7EeC0ueejuetpgA">
-            <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>
-          </generalization>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_uSrTwTROEeCPrptoDUJcNQ" name="E_FPTC_Comment0" memberEnd="_uSrTwjROEeCPrptoDUJcNQ _uSrTwDROEeCPrptoDUJcNQ">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_uSrTwjROEeCPrptoDUJcNQ" name="extension_FPTC" type="_4m1fcMF0Ed--atLXXafOiQ" aggregation="composite" association="_uSrTwTROEeCPrptoDUJcNQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_aN9sgHpQEeCIAr4_5S9-cA" name="FPTCSpecification">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_hgh7MHpQEeCIAr4_5S9-cA" name="base_Comment" association="_hgh7MXpQEeCIAr4_5S9-cA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_jIGV8HpQEeCIAr4_5S9-cA" name="failure" visibility="public" type="_UhqyoMF1Ed--atLXXafOiQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kdL5kHpQEeCIAr4_5S9-cA"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kdVqkHpQEeCIAr4_5S9-cA" value="*"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_kdfbkHpQEeCIAr4_5S9-cA">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_640ZIHpQEeCIAr4_5S9-cA" name="partWithPort" association="_640ZI3pQEeCIAr4_5S9-cA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_640ZInpQEeCIAr4_5S9-cA" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_640ZIXpQEeCIAr4_5S9-cA" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Hj8NgDH3EeWt8Ovv2G_EJg" name="failureMode" type="_VJH8IM1iEeSrt5YehnIlig" association="_Hj80kDH3EeWt8Ovv2G_EJg">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hj8NgTH3EeWt8Ovv2G_EJg"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hj8NgjH3EeWt8Ovv2G_EJg" value="*"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_hgh7MXpQEeCIAr4_5S9-cA" name="E_FPTCSpecification_Comment0" memberEnd="_hgh7MnpQEeCIAr4_5S9-cA _hgh7MHpQEeCIAr4_5S9-cA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_hgh7MnpQEeCIAr4_5S9-cA" name="extension_FPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" aggregation="composite" association="_hgh7MXpQEeCIAr4_5S9-cA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_640ZI3pQEeCIAr4_5S9-cA" name="fPTCSpecification_property_0" memberEnd="_640ZJHpQEeCIAr4_5S9-cA _640ZIHpQEeCIAr4_5S9-cA">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_640ZJHpQEeCIAr4_5S9-cA" name="fPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" association="_640ZI3pQEeCIAr4_5S9-cA">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_640ZJnpQEeCIAr4_5S9-cA" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_640ZJXpQEeCIAr4_5S9-cA" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_cSCAkHpREeCIAr4_5S9-cA" name="FPTCPortSlot">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_eL7hcHpREeCIAr4_5S9-cA" name="FPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" association="_eMErYHpREeCIAr4_5S9-cA">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eL7hcnpREeCIAr4_5S9-cA" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eL7hcXpREeCIAr4_5S9-cA" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_oNcpsHpREeCIAr4_5S9-cA" name="base_Slot" association="_oNcpsXpREeCIAr4_5S9-cA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_7CFnwKbTEeSHP5PnCeTneg" name="failure" type="_UhqyoMF1Ed--atLXXafOiQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FIbloKbUEeSHP5PnCeTneg"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FIczwKbUEeSHP5PnCeTneg" value="*"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_eMErYHpREeCIAr4_5S9-cA" name="fPTCPortSlot_fPTCSpecification_0" memberEnd="_eMErYXpREeCIAr4_5S9-cA _eL7hcHpREeCIAr4_5S9-cA">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_eMErYXpREeCIAr4_5S9-cA" name="fPTCPortSlot" type="_cSCAkHpREeCIAr4_5S9-cA" association="_eMErYHpREeCIAr4_5S9-cA">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eMErY3pREeCIAr4_5S9-cA" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eMErYnpREeCIAr4_5S9-cA" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_oNcpsXpREeCIAr4_5S9-cA" name="E_FPTCPortSlot_Slot0" memberEnd="_oNcpsnpREeCIAr4_5S9-cA _oNcpsHpREeCIAr4_5S9-cA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_oNcpsnpREeCIAr4_5S9-cA" name="extension_FPTCPortSlot" type="_cSCAkHpREeCIAr4_5S9-cA" aggregation="composite" association="_oNcpsXpREeCIAr4_5S9-cA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Z6PNQAFdEeG47Njvphl3lQ" name="FI4FA">
-          <generalization xmi:type="uml:Generalization" xmi:id="_bKzdQAFdEeG47Njvphl3lQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_oTEUAAFdEeG47Njvphl3lQ" name="fi4fa">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_tOw3QKbSEeSHP5PnCeTneg" name="base_Connector" association="_tOxeUKbSEeSHP5PnCeTneg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_FfQhYAFeEeG47Njvphl3lQ" name="FI4FASpecification">
-          <generalization xmi:type="uml:Generalization" xmi:id="_Hu7d8AFeEeG47Njvphl3lQ" general="_aN9sgHpQEeCIAr4_5S9-cA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_qWq4kAFfEeG47Njvphl3lQ" name="ACIDAvoidable">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_vbGbwAFfEeG47Njvphl3lQ" name="a" type="_zutbcAFeEeG47Njvphl3lQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yJ_D4AFfEeG47Njvphl3lQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yKFKgAFfEeG47Njvphl3lQ" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_0EPKEAFfEeG47Njvphl3lQ" name="c" type="__14BkAFeEeG47Njvphl3lQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4Y1LwAFfEeG47Njvphl3lQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4ZCAEAFfEeG47Njvphl3lQ" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_7yOJcAFfEeG47Njvphl3lQ" name="base_Comment" association="_7yOJcQFfEeG47Njvphl3lQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_P6mM8AFgEeG47Njvphl3lQ" name="i" type="_B8CAUAFgEeG47Njvphl3lQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S-eNoAFgEeG47Njvphl3lQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S-whgAFgEeG47Njvphl3lQ" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_VGqCIAFgEeG47Njvphl3lQ" name="d" type="_Gn6goAFgEeG47Njvphl3lQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YnjWAAFgEeG47Njvphl3lQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yn1p4AFgEeG47Njvphl3lQ" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_7yOJcQFfEeG47Njvphl3lQ" name="E_ACIDAvoidable_Comment0" memberEnd="_7yOJcgFfEeG47Njvphl3lQ _7yOJcAFfEeG47Njvphl3lQ">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_7yOJcgFfEeG47Njvphl3lQ" name="extension_ACIDAvoidable" type="_qWq4kAFfEeG47Njvphl3lQ" aggregation="composite" association="_7yOJcQFfEeG47Njvphl3lQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_dq5UEAFgEeG47Njvphl3lQ" name="ACIDMitigation ">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_haekMAFgEeG47Njvphl3lQ" name="base_Comment" association="_hafLQAFgEeG47Njvphl3lQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_HmyuQAFhEeG47Njvphl3lQ" name="a" type="_jO-nsAFgEeG47Njvphl3lQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MoJIQAFhEeG47Njvphl3lQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MoJIQQFhEeG47Njvphl3lQ" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_lz4_AAFhEeG47Njvphl3lQ" name="c" type="_rQws0AFgEeG47Njvphl3lQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pBKMQAFhEeG47Njvphl3lQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pBQS4AFhEeG47Njvphl3lQ" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_qBuRYAFhEeG47Njvphl3lQ" name="i" type="_zPfd8AFgEeG47Njvphl3lQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stOOUAFhEeG47Njvphl3lQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stUU8AFhEeG47Njvphl3lQ" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_tCrg8AFhEeG47Njvphl3lQ" name="d" type="_-HY0kAFgEeG47Njvphl3lQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wkv5gAFhEeG47Njvphl3lQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wk2AIAFhEeG47Njvphl3lQ" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_hafLQAFgEeG47Njvphl3lQ" name="E_ACIDMitigation _Comment0" memberEnd="_hafLQQFgEeG47Njvphl3lQ _haekMAFgEeG47Njvphl3lQ">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_hafLQQFgEeG47Njvphl3lQ" name="extension_ACIDMitigation " type="_dq5UEAFgEeG47Njvphl3lQ" aggregation="composite" association="_hafLQAFgEeG47Njvphl3lQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_sm3owCV-EeGFef9zQOfShA" name="FI4FAAnalysis">
-          <generalization xmi:type="uml:Generalization" xmi:id="_yRbX0CV-EeGFef9zQOfShA">
-            <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>
-          </generalization>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_tOxeUKbSEeSHP5PnCeTneg" name="E_FI4FA_Connector1" memberEnd="_tOxeUabSEeSHP5PnCeTneg _tOw3QKbSEeSHP5PnCeTneg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_tOxeUabSEeSHP5PnCeTneg" name="extension_FI4FA" type="_Z6PNQAFdEeG47Njvphl3lQ" aggregation="composite" association="_tOxeUKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_trTpUKbSEeSHP5PnCeTneg" name="E_FPTC_Connector1" memberEnd="_trTpUabSEeSHP5PnCeTneg _trTCQKbSEeSHP5PnCeTneg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_trTpUabSEeSHP5PnCeTneg" name="extension_FPTC" type="_4m1fcMF0Ed--atLXXafOiQ" aggregation="composite" association="_trTpUKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_E4Uw4M2TEeSrt5YehnIlig" name="FLABehavior">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_I64AUM2TEeSrt5YehnIlig" name="base_Constraint" association="_I64AUc2TEeSrt5YehnIlig">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Nub18M2TEeSrt5YehnIlig" name="base_Class" association="_Nub18c2TEeSrt5YehnIlig">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_mCMWsM5BEeSP8r0TgY6H4g" name="fptc">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_lpgsMDHyEeWt8Ovv2G_EJg" name="base_InstanceSpecification" association="_lpgsMTHyEeWt8Ovv2G_EJg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_mByCQDHyEeWt8Ovv2G_EJg" name="base_Property" association="_mB1FkDHyEeWt8Ovv2G_EJg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_mYJT0DHyEeWt8Ovv2G_EJg" name="base_Connector" association="_mYJT0THyEeWt8Ovv2G_EJg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_I64AUc2TEeSrt5YehnIlig" name="E_FLABehavior_Constraint1" memberEnd="_I64AUs2TEeSrt5YehnIlig _I64AUM2TEeSrt5YehnIlig">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_I64AUs2TEeSrt5YehnIlig" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_I64AUc2TEeSrt5YehnIlig"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_Nub18c2TEeSrt5YehnIlig" name="E_FLABehavior_Class1" memberEnd="_Nub18s2TEeSrt5YehnIlig _Nub18M2TEeSrt5YehnIlig">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Nub18s2TEeSrt5YehnIlig" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_Nub18c2TEeSrt5YehnIlig"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_lpgsMTHyEeWt8Ovv2G_EJg" name="E_FLABehavior_InstanceSpecification1" memberEnd="_lpgsMjHyEeWt8Ovv2G_EJg _lpgsMDHyEeWt8Ovv2G_EJg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_lpgsMjHyEeWt8Ovv2G_EJg" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_lpgsMTHyEeWt8Ovv2G_EJg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_mB1FkDHyEeWt8Ovv2G_EJg" name="E_FLABehavior_Property1" memberEnd="_mB1FkTHyEeWt8Ovv2G_EJg _mByCQDHyEeWt8Ovv2G_EJg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_mB1FkTHyEeWt8Ovv2G_EJg" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_mB1FkDHyEeWt8Ovv2G_EJg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_mYJT0THyEeWt8Ovv2G_EJg" name="E_FLABehavior_Connector1" memberEnd="_mYJT0jHyEeWt8Ovv2G_EJg _mYJT0DHyEeWt8Ovv2G_EJg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_mYJT0jHyEeWt8Ovv2G_EJg" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_mYJT0THyEeWt8Ovv2G_EJg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_Hj80kDH3EeWt8Ovv2G_EJg" name="fPTCSpecification_failureMode_1" memberEnd="_Hj80kTH3EeWt8Ovv2G_EJg _Hj8NgDH3EeWt8Ovv2G_EJg">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_Hj80kTH3EeWt8Ovv2G_EJg" name="fPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" association="_Hj80kDH3EeWt8Ovv2G_EJg">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hj80kjH3EeWt8Ovv2G_EJg" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hj80kzH3EeWt8Ovv2G_EJg" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Profile" xmi:id="_cE_bwLwzEd-CDNLmLgazUQ" name="StateBased" URI="http://CHESS/Dependability/StateBased">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IRwq8cGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <contents xmi:type="ecore:EPackage" xmi:id="_QgRZcMe6Ed-7etIj5eTw0Q" name="StateBased" nsURI="http://CHESS/Dependability/StateBased" nsPrefix="StateBased">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U3X8mce6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8mse6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8m8e6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8nMe6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8nce6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8nse6Ed-7etIj5eTw0Q" key="Author" value=""/>
-            </eAnnotations>
-          </contents>
-        </eAnnotations>
-        <packagedElement xmi:type="uml:Package" xmi:id="_u09NsLzqEd-yoLyJo0JlOg" name="StateBasedDataTypes">
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_2aiM4L84Ed-TL8tpOyViyA" name="RedundancyKind">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_4yYOAL84Ed-TL8tpOyViyA" name="TMR"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_63AYML84Ed-TL8tpOyViyA" name="Recovery"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:DataType" xmi:id="_gg-JgL9BEd-TL8tpOyViyA" name="DependabilityMeasure" isAbstract="true">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_yDV-oL9CEd-TL8tpOyViyA" name="evalProperties" visibility="public" type="_ypgcML9BEd-TL8tpOyViyA">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0bfhwL9CEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0borsL9CEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_0bycsL9CEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_5IWScL9CEd-TL8tpOyViyA" name="requiredMin" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7ZMTsL9CEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7ZWEsL9CEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_7ZWEsb9CEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_7tnEgL9CEd-TL8tpOyViyA" name="requiredMax" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9g8qYL9CEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9hF0UL9CEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_9hF0Ub9CEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:DataType" xmi:id="_ypgcML9BEd-TL8tpOyViyA" name="EvaluationMethod" isAbstract="true">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_yBQecMAHEd-Dn5_MBIs5Vw" name="simulation" visibility="public" type="_1_8MgL9BEd-TL8tpOyViyA">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0bMKQMAHEd-Dn5_MBIs5Vw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0bMKQcAHEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_0bVUMMAHEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_5i31wMAHEd-Dn5_MBIs5Vw" name="analytical" visibility="public" type="_ZD9v8L9CEd-TL8tpOyViyA">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_78zhkMAHEd-Dn5_MBIs5Vw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_78zhkcAHEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_789SkMAHEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:DataType" xmi:id="_1_8MgL9BEd-TL8tpOyViyA" name="EvaluationBySimulation">
-            <generalization xmi:type="uml:Generalization" xmi:id="_322q0L9BEd-TL8tpOyViyA" general="_ypgcML9BEd-TL8tpOyViyA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_5yreUL9BEd-TL8tpOyViyA" name="confidenceInterval" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9WrJgL9BEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9W06gL9BEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_9W06gb9BEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_CgTVwL9CEd-TL8tpOyViyA" name="confidenceLevel" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EQp5EL9CEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EQzqEL9CEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_EQ80AL9CEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_J5kpYL9CEd-TL8tpOyViyA" name="kind" visibility="public" type="_K_w1YL9CEd-TL8tpOyViyA">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KeFEoL9CEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KeFEob9CEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_KeO1oL9CEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_RjiEYL9CEd-TL8tpOyViyA" name="maxBatches" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T0O7sL9CEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T0YFoL9CEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_T0YFob9CEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Enumeration" xmi:id="_K_w1YL9CEd-TL8tpOyViyA" name="ConfidenceKind">
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_NIs30L9CEd-TL8tpOyViyA" name="relative"/>
-            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_N5usIL9CEd-TL8tpOyViyA" name="absolute"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:DataType" xmi:id="_ZD9v8L9CEd-TL8tpOyViyA" name="EvaluationAnalytical">
-            <generalization xmi:type="uml:Generalization" xmi:id="_aGkccL9CEd-TL8tpOyViyA" general="_ypgcML9BEd-TL8tpOyViyA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_hU980L9CEd-TL8tpOyViyA" name="accuracy" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_itoY4L9CEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_itxi0L9CEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_itxi0b9CEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_lG0d0L9CEd-TL8tpOyViyA" name="maxIteration" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m7MlgL9CEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m7Mlgb9CEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_m7WWgL9CEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:DataType" xmi:id="_BV7X4L9DEd-TL8tpOyViyA" name="Reliability">
-            <generalization xmi:type="uml:Generalization" xmi:id="_CyxJUL9DEd-TL8tpOyViyA" general="_gg-JgL9BEd-TL8tpOyViyA"/>
-            <generalization xmi:type="uml:Generalization" xmi:id="_rSeKEEQQEeCQRfAVtSc0sw" general="_gg-JgL9BEd-TL8tpOyViyA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_n_CS8MAEEd-Dn5_MBIs5Vw" name="instantOfTime" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p5rasMAEEd-Dn5_MBIs5Vw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p5rascAEEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_p5rassAEEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:DataType" xmi:id="_JEphoL9EEd-TL8tpOyViyA" name="EvaluationType" isAbstract="true">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_s98kUMABEd-Dn5_MBIs5Vw" name="steady" visibility="public" type="_Nim6sL9EEd-TL8tpOyViyA">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_udBKYMABEd-Dn5_MBIs5Vw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_udKUUMABEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_udKUUcABEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_xnh-kMABEd-Dn5_MBIs5Vw" name="instantOfTime" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4sPFgMADEd-Dn5_MBIs5Vw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4sY2gMADEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_4sY2gcADEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_SpTrgMAEEd-Dn5_MBIs5Vw" name="intervalOfTime" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UytA8MAEEd-Dn5_MBIs5Vw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UytA8cAEEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Uy2x8MAEEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:DataType" xmi:id="_Nim6sL9EEd-TL8tpOyViyA" name="SteadyState">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_UzPPsL9EEd-TL8tpOyViyA" name="initialTransient" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WjvkAL9EEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wj5VAL9EEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Wj5VAb9EEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_c7S78L9EEd-TL8tpOyViyA" name="batchSize" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EString"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eYSeYL9EEd-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eYSeYb9EEd-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_eYboUL9EEd-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:DataType" xmi:id="_IXDbwMAIEd-Dn5_MBIs5Vw" name="Availability">
-            <generalization xmi:type="uml:Generalization" xmi:id="_OUiG0MAIEd-Dn5_MBIs5Vw" general="_gg-JgL9BEd-TL8tpOyViyA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_R7p-gMAIEd-Dn5_MBIs5Vw" name="evaluation" visibility="public" type="_JEphoL9EEd-TL8tpOyViyA">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TZPW0MAIEd-Dn5_MBIs5Vw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TZPW0cAIEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_TZZH0MAIEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:DataType" xmi:id="_b3D3sMAIEd-Dn5_MBIs5Vw" name="MTTF">
-            <generalization xmi:type="uml:Generalization" xmi:id="_df0lQMAIEd-Dn5_MBIs5Vw" general="_gg-JgL9BEd-TL8tpOyViyA"/>
-          </packagedElement>
-          <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_f6IpcFt1EeCB9JyGkIbTqQ">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f6IpcVt1EeCB9JyGkIbTqQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-              <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//VSL/DataTypes"/>
-            </eAnnotations>
-            <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9FdqwA-MEdyLh7muGbCqMw"/>
-          </profileApplication>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Profile" xmi:id="_d50lQL86Ed-TL8tpOyViyA" name="StateBasedComponents" URI="http://CHESS/Dependability/StateBased/StateBasedComponents" metaclassReference="_khfBQDUkEeC3rNpnAhYo0w _9n598DXmEeCuQp9j3DmccQ _v_f1IDa_EeW314N4GP8y1Q _v_hDQDa_EeW314N4GP8y1Q _v_hqUDa_EeW314N4GP8y1Q">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IYK08MGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-            <contents xmi:type="ecore:EPackage" xmi:id="_qaEFEEAjEeCQKOeIf0epIQ" name="StateBasedComponents" nsURI="http://CHESS/Dependability/StateBased/StateBasedComponents" nsPrefix="StateBasedComponents">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qj5WgEAjEeCQKOeIf0epIQ" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5WgUAjEeCQKOeIf0epIQ" key="Version" value="0.1.10"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5WgkAjEeCQKOeIf0epIQ" key="Comment" value="added faultOcc in stateBased components"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5Wg0AjEeCQKOeIf0epIQ" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5WhEAjEeCQKOeIf0epIQ" key="Date" value="2011-02-24"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5WhUAjEeCQKOeIf0epIQ" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_qaEFEUAjEeCQKOeIf0epIQ" name="StatefulHardware" eSuperTypes="_vTM2hzgaEeCE2sZUGxu35w">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFEkAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_2CGCcLztEd-yoLyJo0JlOg"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qaXAAEAjEeCQKOeIf0epIQ" name="probPermFault" ordered="false" lowerBound="1" eType="_qaXAAkAjEeCQKOeIf0epIQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qazr8EAjEeCQKOeIf0epIQ" name="errorLatency" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qbQX4EAjEeCQKOeIf0epIQ" name="repairDelay" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qbtD0EAjEeCQKOeIf0epIQ" name="faultOcc" ordered="false" eType="_qbtD0kAjEeCQKOeIf0epIQ"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaEFe0AjEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFfEAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFfUAjEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFfkAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFf0AjEeCQKOeIf0epIQ" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFgEAjEeCQKOeIf0epIQ" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFgUAjEeCQKOeIf0epIQ" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFgkAjEeCQKOeIf0epIQ" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFg0AjEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFhEAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFhUAjEeCQKOeIf0epIQ" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFhkAjEeCQKOeIf0epIQ" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFh0AjEeCQKOeIf0epIQ" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFiEAjEeCQKOeIf0epIQ" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFiUAjEeCQKOeIf0epIQ" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFikAjEeCQKOeIf0epIQ" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFi0AjEeCQKOeIf0epIQ" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFjEAjEeCQKOeIf0epIQ" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFjUAjEeCQKOeIf0epIQ" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFjkAjEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFj0AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFkEAjEeCQKOeIf0epIQ" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFkUAjEeCQKOeIf0epIQ" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaEFkkAjEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFk0AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaEFlEAjEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFlUAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFo0AjEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFpEAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFpUAjEeCQKOeIf0epIQ" name="s"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFpkAjEeCQKOeIf0epIQ" name="tick" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFp0AjEeCQKOeIf0epIQ" name="ms" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFqEAjEeCQKOeIf0epIQ" name="us" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFqUAjEeCQKOeIf0epIQ" name="min" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFqkAjEeCQKOeIf0epIQ" name="hrs" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFq0AjEeCQKOeIf0epIQ" name="day" value="6"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaEFrEAjEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFrUAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFtUAjEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFtkAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFt0AjEeCQKOeIf0epIQ" name="Hz"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFuEAjEeCQKOeIf0epIQ" name="KHz" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFuUAjEeCQKOeIf0epIQ" name="MHz" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFukAjEeCQKOeIf0epIQ" name="GHz" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFu0AjEeCQKOeIf0epIQ" name="rpm" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_qaEFvEAjEeCQKOeIf0epIQ" name="StatefulSoftware" eSuperTypes="_vTM2hzgaEeCE2sZUGxu35w">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFvUAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ZcEAsLzuEd-yoLyJo0JlOg"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qdfzkUAjEeCQKOeIf0epIQ" name="errorLatency" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qeFpcEAjEeCQKOeIf0epIQ" name="repairDelay" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qesGYEAjEeCQKOeIf0epIQ" name="faultOcc" ordered="false" eType="_qbtD0kAjEeCQKOeIf0epIQ"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_qaEFxUAjEeCQKOeIf0epIQ" name="StatelessHardware" eSuperTypes="_vTM2hzgaEeCE2sZUGxu35w">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFxkAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_FUGM4LzuEd-yoLyJo0JlOg"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qgUeEEAjEeCQKOeIf0epIQ" name="probPermFault" ordered="false" lowerBound="1" eType="_qaXAAkAjEeCQKOeIf0epIQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qg67AEAjEeCQKOeIf0epIQ" name="repairDelay" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qhXm8EAjEeCQKOeIf0epIQ" name="faultOcc" ordered="false" eType="_qbtD0kAjEeCQKOeIf0epIQ"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_qaEFzkAjEeCQKOeIf0epIQ" name="StatelessSoftware" eSuperTypes="_vTM2hzgaEeCE2sZUGxu35w">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFz0AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_or_HgLzuEd-yoLyJo0JlOg"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qjAlsUAjEeCQKOeIf0epIQ" name="faultOcc" ordered="false" eType="_qbtD0kAjEeCQKOeIf0epIQ"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaXAAkAjEeCQKOeIf0epIQ" name="NFP_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaXAA0AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qazr8kAjEeCQKOeIf0epIQ" name="NFP_Duration" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qazr80AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qbtD0kAjEeCQKOeIf0epIQ" name="NFP_Frequency" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qbtD00AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-            <contents xmi:type="ecore:EPackage" xmi:id="_Q0rjMMe6Ed-7etIj5eTw0Q" name="DependableComponents" nsURI="http://CHESS.DependabilitySecurity.StateBased/schemas/DependableComponents/_QgajYMe6Ed-7etIj5eTw0Q/9" nsPrefix="DependableComponents">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V9QmkMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9Qmkce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9Qmkse6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9Qmk8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9QmlMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9Qmlce6Ed-7etIj5eTw0Q" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rjMce6Ed-7etIj5eTw0Q" name="DepComponent" abstract="true">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjMse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjM8e6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjNce6Ed-7etIj5eTw0Q" name="base_Property" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjN8e6Ed-7etIj5eTw0Q" name="failure" ordered="false" lowerBound="1" upperBound="-1" eType="_Q0rjO8e6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U7jR8Me6Ed-7etIj5eTw0Q" name="faultOcc" ordered="false" lowerBound="1" eType="_U7jR8se6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rjO8e6Ed-7etIj5eTw0Q" name="FailureMode">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjPMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Q0rjPce6Ed-7etIj5eTw0Q" name="name" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Q0rjP8e6Ed-7etIj5eTw0Q" name="description" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjRce6Ed-7etIj5eTw0Q" name="PropagationLogics" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//OpaqueExpression"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjR8e6Ed-7etIj5eTw0Q" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U_kPQMe6Ed-7etIj5eTw0Q" name="signaled" ordered="false" lowerBound="1" eType="_U_kPQse6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCGl4Me6Ed-7etIj5eTw0Q" name="relProb" ordered="false" lowerBound="1" eType="_VCGl4se6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rjoce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjose6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rjo8e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjpMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjpce6Ed-7etIj5eTw0Q" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjpse6Ed-7etIj5eTw0Q" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjp8e6Ed-7etIj5eTw0Q" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjqMe6Ed-7etIj5eTw0Q" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rjqce6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjqse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjq8e6Ed-7etIj5eTw0Q" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjrMe6Ed-7etIj5eTw0Q" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjrce6Ed-7etIj5eTw0Q" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjrse6Ed-7etIj5eTw0Q" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjr8e6Ed-7etIj5eTw0Q" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjsMe6Ed-7etIj5eTw0Q" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjsce6Ed-7etIj5eTw0Q" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjsse6Ed-7etIj5eTw0Q" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjs8e6Ed-7etIj5eTw0Q" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rjtMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjtce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjtse6Ed-7etIj5eTw0Q" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjt8e6Ed-7etIj5eTw0Q" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rjuMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjuce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rjuse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rju8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rjvMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjvce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rjyse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjy8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjzMe6Ed-7etIj5eTw0Q" name="Hz"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjzce6Ed-7etIj5eTw0Q" name="KHz" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjzse6Ed-7etIj5eTw0Q" name="MHz" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjz8e6Ed-7etIj5eTw0Q" name="GHz" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj0Me6Ed-7etIj5eTw0Q" name="rpm" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rj0ce6Ed-7etIj5eTw0Q" name="Propagation">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj0se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj08e6Ed-7etIj5eTw0Q" source="duplicates">
-                  <contents xmi:type="ecore:EReference" xmi:id="_Q0rj1Me6Ed-7etIj5eTw0Q" name="base_Connector" ordered="false" lowerBound="1">
-                    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj1ce6Ed-7etIj5eTw0Q" source="redefines" references="_Q0rj18e6Ed-7etIj5eTw0Q"/>
-                    <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-                  </contents>
-                </eAnnotations>
-                <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_b7sgXLG3Ed-tmN4hwNCxXQ"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rj18e6Ed-7etIj5eTw0Q" name="base_Connector" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VMFoUMe6Ed-7etIj5eTw0Q" name="prob" ordered="false" lowerBound="1" eType="_VCGl4se6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VPqgwMe6Ed-7etIj5eTw0Q" name="propDelay" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rj6Me6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_Alloc_AllocationKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj6ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VxKdYBHbEdyWC5IKDhzksw"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj6se6Ed-7etIj5eTw0Q" name="structural"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj68e6Ed-7etIj5eTw0Q" name="behavioral" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj7Me6Ed-7etIj5eTw0Q" name="hybrid" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rj7ce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_Alloc_AllocationNature">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj7se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VYSDUBHbEdyWC5IKDhzksw"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj78e6Ed-7etIj5eTw0Q" name="spatialDistribution"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj8Me6Ed-7etIj5eTw0Q" name="timeScheduling" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rj-ce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_NFPs_ConstraintKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj-se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ZCtm0A4vEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj-8e6Ed-7etIj5eTw0Q" name="required"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj_Me6Ed-7etIj5eTw0Q" name="offered" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj_ce6Ed-7etIj5eTw0Q" name="contract" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rkD8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkEMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkEce6Ed-7etIj5eTw0Q" name="s"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkEse6Ed-7etIj5eTw0Q" name="tick" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkE8e6Ed-7etIj5eTw0Q" name="ms" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkFMe6Ed-7etIj5eTw0Q" name="us" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkFce6Ed-7etIj5eTw0Q" name="min" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkFse6Ed-7etIj5eTw0Q" name="hrs" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkF8e6Ed-7etIj5eTw0Q" name="day" value="6"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rkGMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkGce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rkGse6Ed-7etIj5eTw0Q" name="StatefulHardware" eSuperTypes="_Q0rjMce6Ed-7etIj5eTw0Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkG8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_2CGCcLztEd-yoLyJo0JlOg"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VVeN0Me6Ed-7etIj5eTw0Q" name="probPermFault" ordered="false" lowerBound="1" eType="_VCGl4se6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VYnBYMe6Ed-7etIj5eTw0Q" name="errorLatency" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VbvN4Me6Ed-7etIj5eTw0Q" name="repairDelay" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rkI8e6Ed-7etIj5eTw0Q" name="StatefulSoftware" eSuperTypes="_Q0rjMce6Ed-7etIj5eTw0Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkJMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ZcEAsLzuEd-yoLyJo0JlOg"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VlauUMe6Ed-7etIj5eTw0Q" name="errorLatency" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Voi60Me6Ed-7etIj5eTw0Q" name="repairDelay" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rkKse6Ed-7etIj5eTw0Q" name="StatelessHardware" eSuperTypes="_Q0rjMce6Ed-7etIj5eTw0Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkK8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_FUGM4LzuEd-yoLyJo0JlOg"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vw4-gMe6Ed-7etIj5eTw0Q" name="probPermFault" ordered="false" lowerBound="1" eType="_VCGl4se6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_V0ByEMe6Ed-7etIj5eTw0Q" name="repairDelay" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rkMce6Ed-7etIj5eTw0Q" name="StatelessSoftware" eSuperTypes="_Q0rjMce6Ed-7etIj5eTw0Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkMse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_or_HgLzuEd-yoLyJo0JlOg"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U7jR8se6Ed-7etIj5eTw0Q" name="NFP_Frequency" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U7jR88e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U_kPQse6Ed-7etIj5eTw0Q" name="NFP_Boolean" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U_kPQ8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_55fyMBFGEdyBd9q9NMDXUQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_VCGl4se6Ed-7etIj5eTw0Q" name="NFP_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VCGl48e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_VPqgwse6Ed-7etIj5eTw0Q" name="NFP_Duration" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VPqgw8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-          </eAnnotations>
-          <ownedComment xmi:type="uml:Comment" xmi:id="_tClioDbAEeW314N4GP8y1Q" annotatedElement="_ydru0Da_EeW314N4GP8y1Q">
-            <body>as instance of component, block, connector</body>
-          </ownedComment>
-          <ownedComment xmi:type="uml:Comment" xmi:id="_xj5xsDbAEeW314N4GP8y1Q" annotatedElement="_xm1mYDa_EeW314N4GP8y1Q">
-            <body>as component, block</body>
-          </ownedComment>
-          <ownedComment xmi:type="uml:Comment" xmi:id="__A-a0DbAEeW314N4GP8y1Q" annotatedElement="_x-obUDa_EeW314N4GP8y1Q _-F7H0DbAEeW314N4GP8y1Q">
-            <body>This is to allow using SimpleStichasticBahaviour in CompositeDiagram, the latter as kind of instance view.However the plan is to enable the usage of InstanceSpefications\Slots for extra functional annotation; so the usage of the InstanceSpecification should be preferred here.</body>
-          </ownedComment>
-          <ownedComment xmi:type="uml:Comment" xmi:id="_lPPssDbBEeW314N4GP8y1Q" annotatedElement="_h4_aoM1aEeSrt5YehnIlig">
-            <body>to be removed???</body>
-          </ownedComment>
-          <ownedComment xmi:type="uml:Comment" xmi:id="_oCnMMDbBEeW314N4GP8y1Q" annotatedElement="_2CGCcLztEd-yoLyJo0JlOg _or_HgLzuEd-yoLyJo0JlOg _FUGM4LzuEd-yoLyJo0JlOg _ZcEAsLzuEd-yoLyJo0JlOg">
-            <body>obsolete, see SimpleStochasticBehaviour</body>
-          </ownedComment>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_khfBQDUkEeC3rNpnAhYo0w" alias="Component">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-          </elementImport>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_9n598DXmEeCuQp9j3DmccQ" alias="Property">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-          </elementImport>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_v_f1IDa_EeW314N4GP8y1Q" alias="Class">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </elementImport>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_v_hDQDa_EeW314N4GP8y1Q" alias="Connector">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-          </elementImport>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_v_hqUDa_EeW314N4GP8y1Q" alias="InstanceSpecification">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-          </elementImport>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_2CGCcLztEd-yoLyJo0JlOg" name="StatefulHardware">
-            <generalization xmi:type="uml:Generalization" xmi:id="_nKyFoEAjEeCQKOeIf0epIQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_7R02sLztEd-yoLyJo0JlOg" name="probPermFault" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9ofMELztEd-yoLyJo0JlOg" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9oo9ELztEd-yoLyJo0JlOg" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_9oo9EbztEd-yoLyJo0JlOg">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_-ghAQLztEd-yoLyJo0JlOg" name="errorLatency" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ALXYgLzuEd-yoLyJo0JlOg" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ALgicLzuEd-yoLyJo0JlOg" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_ALqTcLzuEd-yoLyJo0JlOg">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_CIZF4LzuEd-yoLyJo0JlOg" name="repairDelay" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EHM78LzuEd-yoLyJo0JlOg" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EHM78bzuEd-yoLyJo0JlOg" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_EHWs8LzuEd-yoLyJo0JlOg">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_PUFWQEAjEeCQKOeIf0epIQ" name="faultOcc" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RFfCcEAjEeCQKOeIf0epIQ"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RFx9YEAjEeCQKOeIf0epIQ" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_RF7uYEAjEeCQKOeIf0epIQ">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_ZcEAsLzuEd-yoLyJo0JlOg" name="StatefulSoftware">
-            <generalization xmi:type="uml:Generalization" xmi:id="_oMpyUEAjEeCQKOeIf0epIQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_cZdl8LzuEd-yoLyJo0JlOg" name="errorLatency" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eMgQ4LzuEd-yoLyJo0JlOg" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eMqB4LzuEd-yoLyJo0JlOg" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_eMqB4bzuEd-yoLyJo0JlOg">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_ee1XALzuEd-yoLyJo0JlOg" name="repairDelay" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hTTCsLzuEd-yoLyJo0JlOg" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hTTCsbzuEd-yoLyJo0JlOg" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_hTczsLzuEd-yoLyJo0JlOg">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_beHDIEAjEeCQKOeIf0epIQ" name="faultOcc" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eEIDIEAjEeCQKOeIf0epIQ"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eEa-EEAjEeCQKOeIf0epIQ" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_eEkvEEAjEeCQKOeIf0epIQ">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_FUGM4LzuEd-yoLyJo0JlOg" name="StatelessHardware">
-            <ownedComment xmi:type="uml:Comment" xmi:id="_JxdwELzuEd-yoLyJo0JlOg">
-              <body>probPermFault</body>
-            </ownedComment>
-            <generalization xmi:type="uml:Generalization" xmi:id="_n2AM4EAjEeCQKOeIf0epIQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_PAKpkLzuEd-yoLyJo0JlOg" name="probPermFault" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R1hGELzuEd-yoLyJo0JlOg" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R1q3ELzuEd-yoLyJo0JlOg" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_R1q3EbzuEd-yoLyJo0JlOg">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_SQ72wLzuEd-yoLyJo0JlOg" name="repairDelay" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUmcELzuEd-yoLyJo0JlOg" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUmcEbzuEd-yoLyJo0JlOg" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_VUvmALzuEd-yoLyJo0JlOg">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_ZkEYUEAjEeCQKOeIf0epIQ" name="faultOcc" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_avK5gEAjEeCQKOeIf0epIQ"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_avUqgEAjEeCQKOeIf0epIQ" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_avd0cEAjEeCQKOeIf0epIQ">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_or_HgLzuEd-yoLyJo0JlOg" name="StatelessSoftware">
-            <generalization xmi:type="uml:Generalization" xmi:id="_nhIwIEAjEeCQKOeIf0epIQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_V6__4EAjEeCQKOeIf0epIQ" name="faultOcc" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XcAfoEAjEeCQKOeIf0epIQ"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XcUBoEAjEeCQKOeIf0epIQ" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_XcdLkEAjEeCQKOeIf0epIQ">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_h4_aoM1aEeSrt5YehnIlig" name="StochasticFailureBehaviour">
-            <generalization xmi:type="uml:Generalization" xmi:id="_R3mlMM1bEeSrt5YehnIlig" general="_y0zvEDQ2EeC0ueejuetpgA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_UUdpMM1bEeSrt5YehnIlig" name="failureDistribution">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_Xk8igM1bEeSrt5YehnIlig" name="repairDistribution">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_bCg1kM1bEeSrt5YehnIlig" name="modes">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_mz5oQDa_EeW314N4GP8y1Q" name="SimpleStochasticBehavior">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_xm0YQDa_EeW314N4GP8y1Q" name="base_Class" association="_xm1mYDa_EeW314N4GP8y1Q">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_x-n0QDa_EeW314N4GP8y1Q" name="base_Connector" association="_x-obUDa_EeW314N4GP8y1Q">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_ydrHwDa_EeW314N4GP8y1Q" name="base_InstanceSpecification" association="_ydru0Da_EeW314N4GP8y1Q">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_2C-agDa_EeW314N4GP8y1Q" name="failureOccurrence ">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_VAzkoDbAEeW314N4GP8y1Q" name="repairDelay">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yb9c4DbAEeW314N4GP8y1Q"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yb-rADbAEeW314N4GP8y1Q" value="1"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_Z1JdYDbAEeW314N4GP8y1Q" name="failureModesDistribution">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dH7cwDbAEeW314N4GP8y1Q"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dH8D0DbAEeW314N4GP8y1Q" value="1"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_-F6gwDbAEeW314N4GP8y1Q" name="base_Property" association="_-F7H0DbAEeW314N4GP8y1Q">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_xm1mYDa_EeW314N4GP8y1Q" name="E_SimpleStochasticBehavior_Class1" memberEnd="_xm1mYTa_EeW314N4GP8y1Q _xm0YQDa_EeW314N4GP8y1Q">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_xm1mYTa_EeW314N4GP8y1Q" name="extension_SimpleStochasticBehavior" type="_mz5oQDa_EeW314N4GP8y1Q" aggregation="composite" association="_xm1mYDa_EeW314N4GP8y1Q"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_x-obUDa_EeW314N4GP8y1Q" name="E_SimpleStochasticBehavior_Connector1" memberEnd="_x-obUTa_EeW314N4GP8y1Q _x-n0QDa_EeW314N4GP8y1Q">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_x-obUTa_EeW314N4GP8y1Q" name="extension_SimpleStochasticBehavior" type="_mz5oQDa_EeW314N4GP8y1Q" aggregation="composite" association="_x-obUDa_EeW314N4GP8y1Q"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_ydru0Da_EeW314N4GP8y1Q" name="E_SimpleStochasticBehavior_InstanceSpecification1" memberEnd="_ydru0Ta_EeW314N4GP8y1Q _ydrHwDa_EeW314N4GP8y1Q">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ydru0Ta_EeW314N4GP8y1Q" name="extension_SimpleStochasticBehavior" type="_mz5oQDa_EeW314N4GP8y1Q" aggregation="composite" association="_ydru0Da_EeW314N4GP8y1Q"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_-F7H0DbAEeW314N4GP8y1Q" name="E_SimpleStochasticBehavior_Property1" memberEnd="_-F7H0TbAEeW314N4GP8y1Q _-F6gwDbAEeW314N4GP8y1Q">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_-F7H0TbAEeW314N4GP8y1Q" name="extension_SimpleStochasticBehavior" type="_mz5oQDa_EeW314N4GP8y1Q" aggregation="composite" association="_-F7H0DbAEeW314N4GP8y1Q"/>
-          </packagedElement>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Profile" xmi:id="_mbqqgL86Ed-TL8tpOyViyA" name="FaultTolerance" URI="http://CHESS/Dependability/StateBased/FaultTolerance">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IhHVkMGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-            <contents xmi:type="ecore:EPackage" xmi:id="_RFhbkMe6Ed-7etIj5eTw0Q" name="FaultTolerance" nsURI="http://CHESS/Dependability/StateBased/FaultTolerance" nsPrefix="FaultTolerance">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WHPpAMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpAce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpAse6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpA8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpBMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpBce6Ed-7etIj5eTw0Q" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RFhbkce6Ed-7etIj5eTw0Q" name="FaultTolerant">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbkse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sRiccLzvEd-yoLyJo0JlOg"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbk8e6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RFhblce6Ed-7etIj5eTw0Q" name="scheme" ordered="false" lowerBound="1" eType="_RFhbmce6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbl8e6Ed-7etIj5eTw0Q" name="schemeAttrs" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//OpaqueExpression"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RFhbmce6Ed-7etIj5eTw0Q" name="CHESSML_DependabilitySecurity_StateBased_StateBasedDataTypes_RedundancyKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbmse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_2aiM4L84Ed-TL8tpOyViyA"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhbm8e6Ed-7etIj5eTw0Q" name="TMR"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhbnMe6Ed-7etIj5eTw0Q" name="Recovery" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RFhbnce6Ed-7etIj5eTw0Q" name="RedundancyManager">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbnse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_nFkOAL84Ed-TL8tpOyViyA"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbn8e6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RFhboce6Ed-7etIj5eTw0Q" name="scheme" ordered="false" lowerBound="1" eType="_RFhbmce6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RFhbo8e6Ed-7etIj5eTw0Q" name="Variant">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbpMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_c8jZ0L88Ed-TL8tpOyViyA"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbpce6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RFhbp8e6Ed-7etIj5eTw0Q" name="Adjudicator">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbqMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fETJcL88Ed-TL8tpOyViyA"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbqce6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WDqwkMe6Ed-7etIj5eTw0Q" name="coverage" ordered="false" lowerBound="1" eType="_WDqwkse6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RFhcCse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcC8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RFhcDMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcDce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcDse6Ed-7etIj5eTw0Q" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcD8e6Ed-7etIj5eTw0Q" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcEMe6Ed-7etIj5eTw0Q" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcEce6Ed-7etIj5eTw0Q" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RFhcEse6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcE8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcFMe6Ed-7etIj5eTw0Q" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcFce6Ed-7etIj5eTw0Q" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcFse6Ed-7etIj5eTw0Q" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcF8e6Ed-7etIj5eTw0Q" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcGMe6Ed-7etIj5eTw0Q" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcGce6Ed-7etIj5eTw0Q" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcGse6Ed-7etIj5eTw0Q" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcG8e6Ed-7etIj5eTw0Q" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcHMe6Ed-7etIj5eTw0Q" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RFhcHce6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcHse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcH8e6Ed-7etIj5eTw0Q" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcIMe6Ed-7etIj5eTw0Q" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RFhcIce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcIse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RFhcI8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcJMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RFhcJce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcJse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WDqwkse6Ed-7etIj5eTw0Q" name="NFP_Percentage" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WDqwk8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ZPC-IBFaEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-          </eAnnotations>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_xlcmEbzvEd-yoLyJo0JlOg" name="E_FaultTolerant_Component0" memberEnd="_xlcmErzvEd-yoLyJo0JlOg _xlcmELzvEd-yoLyJo0JlOg">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_xlcmErzvEd-yoLyJo0JlOg" name="extension_FaultTolerant" type="_sRiccLzvEd-yoLyJo0JlOg" aggregation="composite" association="_xlcmEbzvEd-yoLyJo0JlOg"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_uOmGMb84Ed-TL8tpOyViyA" name="E_RedundancyManager_Component0" memberEnd="_uOmGMr84Ed-TL8tpOyViyA _uOmGML84Ed-TL8tpOyViyA">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_uOmGMr84Ed-TL8tpOyViyA" name="extension_RedundancyManager" type="_nFkOAL84Ed-TL8tpOyViyA" aggregation="composite" association="_uOmGMb84Ed-TL8tpOyViyA"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_sRiccLzvEd-yoLyJo0JlOg" name="FaultTolerant">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_xlcmELzvEd-yoLyJo0JlOg" name="base_Component" association="_xlcmEbzvEd-yoLyJo0JlOg">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_HdIq4L88Ed-TL8tpOyViyA" name="scheme" visibility="public" type="_2aiM4L84Ed-TL8tpOyViyA">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_I7nbEL88Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_I7nbEb88Ed-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_I7wlAL88Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_LSRJYL88Ed-TL8tpOyViyA" name="schemeAttrs" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#OpaqueExpression"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MI85wL88Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MI85wb88Ed-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_MJGqwL88Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_nFkOAL84Ed-TL8tpOyViyA" name="RedundancyManager">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_uOmGML84Ed-TL8tpOyViyA" name="base_Component" association="_uOmGMb84Ed-TL8tpOyViyA">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_-e32wL84Ed-TL8tpOyViyA" name="scheme" visibility="public" type="_2aiM4L84Ed-TL8tpOyViyA">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Avt4AL85Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Avt4Ab85Ed-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Av3B8L85Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_c8jZ0L88Ed-TL8tpOyViyA" name="Variant">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_d0uX8L88Ed-TL8tpOyViyA" name="base_Component" association="_d0uX8b88Ed-TL8tpOyViyA">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_d0uX8b88Ed-TL8tpOyViyA" name="E_Variant_Component0" memberEnd="_d0uX8r88Ed-TL8tpOyViyA _d0uX8L88Ed-TL8tpOyViyA">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_d0uX8r88Ed-TL8tpOyViyA" name="extension_Variant" type="_c8jZ0L88Ed-TL8tpOyViyA" aggregation="composite" association="_d0uX8b88Ed-TL8tpOyViyA"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_fETJcL88Ed-TL8tpOyViyA" name="Adjudicator">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_gKofYL88Ed-TL8tpOyViyA" name="base_Component" association="_gKofYb88Ed-TL8tpOyViyA">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_hTXCAL88Ed-TL8tpOyViyA" name="coverage" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iyboEL88Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iyboEb88Ed-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_iyboEr88Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_gKofYb88Ed-TL8tpOyViyA" name="E_Adjudicator_Component0" memberEnd="_gKofYr88Ed-TL8tpOyViyA _gKofYL88Ed-TL8tpOyViyA">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gKofYr88Ed-TL8tpOyViyA" name="extension_Adjudicator" type="_fETJcL88Ed-TL8tpOyViyA" aggregation="composite" association="_gKofYb88Ed-TL8tpOyViyA"/>
-          </packagedElement>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Profile" xmi:id="_oUVxcL88Ed-TL8tpOyViyA" name="MaintenanceMonitoring" URI="http://CHESS/Dependability/StateBased/MaintenanceMonitoring" metaclassReference="_QRHlgLwSEeCKhZAgDxzHNA">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IqpsEMGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-            <contents xmi:type="ecore:EPackage" xmi:id="_RWgd4Me6Ed-7etIj5eTw0Q" name="MaintenanceMonitoring" nsURI="http://CHESS/Dependability/StateBased/MaintenanceMonitoring" nsPrefix="MaintenanceMonitoring">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wp97kMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97kce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97kse6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97k8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97lMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97lce6Ed-7etIj5eTw0Q" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgd4ce6Ed-7etIj5eTw0Q" name="MMActivities">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgd4se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_u9LtsL88Ed-TL8tpOyViyA"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd48e6Ed-7etIj5eTw0Q" name="base_Activity" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd5ce6Ed-7etIj5eTw0Q" name="when" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//TimeExpression"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd68e6Ed-7etIj5eTw0Q" name="onCompletion" ordered="false" upperBound="-1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd7ce6Ed-7etIj5eTw0Q" name="onSuccessfulCompletion" ordered="false" upperBound="-1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd78e6Ed-7etIj5eTw0Q" name="onFailedCompletion" ordered="false" upperBound="-1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WKE6kMe6Ed-7etIj5eTw0Q" name="duration" ordered="false" lowerBound="1" eType="_WKE6kse6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WMdgMMe6Ed-7etIj5eTw0Q" name="probSuccess" ordered="false" lowerBound="1" eType="_WMdgMse6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RWgeVse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgeV8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RWgeWMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgeWce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeWse6Ed-7etIj5eTw0Q" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeW8e6Ed-7etIj5eTw0Q" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeXMe6Ed-7etIj5eTw0Q" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeXce6Ed-7etIj5eTw0Q" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RWgeXse6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgeX8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeYMe6Ed-7etIj5eTw0Q" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeYce6Ed-7etIj5eTw0Q" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeYse6Ed-7etIj5eTw0Q" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeY8e6Ed-7etIj5eTw0Q" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeZMe6Ed-7etIj5eTw0Q" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeZce6Ed-7etIj5eTw0Q" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeZse6Ed-7etIj5eTw0Q" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeZ8e6Ed-7etIj5eTw0Q" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeaMe6Ed-7etIj5eTw0Q" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RWgeace6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgease6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgea8e6Ed-7etIj5eTw0Q" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgebMe6Ed-7etIj5eTw0Q" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RWgebce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgebse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RWgeb8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgecMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RWgecce6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgecse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgec8e6Ed-7etIj5eTw0Q" name="s"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgedMe6Ed-7etIj5eTw0Q" name="tick" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgedce6Ed-7etIj5eTw0Q" name="ms" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgedse6Ed-7etIj5eTw0Q" name="us" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWged8e6Ed-7etIj5eTw0Q" name="min" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeeMe6Ed-7etIj5eTw0Q" name="hrs" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeece6Ed-7etIj5eTw0Q" name="day" value="6"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RWgeese6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgee8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgefMe6Ed-7etIj5eTw0Q" name="Repair" eSuperTypes="_RWgd4ce6Ed-7etIj5eTw0Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgefce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8BFzcL89Ed-TL8tpOyViyA"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgefse6Ed-7etIj5eTw0Q" name="targets" ordered="false" lowerBound="1" upperBound="-1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgegce6Ed-7etIj5eTw0Q" name="Replace" eSuperTypes="_RWgd4ce6Ed-7etIj5eTw0Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgegse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_D8sYEL8-Ed-TL8tpOyViyA"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgeg8e6Ed-7etIj5eTw0Q" name="targets" ordered="false" lowerBound="1" upperBound="-1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgehce6Ed-7etIj5eTw0Q" name="replacement" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgeiMe6Ed-7etIj5eTw0Q" name="ErrorDetection" eSuperTypes="_RWgd4ce6Ed-7etIj5eTw0Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgeice6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_QC6jAL8-Ed-TL8tpOyViyA"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgeise6Ed-7etIj5eTw0Q" name="targets" ordered="false" lowerBound="1" upperBound="-1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgejMe6Ed-7etIj5eTw0Q" name="onDetection" ordered="false" lowerBound="1" upperBound="-1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgej8e6Ed-7etIj5eTw0Q" name="FailureDetection" eSuperTypes="_RWgd4ce6Ed-7etIj5eTw0Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgekMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_pJ2yQL8-Ed-TL8tpOyViyA"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgekce6Ed-7etIj5eTw0Q" name="onDetection" ordered="false" lowerBound="1" upperBound="-1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WKE6kse6Ed-7etIj5eTw0Q" name="NFP_Duration" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WKE6k8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WMdgMse6Ed-7etIj5eTw0Q" name="NFP_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WMdgM8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-          </eAnnotations>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_QRHlgLwSEeCKhZAgDxzHNA" alias="Action">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Action"/>
-          </elementImport>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_u9LtsL88Ed-TL8tpOyViyA" name="MMActivities">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_yTxPAL88Ed-TL8tpOyViyA" name="base_Activity" association="_yTxPAb88Ed-TL8tpOyViyA">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_z22yYL88Ed-TL8tpOyViyA" name="when" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1Ph1gL88Ed-TL8tpOyViyA"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1Pq_cL88Ed-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_1Pq_cb88Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_2jkQQL88Ed-TL8tpOyViyA" name="duration" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4E4SAL88Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4FBb8L88Ed-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_4FBb8b88Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_4zN-sL88Ed-TL8tpOyViyA" name="probSuccess" visibility="public">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6T7jgL88Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6T7jgb88Ed-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_6UFUgL88Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_7qgU4L88Ed-TL8tpOyViyA" name="onCompletion" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9tMlYL88Ed-TL8tpOyViyA"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9tMlYb88Ed-TL8tpOyViyA" value="*"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_9tWWYL88Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_uhASkL89Ed-TL8tpOyViyA" name="onSuccessfulCompletion" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v0nPgL89Ed-TL8tpOyViyA"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v0xAgL89Ed-TL8tpOyViyA" value="*"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_v0xAgb89Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_3o6SQL89Ed-TL8tpOyViyA" name="onFailedCompletion" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5SuIsL89Ed-TL8tpOyViyA"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5SuIsb89Ed-TL8tpOyViyA" value="*"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_5S35sL89Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_RAzWALwSEeCKhZAgDxzHNA" name="base_Action" association="_RAzWAbwSEeCKhZAgDxzHNA">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Action"/>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_yTxPAb88Ed-TL8tpOyViyA" name="E_MMActivities_Activity0" memberEnd="_yTxPAr88Ed-TL8tpOyViyA _yTxPAL88Ed-TL8tpOyViyA">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_yTxPAr88Ed-TL8tpOyViyA" name="extension_MMActivities" type="_u9LtsL88Ed-TL8tpOyViyA" aggregation="composite" association="_yTxPAb88Ed-TL8tpOyViyA"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_8BFzcL89Ed-TL8tpOyViyA" name="Repair">
-            <generalization xmi:type="uml:Generalization" xmi:id="_83yK4L89Ed-TL8tpOyViyA" general="_u9LtsL88Ed-TL8tpOyViyA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_-fqHoL89Ed-TL8tpOyViyA" name="targets" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__za1kL89Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__ztwgL89Ed-TL8tpOyViyA" value="*"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="__ztwgb89Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_D8sYEL8-Ed-TL8tpOyViyA" name="Replace">
-            <generalization xmi:type="uml:Generalization" xmi:id="_E4J6wL8-Ed-TL8tpOyViyA" general="_u9LtsL88Ed-TL8tpOyViyA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_GVmJIL8-Ed-TL8tpOyViyA" name="targets" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsfDkL8-Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HsfDkb8-Ed-TL8tpOyViyA" value="*"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hso0kL8-Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_MB_EML8-Ed-TL8tpOyViyA" name="replacement" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Na9CQL8-Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NbGzQL8-Ed-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_NbGzQb8-Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_QC6jAL8-Ed-TL8tpOyViyA" name="ErrorDetection">
-            <generalization xmi:type="uml:Generalization" xmi:id="_SCVdEL8-Ed-TL8tpOyViyA" general="_u9LtsL88Ed-TL8tpOyViyA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_gZr9IL8-Ed-TL8tpOyViyA" name="targets" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hmlOEL8-Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hmu_EL8-Ed-TL8tpOyViyA" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_hmu_Eb8-Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_jIO5oLwLEeCkE-pvjHe3zw" name="correctionProbability">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_pJ2yQL8-Ed-TL8tpOyViyA" name="FailureDetection">
-            <generalization xmi:type="uml:Generalization" xmi:id="_qpFJUL8-Ed-TL8tpOyViyA" general="_u9LtsL88Ed-TL8tpOyViyA"/>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_r7WCcL8-Ed-TL8tpOyViyA" name="onDetection" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t0y3YL8-Ed-TL8tpOyViyA" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t08oYL8-Ed-TL8tpOyViyA" value="*"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_t1FyUL8-Ed-TL8tpOyViyA">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_RAzWAbwSEeCKhZAgDxzHNA" name="E_MMActivities_Action0" memberEnd="_RAzWArwSEeCKhZAgDxzHNA _RAzWALwSEeCKhZAgDxzHNA">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_RAzWArwSEeCKhZAgDxzHNA" name="extension_MMActivities" type="_u9LtsL88Ed-TL8tpOyViyA" aggregation="composite" association="_RAzWAbwSEeCKhZAgDxzHNA"/>
-          </packagedElement>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Profile" xmi:id="_Wgxh0L8_Ed-TL8tpOyViyA" name="StateBasedAnalysis" URI="http://CHESS/Dependability/StateBased/StateBasedAnalysis" metaclassReference="_DHTZMDbQEeW5DJdhCjCHFw">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2RGMMGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-            <contents xmi:type="ecore:EPackage" xmi:id="_K8jbkFodEeCE4ZeNjhtnzg" name="StateBasedAnalysis" nsURI="http://CHESS/Dependability/StateBased/StateBasedAnalysis" nsPrefix="StateBasedAnalysis">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LBxSwFodEeCE4ZeNjhtnzg" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSwVodEeCE4ZeNjhtnzg" key="Version" value="0.1.10"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSwlodEeCE4ZeNjhtnzg" key="Comment" value="added &quot;targetFailureMode&quot; and &quot;targetDepComponent&quot; in StateBasedAnalysis.&#xD;&#xA;removed &quot;target&quot; from DependableMeasure"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSw1odEeCE4ZeNjhtnzg" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSxFodEeCE4ZeNjhtnzg" key="Date" value="2011-03-29"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSxVodEeCE4ZeNjhtnzg" key="Author" value="Stefano"/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_K8jbkVodEeCE4ZeNjhtnzg" name="StateBasedAnalysis">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jbklodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_aqUxIL8_Ed-TL8tpOyViyA"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//GQAM/GaAnalysisContext"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_K8jbmVodEeCE4ZeNjhtnzg" name="targetFailureMode" ordered="false" upperBound="-1" eType="_2F5Q8UQQEeCQRfAVtSc0sw"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_K8jbm1odEeCE4ZeNjhtnzg" name="targetDepComponent" ordered="false" upperBound="-1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_K8_gcFodEeCE4ZeNjhtnzg" name="measure" ordered="false" lowerBound="1" eType="_K8_gclodEeCE4ZeNjhtnzg"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_K944UFodEeCE4ZeNjhtnzg" name="type" ordered="false" lowerBound="1" eType="_K944UlodEeCE4ZeNjhtnzg"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_K-8BMFodEeCE4ZeNjhtnzg" name="evalMethod" ordered="false" lowerBound="1" eType="_K-8BMlodEeCE4ZeNjhtnzg"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K8jcClodEeCE4ZeNjhtnzg" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcC1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_K8jcDFodEeCE4ZeNjhtnzg" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcDVodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcDlodEeCE4ZeNjhtnzg" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcD1odEeCE4ZeNjhtnzg" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcEFodEeCE4ZeNjhtnzg" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcEVodEeCE4ZeNjhtnzg" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_K8jcElodEeCE4ZeNjhtnzg" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcE1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcFFodEeCE4ZeNjhtnzg" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcFVodEeCE4ZeNjhtnzg" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcFlodEeCE4ZeNjhtnzg" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcF1odEeCE4ZeNjhtnzg" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcGFodEeCE4ZeNjhtnzg" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcGVodEeCE4ZeNjhtnzg" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcGlodEeCE4ZeNjhtnzg" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcG1odEeCE4ZeNjhtnzg" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcHFodEeCE4ZeNjhtnzg" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_K8jcHVodEeCE4ZeNjhtnzg" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcHlodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcH1odEeCE4ZeNjhtnzg" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcIFodEeCE4ZeNjhtnzg" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K8jcIVodEeCE4ZeNjhtnzg" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcIlodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K8jcI1odEeCE4ZeNjhtnzg" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcJFodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_K8jcJVodEeCE4ZeNjhtnzg" name="CHESS_Dependability_StateBased_StateBasedDataTypes_ConfidenceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcJlodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_K_w1YL9CEd-TL8tpOyViyA"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcJ1odEeCE4ZeNjhtnzg" name="relative"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcKFodEeCE4ZeNjhtnzg" name="absolute" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K8_gclodEeCE4ZeNjhtnzg" name="DependabilityMeasure" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8_gc1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gg-JgL9BEd-TL8tpOyViyA"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K944UlodEeCE4ZeNjhtnzg" name="EvaluationType" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K944U1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_JEphoL9EEd-TL8tpOyViyA"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K-8BMlodEeCE4ZeNjhtnzg" name="EvaluationMethod" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K-8BM1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ypgcML9BEd-TL8tpOyViyA"/>
-              </eClassifiers>
-            </contents>
-            <contents xmi:type="ecore:EPackage" xmi:id="_8Owg4DW-EeCuQp9j3DmccQ" name="Analysis" nsURI="http://CHESS.Dependability.StateBased/schemas/Analysis/_8OUcADW-EeCuQp9j3DmccQ/9" nsPrefix="Analysis">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8R5UcDW-EeCuQp9j3DmccQ" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UcTW-EeCuQp9j3DmccQ" key="Version" value="0.1.9"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UcjW-EeCuQp9j3DmccQ" key="Comment" value="Changed DependabilityAnalsys stereotype name in StateBasedAnalysis"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UczW-EeCuQp9j3DmccQ" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UdDW-EeCuQp9j3DmccQ" key="Date" value="2011-02-11"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UdTW-EeCuQp9j3DmccQ" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8Owg4TW-EeCuQp9j3DmccQ" name="StateBasedAnalysis">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8Owg4jW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_aqUxIL8_Ed-TL8tpOyViyA"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//GQAM/GaAnalysisContext"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8PNM0DW-EeCuQp9j3DmccQ" name="measure" ordered="false" lowerBound="1" eType="_8PNM0jW-EeCuQp9j3DmccQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8Pp4wDW-EeCuQp9j3DmccQ" name="type" ordered="false" lowerBound="1" eType="_8Pp4wjW-EeCuQp9j3DmccQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8QQVsDW-EeCuQp9j3DmccQ" name="evalMethod" ordered="false" lowerBound="1" eType="_8QQVsjW-EeCuQp9j3DmccQ"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8OwhVzW-EeCuQp9j3DmccQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhWDW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8OwhWTW-EeCuQp9j3DmccQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhWjW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhWzW-EeCuQp9j3DmccQ" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhXDW-EeCuQp9j3DmccQ" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhXTW-EeCuQp9j3DmccQ" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhXjW-EeCuQp9j3DmccQ" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8OwhXzW-EeCuQp9j3DmccQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhYDW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhYTW-EeCuQp9j3DmccQ" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhYjW-EeCuQp9j3DmccQ" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhYzW-EeCuQp9j3DmccQ" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhZDW-EeCuQp9j3DmccQ" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhZTW-EeCuQp9j3DmccQ" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhZjW-EeCuQp9j3DmccQ" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhZzW-EeCuQp9j3DmccQ" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhaDW-EeCuQp9j3DmccQ" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhaTW-EeCuQp9j3DmccQ" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8OwhajW-EeCuQp9j3DmccQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhazW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhbDW-EeCuQp9j3DmccQ" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhbTW-EeCuQp9j3DmccQ" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8OwhbjW-EeCuQp9j3DmccQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhbzW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8OwhcDW-EeCuQp9j3DmccQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhcTW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8OwhcjW-EeCuQp9j3DmccQ" name="CHESS_Dependability_StateBased_StateBasedDataTypes_ConfidenceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhczW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_K_w1YL9CEd-TL8tpOyViyA"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhdDW-EeCuQp9j3DmccQ" name="relative"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhdTW-EeCuQp9j3DmccQ" name="absolute" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8PNM0jW-EeCuQp9j3DmccQ" name="DependabilityMeasure" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8PNM0zW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gg-JgL9BEd-TL8tpOyViyA"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8Pp4wjW-EeCuQp9j3DmccQ" name="EvaluationType" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8Pp4wzW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_JEphoL9EEd-TL8tpOyViyA"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8QQVsjW-EeCuQp9j3DmccQ" name="EvaluationMethod" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8QQVszW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ypgcML9BEd-TL8tpOyViyA"/>
-              </eClassifiers>
-            </contents>
-            <contents xmi:type="ecore:EPackage" xmi:id="_RzHhYMe6Ed-7etIj5eTw0Q" name="Analysis" nsURI="http://CHESS.DependabilitySecurity.StateBased/schemas/Analysis/_RW9J0Me6Ed-7etIj5eTw0Q/8" nsPrefix="Analysis">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W27ZgMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27Zgce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27Zgse6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27Zg8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27ZhMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27Zhce6Ed-7etIj5eTw0Q" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RzHhYce6Ed-7etIj5eTw0Q" name="DependabilityAnalysis">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHhYse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_aqUxIL8_Ed-TL8tpOyViyA"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_329vLZi4Ed-m0Oaexd_lJA"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WrT_YMe6Ed-7etIj5eTw0Q" name="measure" ordered="false" lowerBound="1" eType="_WrT_Yse6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WtslAMe6Ed-7etIj5eTw0Q" name="type" ordered="false" lowerBound="1" eType="_WtslAse6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WwFKoMe6Ed-7etIj5eTw0Q" name="evalMethod" ordered="false" lowerBound="1" eType="_WwFKose6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHh3Me6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh3ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHh3se6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh38e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh4Me6Ed-7etIj5eTw0Q" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh4ce6Ed-7etIj5eTw0Q" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh4se6Ed-7etIj5eTw0Q" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh48e6Ed-7etIj5eTw0Q" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHh5Me6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh5ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh5se6Ed-7etIj5eTw0Q" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh58e6Ed-7etIj5eTw0Q" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh6Me6Ed-7etIj5eTw0Q" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh6ce6Ed-7etIj5eTw0Q" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh6se6Ed-7etIj5eTw0Q" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh68e6Ed-7etIj5eTw0Q" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh7Me6Ed-7etIj5eTw0Q" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh7ce6Ed-7etIj5eTw0Q" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh7se6Ed-7etIj5eTw0Q" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHh78e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh8Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh8ce6Ed-7etIj5eTw0Q" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh8se6Ed-7etIj5eTw0Q" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHh88e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh9Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHh9ce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh9se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHh98e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh-Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHiP8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiQMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiQce6Ed-7etIj5eTw0Q" name="s"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiQse6Ed-7etIj5eTw0Q" name="tick" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiQ8e6Ed-7etIj5eTw0Q" name="ms" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiRMe6Ed-7etIj5eTw0Q" name="us" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiRce6Ed-7etIj5eTw0Q" name="min" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiRse6Ed-7etIj5eTw0Q" name="hrs" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiR8e6Ed-7etIj5eTw0Q" name="day" value="6"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHiT8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiUMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiUce6Ed-7etIj5eTw0Q" name="bit"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiUse6Ed-7etIj5eTw0Q" name="Byte" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiU8e6Ed-7etIj5eTw0Q" name="KB" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiVMe6Ed-7etIj5eTw0Q" name="MB" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiVce6Ed-7etIj5eTw0Q" name="GB" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHiXce6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_PowerUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiXse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ijhHUA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiX8e6Ed-7etIj5eTw0Q" name="W"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiYMe6Ed-7etIj5eTw0Q" name="mW" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiYce6Ed-7etIj5eTw0Q" name="KW" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHiace6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_EnergyUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiase6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UaKKgA4zEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHia8e6Ed-7etIj5eTw0Q" name="J"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHibMe6Ed-7etIj5eTw0Q" name="KJ" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHibce6Ed-7etIj5eTw0Q" name="Wh" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHibse6Ed-7etIj5eTw0Q" name="KWh" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHib8e6Ed-7etIj5eTw0Q" name="mWh" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHih8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiiMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRSY8e6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeStandardKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRSZMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_MDyyoA-KEdyNj8xzjk-DoA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSZce6Ed-7etIj5eTw0Q" name="TAI"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSZse6Ed-7etIj5eTw0Q" name="UT0" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSZ8e6Ed-7etIj5eTw0Q" name="UT1" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSaMe6Ed-7etIj5eTw0Q" name="UTC" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSace6Ed-7etIj5eTw0Q" name="Local" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSase6Ed-7etIj5eTw0Q" name="TT" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSa8e6Ed-7etIj5eTw0Q" name="TBD" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSbMe6Ed-7etIj5eTw0Q" name="TCG" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSbce6Ed-7etIj5eTw0Q" name="TCB" value="8"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSbse6Ed-7etIj5eTw0Q" name="Sidereal" value="9"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSb8e6Ed-7etIj5eTw0Q" name="GPS" value="10"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRShse6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeNatureKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRSh8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_WAvb0A75EdyML4mHwjNDrw"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSiMe6Ed-7etIj5eTw0Q" name="discrete"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSice6Ed-7etIj5eTw0Q" name="dense" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRS8se6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRS88e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS9Me6Ed-7etIj5eTw0Q" name="Hz"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS9ce6Ed-7etIj5eTw0Q" name="KHz" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS9se6Ed-7etIj5eTw0Q" name="MHz" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS98e6Ed-7etIj5eTw0Q" name="GHz" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS-Me6Ed-7etIj5eTw0Q" name="rpm" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRTWMe6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_PeriodicServerKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRTWce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UP5HEBFbEdyUJeMeN__D-A"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTWse6Ed-7etIj5eTw0Q" name="Sporadic"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTW8e6Ed-7etIj5eTw0Q" name="Deferrable" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTXMe6Ed-7etIj5eTw0Q" name="Undef" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTXce6Ed-7etIj5eTw0Q" name="Other" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRTcce6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_SchedPolicyKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRTcse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_4GfMYBFaEdyUJeMeN__D-A"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTc8e6Ed-7etIj5eTw0Q" name="EarliestDeadlineFirst"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTdMe6Ed-7etIj5eTw0Q" name="FIFO" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTdce6Ed-7etIj5eTw0Q" name="FixedPriority" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTdse6Ed-7etIj5eTw0Q" name="LeastLaxityFirst" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTd8e6Ed-7etIj5eTw0Q" name="RoundRobin" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTeMe6Ed-7etIj5eTw0Q" name="TimeTableDriven" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTece6Ed-7etIj5eTw0Q" name="Undef" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTese6Ed-7etIj5eTw0Q" name="Other" value="7"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRTkMe6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_ProtectProtocolKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRTkce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HkE7wBFbEdyUJeMeN__D-A"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTkse6Ed-7etIj5eTw0Q" name="FIFO"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTk8e6Ed-7etIj5eTw0Q" name="NoPreemption" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTlMe6Ed-7etIj5eTw0Q" name="PriorityCeiling" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTlce6Ed-7etIj5eTw0Q" name="PriorityInheritance" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTlse6Ed-7etIj5eTw0Q" name="StackBased" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTl8e6Ed-7etIj5eTw0Q" name="Undef" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTmMe6Ed-7etIj5eTw0Q" name="Other" value="6"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRTzMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_NFPs_ConstraintKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRTzce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ZCtm0A4vEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTzse6Ed-7etIj5eTw0Q" name="required"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTz8e6Ed-7etIj5eTw0Q" name="offered" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRT0Me6Ed-7etIj5eTw0Q" name="contract" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRT0ce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_AnalysisModel_GQAM_LaxityKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRT0se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Gs3fEBKcEdymP89M8JXkzA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRT08e6Ed-7etIj5eTw0Q" name="hard"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRT1Me6Ed-7etIj5eTw0Q" name="soft" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRT1ce6Ed-7etIj5eTw0Q" name="other" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRUD8e6Ed-7etIj5eTw0Q" name="CHESSML_DependabilitySecurity_StateBased_StateBasedDataTypes_ConfidenceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRUEMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_K_w1YL9CEd-TL8tpOyViyA"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRUEce6Ed-7etIj5eTw0Q" name="relative"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRUEse6Ed-7etIj5eTw0Q" name="absolute" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WrT_Yse6Ed-7etIj5eTw0Q" name="DependabilityMeasure" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WrT_Y8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gg-JgL9BEd-TL8tpOyViyA"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WtslAse6Ed-7etIj5eTw0Q" name="EvaluationType" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WtslA8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_JEphoL9EEd-TL8tpOyViyA"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WwFKose6Ed-7etIj5eTw0Q" name="EvaluationMethod" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WwFKo8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ypgcML9BEd-TL8tpOyViyA"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WyKOQMe6Ed-7etIj5eTw0Q" name="NFP_String" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WyKOQce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-          </eAnnotations>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_DHTZMDbQEeW5DJdhCjCHFw" alias="Class">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </elementImport>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_aqUxIL8_Ed-TL8tpOyViyA" name="StateBasedAnalysis">
-            <generalization xmi:type="uml:Generalization" xmi:id="_KG_20L9BEd-TL8tpOyViyA">
-              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>
-            </generalization>
-            <generalization xmi:type="uml:Generalization" xmi:id="_do2VYDQ7EeC0ueejuetpgA">
-              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>
-            </generalization>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_JFdvAMAKEd-Dn5_MBIs5Vw" name="measure" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LDs9UMAKEd-Dn5_MBIs5Vw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LD2HQMAKEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_LD2HQcAKEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_MY8R8MAKEd-Dn5_MBIs5Vw" name="measureEvaluationResult" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NxeLIMAKEd-Dn5_MBIs5Vw"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Nxn8IMAKEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_NxxGEMAKEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_PHKywMAKEd-Dn5_MBIs5Vw" name="evalMethod" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RGJA4MAKEd-Dn5_MBIs5Vw"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RGJA4cAKEd-Dn5_MBIs5Vw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_RGSx4MAKEd-Dn5_MBIs5Vw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_goeK4FocEeCE4ZeNjhtnzg" name="targetFailureMode" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lK6bUFocEeCE4ZeNjhtnzg"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lLNWQFocEeCE4ZeNjhtnzg" value="*"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_lLWgMFocEeCE4ZeNjhtnzg">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_psJx4FocEeCE4ZeNjhtnzg" name="targetDepComponent" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s4cuwFocEeCE4ZeNjhtnzg"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s4vpsFocEeCE4ZeNjhtnzg" value="*"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_s45asFocEeCE4ZeNjhtnzg">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_wQ_agDbPEeW5DJdhCjCHFw" name="targetPort" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wQ_agTbPEeW5DJdhCjCHFw"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wQ_agjbPEeW5DJdhCjCHFw" value="*"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_wQ_agzbPEeW5DJdhCjCHFw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_mFmvIDbQEeW5DJdhCjCHFw" name="initialConditions" type="_-zurMDbPEeW5DJdhCjCHFw" association="_mFokUDbQEeW5DJdhCjCHFw">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mFmvITbQEeW5DJdhCjCHFw"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mFmvIjbQEeW5DJdhCjCHFw" value="*"/>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_-zurMDbPEeW5DJdhCjCHFw" name="SBAInitialConditions">
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_DxHyQDbQEeW5DJdhCjCHFw" name="base_Class" association="_DxJAYDbQEeW5DJdhCjCHFw">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_Q9-1IDbQEeW5DJdhCjCHFw" name="targetInstance" visibility="public">
-              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Q9-1ITbQEeW5DJdhCjCHFw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Q9-1IjbQEeW5DJdhCjCHFw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Q9-1IzbQEeW5DJdhCjCHFw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_UDU1cDbQEeW5DJdhCjCHFw" name="setup" visibility="public">
-              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UDU1cTbQEeW5DJdhCjCHFw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UDU1cjbQEeW5DJdhCjCHFw" value="1"/>
-              <defaultValue xmi:type="uml:LiteralString" xmi:id="_UDU1czbQEeW5DJdhCjCHFw">
-                <value xsi:nil="true"/>
-              </defaultValue>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Extension" xmi:id="_DxJAYDbQEeW5DJdhCjCHFw" name="E_SBAInitialConditions_Class1" memberEnd="_DxJAYTbQEeW5DJdhCjCHFw _DxHyQDbQEeW5DJdhCjCHFw">
-            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DxJAYTbQEeW5DJdhCjCHFw" name="extension_SBAInitialConditions" type="_-zurMDbPEeW5DJdhCjCHFw" aggregation="composite" association="_DxJAYDbQEeW5DJdhCjCHFw"/>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Association" xmi:id="_mFokUDbQEeW5DJdhCjCHFw" name="stateBasedAnalysis_sBAInitialConditions_1" memberEnd="_mFokUTbQEeW5DJdhCjCHFw _mFmvIDbQEeW5DJdhCjCHFw">
-            <ownedEnd xmi:type="uml:Property" xmi:id="_mFokUTbQEeW5DJdhCjCHFw" name="stateBasedAnalysis" type="_aqUxIL8_Ed-TL8tpOyViyA" association="_mFokUDbQEeW5DJdhCjCHFw">
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mFokUjbQEeW5DJdhCjCHFw" value="1"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mFokUzbQEeW5DJdhCjCHFw" value="1"/>
-            </ownedEnd>
-          </packagedElement>
-        </packagedElement>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Profile" xmi:id="_uNKOgDQ2EeC0ueejuetpgA" name="DependableComponent" URI="http://CHESS/Dependability/DependableComponent" metaclassReference="_1TXcMDQ2EeC0ueejuetpgA _vslkcDQ3EeC0ueejuetpgA _qUQRADQ7EeC0ueejuetpgA _lh57ADgaEeCE2sZUGxu35w _t9O3gEDsEeC5SOtkEXPa-w _Bxaf0E7nEeCiWfCHUearZQ _TBHGwM1iEeSrt5YehnIlig _-DpY4M1iEeSrt5YehnIlig _apYFYM1yEeSrt5YehnIlig _GZBTgDHsEeWt8Ovv2G_EJg">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchsDRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <contents xmi:type="ecore:EPackage" xmi:id="_291WAVquEeCgwNmo13tekQ" name="DependableComponent" nsURI="http://CHESS/Dependability/DependableComponent" nsPrefix="DependableComponent">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3BtJYFquEeCgwNmo13tekQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJYVquEeCgwNmo13tekQ" key="Version" value="0.0.9"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJYlquEeCgwNmo13tekQ" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJY1quEeCgwNmo13tekQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJZFquEeCgwNmo13tekQ" key="Date" value="2011-03-30"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJZVquEeCgwNmo13tekQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_291WAlquEeCgwNmo13tekQ" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WA1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WCFquEeCgwNmo13tekQ" name="base_Abstraction" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WClquEeCgwNmo13tekQ" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WDFquEeCgwNmo13tekQ" name="base_Connector" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WDlquEeCgwNmo13tekQ" name="base_InstanceSpecification" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_291WEFquEeCgwNmo13tekQ" name="tf" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WElquEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_29-f8FquEeCgwNmo13tekQ" name="prob" ordered="false" lowerBound="1" eType="_29-f8lquEeCgwNmo13tekQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2-bL4FquEeCgwNmo13tekQ" name="propDelay" ordered="false" lowerBound="1" eType="_2-bL4lquEeCgwNmo13tekQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_291WZ1quEeCgwNmo13tekQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WaFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_291WaVquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WalquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wa1quEeCgwNmo13tekQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WbFquEeCgwNmo13tekQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WbVquEeCgwNmo13tekQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WblquEeCgwNmo13tekQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_291Wb1quEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WcFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WcVquEeCgwNmo13tekQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WclquEeCgwNmo13tekQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wc1quEeCgwNmo13tekQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WdFquEeCgwNmo13tekQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WdVquEeCgwNmo13tekQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WdlquEeCgwNmo13tekQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wd1quEeCgwNmo13tekQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WeFquEeCgwNmo13tekQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WeVquEeCgwNmo13tekQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_291WelquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291We1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WfFquEeCgwNmo13tekQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WfVquEeCgwNmo13tekQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_291WflquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291Wf1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_291WgFquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WgVquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_291Wj1quEeCgwNmo13tekQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WkFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WkVquEeCgwNmo13tekQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WklquEeCgwNmo13tekQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wk1quEeCgwNmo13tekQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WlFquEeCgwNmo13tekQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WlVquEeCgwNmo13tekQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WllquEeCgwNmo13tekQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wl1quEeCgwNmo13tekQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_291WmFquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WmVquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_291WmlquEeCgwNmo13tekQ" name="DependableComponent">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291Wm1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WnFquEeCgwNmo13tekQ" name="base_Component" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WnlquEeCgwNmo13tekQ" name="errorModel" ordered="false" eType="_G6-koVquEeCgwNmo13tekQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WoFquEeCgwNmo13tekQ" name="base_Property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_29-f8lquEeCgwNmo13tekQ" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_29-f81quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2-bL4lquEeCgwNmo13tekQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2-bL41quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_LgJ2AE7nEeCiWfCHUearZQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_Lf27EE7nEeCiWfCHUearZQ/6" nsPrefix="DependableComponent">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Lj4fcE7nEeCiWfCHUearZQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fcU7nEeCiWfCHUearZQ" key="Version" value="0.0.7"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fck7nEeCiWfCHUearZQ" key="Comment" value="added extension from DependableComponent::Propagation to InstanceSpecification"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fc07nEeCiWfCHUearZQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fdE7nEeCiWfCHUearZQ" key="Date" value="2011-03-15"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fdU7nEeCiWfCHUearZQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_LgJ2AU7nEeCiWfCHUearZQ" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2Ak7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2B07nEeCiWfCHUearZQ" name="base_Abstraction" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2CU7nEeCiWfCHUearZQ" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2C07nEeCiWfCHUearZQ" name="base_Connector" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2DU7nEeCiWfCHUearZQ" name="base_InstanceSpecification" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_LgTnAE7nEeCiWfCHUearZQ" name="prob" ordered="false" lowerBound="1" eType="_LgTnAk7nEeCiWfCHUearZQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Lg5c4E7nEeCiWfCHUearZQ" name="propDelay" ordered="false" lowerBound="1" eType="_Lg5c4k7nEeCiWfCHUearZQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgJ2Yk7nEeCiWfCHUearZQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2Y07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_LgJ2ZE7nEeCiWfCHUearZQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2ZU7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2Zk7nEeCiWfCHUearZQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2Z07nEeCiWfCHUearZQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2aE7nEeCiWfCHUearZQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2aU7nEeCiWfCHUearZQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_LgJ2ak7nEeCiWfCHUearZQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2a07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2bE7nEeCiWfCHUearZQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2bU7nEeCiWfCHUearZQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2bk7nEeCiWfCHUearZQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2b07nEeCiWfCHUearZQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2cE7nEeCiWfCHUearZQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2cU7nEeCiWfCHUearZQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2ck7nEeCiWfCHUearZQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2c07nEeCiWfCHUearZQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2dE7nEeCiWfCHUearZQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_LgJ2dU7nEeCiWfCHUearZQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2dk7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2d07nEeCiWfCHUearZQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2eE7nEeCiWfCHUearZQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgJ2eU7nEeCiWfCHUearZQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2ek7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgJ2e07nEeCiWfCHUearZQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2fE7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_LgJ2ik7nEeCiWfCHUearZQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2i07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2jE7nEeCiWfCHUearZQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2jU7nEeCiWfCHUearZQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2jk7nEeCiWfCHUearZQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2j07nEeCiWfCHUearZQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2kE7nEeCiWfCHUearZQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2kU7nEeCiWfCHUearZQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2kk7nEeCiWfCHUearZQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgJ2k07nEeCiWfCHUearZQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2lE7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_LgJ2lU7nEeCiWfCHUearZQ" name="DependableComponent">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2lk7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2l07nEeCiWfCHUearZQ" name="base_Component" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2mU7nEeCiWfCHUearZQ" name="errorModel" ordered="false" eType="_2F5QYUQQEeCQRfAVtSc0sw"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2m07nEeCiWfCHUearZQ" name="base_Property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgTnAk7nEeCiWfCHUearZQ" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgTnA07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Lg5c4k7nEeCiWfCHUearZQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Lg5c407nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_i4UhwUMfEeCCw-qiU6Z1sQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_i4UhwEMfEeCCw-qiU6Z1sQ/5" nsPrefix="DependableComponent">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i7TkUEMfEeCCw-qiU6Z1sQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkUUMfEeCCw-qiU6Z1sQ" key="Version" value="0.0.6"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkUkMfEeCCw-qiU6Z1sQ" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkU0MfEeCCw-qiU6Z1sQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkVEMfEeCCw-qiU6Z1sQ" key="Date" value="2011-02-28"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkVUMfEeCCw-qiU6Z1sQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_i4UhwkMfEeCCw-qiU6Z1sQ" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4Uhw0MfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4UhyEMfEeCCw-qiU6Z1sQ" name="base_Abstraction" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4UhykMfEeCCw-qiU6Z1sQ" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4UhzEMfEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i4eS6kMfEeCCw-qiU6Z1sQ" name="prob" ordered="false" lowerBound="1" eType="_i4eS7EMfEeCCw-qiU6Z1sQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i5EIoEMfEeCCw-qiU6Z1sQ" name="propDelay" ordered="false" lowerBound="1" eType="_i5EIokMfEeCCw-qiU6Z1sQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4UiIUMfEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4UiIkMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_i4UiI0MfEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4UiJEMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiJUMfEeCCw-qiU6Z1sQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiJkMfEeCCw-qiU6Z1sQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiJ0MfEeCCw-qiU6Z1sQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiKEMfEeCCw-qiU6Z1sQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_i4UiKUMfEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4UiKkMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiK0MfEeCCw-qiU6Z1sQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiLEMfEeCCw-qiU6Z1sQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiLUMfEeCCw-qiU6Z1sQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiLkMfEeCCw-qiU6Z1sQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiL0MfEeCCw-qiU6Z1sQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiMEMfEeCCw-qiU6Z1sQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiMUMfEeCCw-qiU6Z1sQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiMkMfEeCCw-qiU6Z1sQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiM0MfEeCCw-qiU6Z1sQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_i4UiNEMfEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4UiNUMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eSwEMfEeCCw-qiU6Z1sQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eSwUMfEeCCw-qiU6Z1sQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4eSwkMfEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eSw0MfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4eSxEMfEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eSxUMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_i4eS00MfEeCCw-qiU6Z1sQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eS1EMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS1UMfEeCCw-qiU6Z1sQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS1kMfEeCCw-qiU6Z1sQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS10MfEeCCw-qiU6Z1sQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS2EMfEeCCw-qiU6Z1sQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS2UMfEeCCw-qiU6Z1sQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS2kMfEeCCw-qiU6Z1sQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS20MfEeCCw-qiU6Z1sQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4eS3EMfEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eS3UMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_i4eS3kMfEeCCw-qiU6Z1sQ" name="DependableComponent">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eS30MfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4eS4EMfEeCCw-qiU6Z1sQ" name="base_Component" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4eS4kMfEeCCw-qiU6Z1sQ" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4eS5EMfEeCCw-qiU6Z1sQ" name="base_Property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4eS7EMfEeCCw-qiU6Z1sQ" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eS7UMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i5EIokMfEeCCw-qiU6Z1sQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i5EIo0MfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_CUjG0UMaEeCCw-qiU6Z1sQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_CUjG0EMaEeCCw-qiU6Z1sQ/4" nsPrefix="DependableComponent">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CXYYYEMaEeCCw-qiU6Z1sQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYYUMaEeCCw-qiU6Z1sQ" key="Version" value="0.0.5"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYYkMaEeCCw-qiU6Z1sQ" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYY0MaEeCCw-qiU6Z1sQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYZEMaEeCCw-qiU6Z1sQ" key="Date" value="2011-02-28"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYZUMaEeCCw-qiU6Z1sQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CUjG0kMaEeCCw-qiU6Z1sQ" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUjG00MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUjG1EMaEeCCw-qiU6Z1sQ" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_CUjG1UMaEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUjG1kMaEeCCw-qiU6Z1sQ" source="redefines" references="_CUjG3EMaEeCCw-qiU6Z1sQ"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-                </contents>
-              </eAnnotations>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUjG3EMaEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs30EMaEeCCw-qiU6Z1sQ" name="base_Abstraction" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs30kMaEeCCw-qiU6Z1sQ" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CUs4ZkMaEeCCw-qiU6Z1sQ" name="prob" ordered="false" lowerBound="1" eType="_CUs4aEMaEeCCw-qiU6Z1sQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CVI8sEMaEeCCw-qiU6Z1sQ" name="propDelay" ordered="false" lowerBound="1" eType="_CVI8skMaEeCCw-qiU6Z1sQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4J0MaEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4KEMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CUs4KUMaEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4KkMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4K0MaEeCCw-qiU6Z1sQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4LEMaEeCCw-qiU6Z1sQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4LUMaEeCCw-qiU6Z1sQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4LkMaEeCCw-qiU6Z1sQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CUs4L0MaEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4MEMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4MUMaEeCCw-qiU6Z1sQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4MkMaEeCCw-qiU6Z1sQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4M0MaEeCCw-qiU6Z1sQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4NEMaEeCCw-qiU6Z1sQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4NUMaEeCCw-qiU6Z1sQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4NkMaEeCCw-qiU6Z1sQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4N0MaEeCCw-qiU6Z1sQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4OEMaEeCCw-qiU6Z1sQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4OUMaEeCCw-qiU6Z1sQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CUs4OkMaEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4O0MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4PEMaEeCCw-qiU6Z1sQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4PUMaEeCCw-qiU6Z1sQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4PkMaEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4P0MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4QEMaEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4QUMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CUs4T0MaEeCCw-qiU6Z1sQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4UEMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4UUMaEeCCw-qiU6Z1sQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4UkMaEeCCw-qiU6Z1sQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4U0MaEeCCw-qiU6Z1sQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4VEMaEeCCw-qiU6Z1sQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4VUMaEeCCw-qiU6Z1sQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4VkMaEeCCw-qiU6Z1sQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4V0MaEeCCw-qiU6Z1sQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4WEMaEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4WUMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CUs4WkMaEeCCw-qiU6Z1sQ" name="DependableComponent">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4W0MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs4XEMaEeCCw-qiU6Z1sQ" name="base_Component" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs4XkMaEeCCw-qiU6Z1sQ" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs4YEMaEeCCw-qiU6Z1sQ" name="base_Property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4aEMaEeCCw-qiU6Z1sQ" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4aUMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CVI8skMaEeCCw-qiU6Z1sQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CVI8s0MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_JikCIEMZEeCCw-qiU6Z1sQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_JiQgIEMZEeCCw-qiU6Z1sQ/3" nsPrefix="DependableComponent">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JlidoEMZEeCCw-qiU6Z1sQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JlidoUMZEeCCw-qiU6Z1sQ" key="Version" value="0.0.4"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JlidokMZEeCCw-qiU6Z1sQ" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jlido0MZEeCCw-qiU6Z1sQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JlidpEMZEeCCw-qiU6Z1sQ" key="Date" value="2011-02-28"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JlidpUMZEeCCw-qiU6Z1sQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_JikCIUMZEeCCw-qiU6Z1sQ" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCIkMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCI0MZEeCCw-qiU6Z1sQ" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_JikCJEMZEeCCw-qiU6Z1sQ" name="base_Abstraction" ordered="false" unique="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCJUMZEeCCw-qiU6Z1sQ" source="redefines">
-                    <references xmi:type="ecore:EReference" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate/base_Abstraction"/>
-                  </eAnnotations>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
-                </contents>
-                <contents xmi:type="ecore:EReference" xmi:id="_JikCJ0MZEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCKEMZEeCCw-qiU6Z1sQ" source="redefines" references="_JikCLkMZEeCCw-qiU6Z1sQ"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-                </contents>
-              </eAnnotations>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCLkMZEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCMEMZEeCCw-qiU6Z1sQ" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Ji29EUMZEeCCw-qiU6Z1sQ" name="prob" ordered="false" lowerBound="1" eType="_Ji29E0MZEeCCw-qiU6Z1sQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JjTpAEMZEeCCw-qiU6Z1sQ" name="propDelay" ordered="false" lowerBound="1" eType="_JjTpAkMZEeCCw-qiU6Z1sQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JikChkMZEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCh0MZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JikCiEMZEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCiUMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCikMZEeCCw-qiU6Z1sQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCi0MZEeCCw-qiU6Z1sQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCjEMZEeCCw-qiU6Z1sQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCjUMZEeCCw-qiU6Z1sQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JikCjkMZEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCj0MZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCkEMZEeCCw-qiU6Z1sQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCkUMZEeCCw-qiU6Z1sQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCkkMZEeCCw-qiU6Z1sQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCk0MZEeCCw-qiU6Z1sQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikClEMZEeCCw-qiU6Z1sQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikClUMZEeCCw-qiU6Z1sQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikClkMZEeCCw-qiU6Z1sQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCl0MZEeCCw-qiU6Z1sQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCmEMZEeCCw-qiU6Z1sQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JikCmUMZEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCmkMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCm0MZEeCCw-qiU6Z1sQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCnEMZEeCCw-qiU6Z1sQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JikCnUMZEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCnkMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JikCn0MZEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCoEMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JikCrkMZEeCCw-qiU6Z1sQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCr0MZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCsEMZEeCCw-qiU6Z1sQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCsUMZEeCCw-qiU6Z1sQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCskMZEeCCw-qiU6Z1sQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCs0MZEeCCw-qiU6Z1sQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCtEMZEeCCw-qiU6Z1sQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCtUMZEeCCw-qiU6Z1sQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCtkMZEeCCw-qiU6Z1sQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JikCt0MZEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCuEMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_JikCuUMZEeCCw-qiU6Z1sQ" name="DependableComponent">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCukMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCu0MZEeCCw-qiU6Z1sQ" name="base_Component" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCvUMZEeCCw-qiU6Z1sQ" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCv0MZEeCCw-qiU6Z1sQ" name="base_Property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Ji29E0MZEeCCw-qiU6Z1sQ" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ji29FEMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JjTpAkMZEeCCw-qiU6Z1sQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JjTpA0MZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_yiDGgEDsEeC5SOtkEXPa-w" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_yh58kEDsEeC5SOtkEXPa-w/2" nsPrefix="DependableComponent">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yk4YEEDsEeC5SOtkEXPa-w" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YEUDsEeC5SOtkEXPa-w" key="Version" value="0.0.3"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YEkDsEeC5SOtkEXPa-w" key="Comment" value="added extension from Propagation to Comment"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YE0DsEeC5SOtkEXPa-w" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YFEDsEeC5SOtkEXPa-w" key="Date" value="2011-02-25"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YFUDsEeC5SOtkEXPa-w" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_yiDGgUDsEeC5SOtkEXPa-w" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDGgkDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDGg0DsEeC5SOtkEXPa-w" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_yiDGhEDsEeC5SOtkEXPa-w" name="base_Abstraction" ordered="false" unique="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDGhUDsEeC5SOtkEXPa-w" source="redefines">
-                    <references xmi:type="ecore:EReference" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate/base_Abstraction"/>
-                  </eAnnotations>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
-                </contents>
-                <contents xmi:type="ecore:EReference" xmi:id="_yiDGh0DsEeC5SOtkEXPa-w" name="base_Connector" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDGiEDsEeC5SOtkEXPa-w" source="redefines" references="_yiDGjkDsEeC5SOtkEXPa-w"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-                </contents>
-              </eAnnotations>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDGjkDsEeC5SOtkEXPa-w" name="base_Connector" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDGkEDsEeC5SOtkEXPa-w" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_yiWogEDsEeC5SOtkEXPa-w" name="prob" ordered="false" lowerBound="1" eType="_yiWogkDsEeC5SOtkEXPa-w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_yizUcEDsEeC5SOtkEXPa-w" name="propDelay" ordered="false" lowerBound="1" eType="_yi8eYEDsEeC5SOtkEXPa-w"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiDG5kDsEeC5SOtkEXPa-w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG50DsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_yiDG6EDsEeC5SOtkEXPa-w" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG6UDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG6kDsEeC5SOtkEXPa-w" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG60DsEeC5SOtkEXPa-w" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG7EDsEeC5SOtkEXPa-w" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG7UDsEeC5SOtkEXPa-w" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_yiDG7kDsEeC5SOtkEXPa-w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG70DsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG8EDsEeC5SOtkEXPa-w" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG8UDsEeC5SOtkEXPa-w" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG8kDsEeC5SOtkEXPa-w" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG80DsEeC5SOtkEXPa-w" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG9EDsEeC5SOtkEXPa-w" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG9UDsEeC5SOtkEXPa-w" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG9kDsEeC5SOtkEXPa-w" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG90DsEeC5SOtkEXPa-w" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG-EDsEeC5SOtkEXPa-w" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_yiDG-UDsEeC5SOtkEXPa-w" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG-kDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG-0DsEeC5SOtkEXPa-w" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG_EDsEeC5SOtkEXPa-w" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiDG_UDsEeC5SOtkEXPa-w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG_kDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiDG_0DsEeC5SOtkEXPa-w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDHAEDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_yiDHDkDsEeC5SOtkEXPa-w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDHD0DsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHEEDsEeC5SOtkEXPa-w" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHEUDsEeC5SOtkEXPa-w" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHEkDsEeC5SOtkEXPa-w" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHE0DsEeC5SOtkEXPa-w" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHFEDsEeC5SOtkEXPa-w" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHFUDsEeC5SOtkEXPa-w" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHFkDsEeC5SOtkEXPa-w" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiDHF0DsEeC5SOtkEXPa-w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDHGEDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_yiDHGUDsEeC5SOtkEXPa-w" name="DependableComponent">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDHGkDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDHG0DsEeC5SOtkEXPa-w" name="base_Component" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDHHUDsEeC5SOtkEXPa-w" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDHH0DsEeC5SOtkEXPa-w" name="base_Property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiWogkDsEeC5SOtkEXPa-w" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiWog0DsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yi8eYEDsEeC5SOtkEXPa-w" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yi8eYUDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_vTM18DgaEeCE2sZUGxu35w" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_vTDE8DgaEeCE2sZUGxu35w/1" nsPrefix="DependableComponent">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vVIvoDgaEeCE2sZUGxu35w" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvoTgaEeCE2sZUGxu35w" key="Version" value="0.0.2"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvojgaEeCE2sZUGxu35w" key="Comment" value="Now StateBasedComponents derive from DependableComponent"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvozgaEeCE2sZUGxu35w" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvpDgaEeCE2sZUGxu35w" key="Date" value="2011-02-14"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvpTgaEeCE2sZUGxu35w" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_vTM18TgaEeCE2sZUGxu35w" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM18jgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM18zgaEeCE2sZUGxu35w" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="_vTM19DgaEeCE2sZUGxu35w" name="base_Abstraction" ordered="false" unique="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM19TgaEeCE2sZUGxu35w" source="redefines">
-                    <references xmi:type="ecore:EReference" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate/base_Abstraction"/>
-                  </eAnnotations>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
-                </contents>
-                <contents xmi:type="ecore:EReference" xmi:id="_vTM19zgaEeCE2sZUGxu35w" name="base_Connector" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM1-DgaEeCE2sZUGxu35w" source="redefines" references="_vTM1_jgaEeCE2sZUGxu35w"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-                </contents>
-              </eAnnotations>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vTM1_jgaEeCE2sZUGxu35w" name="base_Connector" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vTfw4TgaEeCE2sZUGxu35w" name="prob" ordered="false" lowerBound="1" eType="_vTfw4zgaEeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vTyr0DgaEeCE2sZUGxu35w" name="propDelay" ordered="false" lowerBound="1" eType="_vTyr0jgaEeCE2sZUGxu35w"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTM2VDgaEeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2VTgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_vTM2VjgaEeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2VzgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2WDgaEeCE2sZUGxu35w" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2WTgaEeCE2sZUGxu35w" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2WjgaEeCE2sZUGxu35w" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2WzgaEeCE2sZUGxu35w" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_vTM2XDgaEeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2XTgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2XjgaEeCE2sZUGxu35w" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2XzgaEeCE2sZUGxu35w" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2YDgaEeCE2sZUGxu35w" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2YTgaEeCE2sZUGxu35w" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2YjgaEeCE2sZUGxu35w" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2YzgaEeCE2sZUGxu35w" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2ZDgaEeCE2sZUGxu35w" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2ZTgaEeCE2sZUGxu35w" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2ZjgaEeCE2sZUGxu35w" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_vTM2ZzgaEeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2aDgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2aTgaEeCE2sZUGxu35w" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2ajgaEeCE2sZUGxu35w" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTM2azgaEeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2bDgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTM2bTgaEeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2bjgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_vTM2fDgaEeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2fTgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2fjgaEeCE2sZUGxu35w" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2fzgaEeCE2sZUGxu35w" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2gDgaEeCE2sZUGxu35w" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2gTgaEeCE2sZUGxu35w" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2gjgaEeCE2sZUGxu35w" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2gzgaEeCE2sZUGxu35w" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2hDgaEeCE2sZUGxu35w" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTM2hTgaEeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2hjgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_vTM2hzgaEeCE2sZUGxu35w" name="DependableComponent">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2iDgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vTM2iTgaEeCE2sZUGxu35w" name="base_Component" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vTM2izgaEeCE2sZUGxu35w" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vTM2jTgaEeCE2sZUGxu35w" name="base_Property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTfw4zgaEeCE2sZUGxu35w" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTfw5DgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTyr0jgaEeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTyr0zgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="__BchsTRPEeCPrptoDUJcNQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/__BSwsDRPEeCPrptoDUJcNQ/0" nsPrefix="DependableComponent">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__DFgcDRPEeCPrptoDUJcNQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgcTRPEeCPrptoDUJcNQ" key="Version" value="0.0.1"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgcjRPEeCPrptoDUJcNQ" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgczRPEeCPrptoDUJcNQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgdDRPEeCPrptoDUJcNQ" key="Date" value="2011-02-09"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgdTRPEeCPrptoDUJcNQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="__BchsjRPEeCPrptoDUJcNQ" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchszRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchtDRPEeCPrptoDUJcNQ" source="duplicates">
-                <contents xmi:type="ecore:EReference" xmi:id="__BchtTRPEeCPrptoDUJcNQ" name="base_Abstraction" ordered="false" unique="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchtjRPEeCPrptoDUJcNQ" source="redefines">
-                    <references xmi:type="ecore:EReference" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate/base_Abstraction"/>
-                  </eAnnotations>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
-                </contents>
-                <contents xmi:type="ecore:EReference" xmi:id="__BchuDRPEeCPrptoDUJcNQ" name="base_Connector" ordered="false" lowerBound="1">
-                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchuTRPEeCPrptoDUJcNQ" source="redefines" references="__BchvzRPEeCPrptoDUJcNQ"/>
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-                </contents>
-              </eAnnotations>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__BchvzRPEeCPrptoDUJcNQ" name="base_Connector" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__BmSsTRPEeCPrptoDUJcNQ" name="prob" ordered="false" lowerBound="1" eType="__BmSszRPEeCPrptoDUJcNQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__B5NoDRPEeCPrptoDUJcNQ" name="propDelay" ordered="false" lowerBound="1" eType="__B5NojRPEeCPrptoDUJcNQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BciFTRPEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciFjRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="__BciFzRPEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciGDRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciGTRPEeCPrptoDUJcNQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciGjRPEeCPrptoDUJcNQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciGzRPEeCPrptoDUJcNQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciHDRPEeCPrptoDUJcNQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="__BciHTRPEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciHjRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciHzRPEeCPrptoDUJcNQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciIDRPEeCPrptoDUJcNQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciITRPEeCPrptoDUJcNQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciIjRPEeCPrptoDUJcNQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciIzRPEeCPrptoDUJcNQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciJDRPEeCPrptoDUJcNQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciJTRPEeCPrptoDUJcNQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciJjRPEeCPrptoDUJcNQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciJzRPEeCPrptoDUJcNQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="__BciKDRPEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciKTRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciKjRPEeCPrptoDUJcNQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciKzRPEeCPrptoDUJcNQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BciLDRPEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciLTRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BciLjRPEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciLzRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="__BciPTRPEeCPrptoDUJcNQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciPjRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciPzRPEeCPrptoDUJcNQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciQDRPEeCPrptoDUJcNQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciQTRPEeCPrptoDUJcNQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciQjRPEeCPrptoDUJcNQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciQzRPEeCPrptoDUJcNQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciRDRPEeCPrptoDUJcNQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciRTRPEeCPrptoDUJcNQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BciRjRPEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciRzRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="__BciSDRPEeCPrptoDUJcNQ" name="DependableComponent">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciSTRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__BciSjRPEeCPrptoDUJcNQ" name="base_Component" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__BciTDRPEeCPrptoDUJcNQ" name="errorModel" ordered="false" eType="_ljRY0TQ8EeC0ueejuetpgA"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BmSszRPEeCPrptoDUJcNQ" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BmStDRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__B5NojRPEeCPrptoDUJcNQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__B5NozRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-        </eAnnotations>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_VJJIoDa9EeW314N4GP8y1Q" annotatedElement="_DBxD0DHsEeWt8Ovv2G_EJg _ObrrII_5Eei_FpVxgbKIWA">
-          <body>allows to decorate a port\instance with information regarding the failureModes/threats possibly affecting the port\instance itself</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_64fbIDbDEeW314N4GP8y1Q" annotatedElement="_y0zvEDQ2EeC0ueejuetpgA">
-          <body>obsolete, use ErrorModelBehavior</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_zoiUMDbGEeW314N4GP8y1Q" annotatedElement="_Z8-cUDbDEeW314N4GP8y1Q">
-          <body>Properties as instance of component, block</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_4EpTIDbGEeW314N4GP8y1Q" annotatedElement="_Z8-cUDbDEeW314N4GP8y1Q _aZR90DbDEeW314N4GP8y1Q">
-          <body>This is to allow using ErrorModelBehavior in composite diagram\internal block diagram, as kind of instance view. However the usage of InstanceSpecification should be preferred.</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_K0hSoDbHEeW314N4GP8y1Q" annotatedElement="_ZJyE0DbDEeW314N4GP8y1Q">
-          <body>as Components, Blocks</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_P-akoDbHEeW314N4GP8y1Q" annotatedElement="_ZhzjQDbDEeW314N4GP8y1Q">
-          <body>as instances of components, blocks, connectors</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_XzS2MDbHEeW314N4GP8y1Q" annotatedElement="_H5GnMDbDEeW314N4GP8y1Q">
-          <body>This stereotype is used to attach a user defined error model to an architectural element. It replaces the DependableComponent.&#xD;
-See also FLABehavior and SimpleStochasticBehavior.</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_gzKTMDbSEeW5DJdhCjCHFw" annotatedElement="_VJH8IM1iEeSrt5YehnIlig">
-          <body>UMLConstraints can be attached to FailureMode to specify compliance between them (to be confirmed). FailureModes can appear in generalization relationships; in this case the compatibility between FailureMmodes follows the UML generalization semantics.</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_2AM4sDbSEeW5DJdhCjCHFw" annotatedElement="_IXfyYDHsEeWt8Ovv2G_EJg">
-          <body>as instance of Port</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_6fOBsDbSEeW5DJdhCjCHFw" annotatedElement="_J8yVMDHsEeWt8Ovv2G_EJg _ObrrII_5Eei_FpVxgbKIWA">
-          <body>FailureModes/Threats can apply to component's ports (clientServerPorts or FlowPorts): note that this is not the instance level</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_jVpooDbTEeW5DJdhCjCHFw">
-          <body>this is to use FailureModes in composite diagram. Allows to specify the part &quot;owning&quot; the stereotyped Port. As it was for the &quot;old&quot; FPTCSpecification. However the goal should be to use the &quot;real&quot; instance level, and so the Slot.</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_Ite8wI_6Eei_FpVxgbKIWA" annotatedElement="_DBxD0DHsEeWt8Ovv2G_EJg _4BcSsI_4Eei_FpVxgbKIWA">
-          <body>if applied at the same time on the same entity, than each FailureMode referred by Threats.failureMode must be referred also by FailureModes.failureMode</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_f5pbQMxcEeid4ZRCJNswAA" annotatedElement="_z0oYcMxbEeid4ZRCJNswAA">
-          <body>This stereotype is used to 
-store the result of a V&amp;V check.</body>
-        </ownedComment>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_1TXcMDQ2EeC0ueejuetpgA" alias="Component">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_vslkcDQ3EeC0ueejuetpgA" alias="Abstraction">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Abstraction"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_qUQRADQ7EeC0ueejuetpgA" alias="Connector">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_lh57ADgaEeCE2sZUGxu35w" alias="Property">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_t9O3gEDsEeC5SOtkEXPa-w" alias="Comment">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_Bxaf0E7nEeCiWfCHUearZQ" alias="InstanceSpecification">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_TBHGwM1iEeSrt5YehnIlig" alias="Class">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_-DpY4M1iEeSrt5YehnIlig" alias="Constraint">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_apYFYM1yEeSrt5YehnIlig" alias="Port">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_GZBTgDHsEeWt8Ovv2G_EJg" alias="Slot">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-        </elementImport>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_y0zvEDQ2EeC0ueejuetpgA" name="DependableComponent">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_1n7W8DQ2EeC0ueejuetpgA" name="base_Component" association="_1n7W8TQ2EeC0ueejuetpgA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_5ti_IDRPEeCPrptoDUJcNQ" name="errorModel" visibility="public" type="_90It8DQ3EeC0ueejuetpgA">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8KBBkDRPEeCPrptoDUJcNQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8KKLgDRPEeCPrptoDUJcNQ" value="*"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_8KKLgTRPEeCPrptoDUJcNQ">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_mJZY0DgaEeCE2sZUGxu35w" name="base_Property" association="_mJZY0TgaEeCE2sZUGxu35w">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="__hdJwM1ZEeSrt5YehnIlig" name="base_InstanceSpecification" association="__heX4M1ZEeSrt5YehnIlig">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_1n7W8TQ2EeC0ueejuetpgA" name="E_DependableComponent_Component0" memberEnd="_1n7W8jQ2EeC0ueejuetpgA _1n7W8DQ2EeC0ueejuetpgA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_1n7W8jQ2EeC0ueejuetpgA" name="extension_DependableComponent" type="_y0zvEDQ2EeC0ueejuetpgA" aggregation="composite" association="_1n7W8TQ2EeC0ueejuetpgA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_mJZY0TgaEeCE2sZUGxu35w" name="E_DependableComponent_Property0" memberEnd="_mJZY0jgaEeCE2sZUGxu35w _mJZY0DgaEeCE2sZUGxu35w">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_mJZY0jgaEeCE2sZUGxu35w" name="extension_DependableComponent" type="_y0zvEDQ2EeC0ueejuetpgA" aggregation="composite" association="_mJZY0TgaEeCE2sZUGxu35w"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="__heX4M1ZEeSrt5YehnIlig" name="E_DependableComponent_InstanceSpecification1" memberEnd="__heX4c1ZEeSrt5YehnIlig __hdJwM1ZEeSrt5YehnIlig">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="__heX4c1ZEeSrt5YehnIlig" name="extension_DependableComponent" type="_y0zvEDQ2EeC0ueejuetpgA" aggregation="composite" association="__heX4M1ZEeSrt5YehnIlig"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_VJH8IM1iEeSrt5YehnIlig" name="FailureMode">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_YfXfMM1iEeSrt5YehnIlig" name="base_Class" association="_YfYtUM1iEeSrt5YehnIlig">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_knrwUM1sEeSrt5YehnIlig" name="description">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n7ki8M1sEeSrt5YehnIlig"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n7lKAM1sEeSrt5YehnIlig" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_orKz4M1sEeSrt5YehnIlig" name="severity">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ugclMM1sEeSrt5YehnIlig"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ugdMQM1sEeSrt5YehnIlig" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_RzzBQM1xEeSrt5YehnIlig" name="exposure">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VqXDIM1xEeSrt5YehnIlig"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VqXqMM1xEeSrt5YehnIlig" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_WcpbsM1xEeSrt5YehnIlig" name="controllability">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YoWeQM1xEeSrt5YehnIlig"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YoXFUM1xEeSrt5YehnIlig" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_LkslQM1yEeSrt5YehnIlig" name="likelihood ">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NvheEM1yEeSrt5YehnIlig"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NviFIM1yEeSrt5YehnIlig" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_YfYtUM1iEeSrt5YehnIlig" name="E_FailureMode_Class1" memberEnd="_YfYtUc1iEeSrt5YehnIlig _YfXfMM1iEeSrt5YehnIlig">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_YfYtUc1iEeSrt5YehnIlig" name="extension_FailureMode" type="_VJH8IM1iEeSrt5YehnIlig" aggregation="composite" association="_YfYtUM1iEeSrt5YehnIlig"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_ZMRBcM1iEeSrt5YehnIlig" name="" memberEnd="_ZMRBcc1iEeSrt5YehnIlig">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_ZMRBcc1iEeSrt5YehnIlig" name="failureModeGroup" association="_ZMRBcM1iEeSrt5YehnIlig">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZMRBcs1iEeSrt5YehnIlig" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZMRBc81iEeSrt5YehnIlig" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_evyhIM1yEeSrt5YehnIlig" name="" memberEnd="_evyhIc1yEeSrt5YehnIlig">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_evyhIc1yEeSrt5YehnIlig" name="failureModeSpecification" association="_evyhIM1yEeSrt5YehnIlig">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_evyhIs1yEeSrt5YehnIlig" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_evyhI81yEeSrt5YehnIlig" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_DBxD0DHsEeWt8Ovv2G_EJg" name="FailureModes">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_IXekQDHsEeWt8Ovv2G_EJg" name="base_Slot" association="_IXfyYDHsEeWt8Ovv2G_EJg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_J8xuIDHsEeWt8Ovv2G_EJg" name="base_Port" association="_J8yVMDHsEeWt8Ovv2G_EJg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_LPBZIDHsEeWt8Ovv2G_EJg" name="failureMode" type="_VJH8IM1iEeSrt5YehnIlig" association="_LPCnQDHsEeWt8Ovv2G_EJg">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LPBZITHsEeWt8Ovv2G_EJg" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LPBZIjHsEeWt8Ovv2G_EJg" value="*"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_J3x_wDH0EeWt8Ovv2G_EJg" name="FPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" association="_J31DEDH0EeWt8Ovv2G_EJg">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J3x_wTH0EeWt8Ovv2G_EJg"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J3x_wjH0EeWt8Ovv2G_EJg" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_IXfyYDHsEeWt8Ovv2G_EJg" name="E_FailureModes_Slot1" memberEnd="_IXfyYTHsEeWt8Ovv2G_EJg _IXekQDHsEeWt8Ovv2G_EJg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_IXfyYTHsEeWt8Ovv2G_EJg" name="extension_FailureModes" type="_DBxD0DHsEeWt8Ovv2G_EJg" aggregation="composite" association="_IXfyYDHsEeWt8Ovv2G_EJg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_J8yVMDHsEeWt8Ovv2G_EJg" name="E_FailureModes_Port1" memberEnd="_J8yVMTHsEeWt8Ovv2G_EJg _J8xuIDHsEeWt8Ovv2G_EJg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_J8yVMTHsEeWt8Ovv2G_EJg" name="extension_FailureModes" type="_DBxD0DHsEeWt8Ovv2G_EJg" aggregation="composite" association="_J8yVMDHsEeWt8Ovv2G_EJg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_LPCnQDHsEeWt8Ovv2G_EJg" name="" memberEnd="_LPCnQTHsEeWt8Ovv2G_EJg _LPBZIDHsEeWt8Ovv2G_EJg">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_LPCnQTHsEeWt8Ovv2G_EJg" name="failureModes" type="_DBxD0DHsEeWt8Ovv2G_EJg" association="_LPCnQDHsEeWt8Ovv2G_EJg">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LPCnQjHsEeWt8Ovv2G_EJg" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LPCnQzHsEeWt8Ovv2G_EJg" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_J31DEDH0EeWt8Ovv2G_EJg" name="failureModes_fPTCSpecification_1" memberEnd="_J31DETH0EeWt8Ovv2G_EJg _J3x_wDH0EeWt8Ovv2G_EJg">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_J31DETH0EeWt8Ovv2G_EJg" name="failureModes" type="_DBxD0DHsEeWt8Ovv2G_EJg" association="_J31DEDH0EeWt8Ovv2G_EJg">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J31DEjH0EeWt8Ovv2G_EJg" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J31DEzH0EeWt8Ovv2G_EJg" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_H5GnMDbDEeW314N4GP8y1Q" name="ErrorModelBehavior">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Nmr1EDbDEeW314N4GP8y1Q" name="errorModel" visibility="public" type="_90It8DQ3EeC0ueejuetpgA">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Nmr1ETbDEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Nmr1EjbDEeW314N4GP8y1Q" value="*"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_Nmr1EzbDEeW314N4GP8y1Q">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_ZJxdwDbDEeW314N4GP8y1Q" name="base_Class" association="_ZJyE0DbDEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Zhy8MDbDEeW314N4GP8y1Q" name="base_InstanceSpecification" association="_ZhzjQDbDEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Z891QDbDEeW314N4GP8y1Q" name="base_Property" association="_Z8-cUDbDEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_aZRWwDbDEeW314N4GP8y1Q" name="base_Connector" association="_aZR90DbDEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_ZJyE0DbDEeW314N4GP8y1Q" name="E_ErrorModelBehavior_Class1" memberEnd="_ZJyE0TbDEeW314N4GP8y1Q _ZJxdwDbDEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ZJyE0TbDEeW314N4GP8y1Q" name="extension_ErrorModelBehavior" type="_H5GnMDbDEeW314N4GP8y1Q" aggregation="composite" association="_ZJyE0DbDEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_ZhzjQDbDEeW314N4GP8y1Q" name="E_ErrorModelBehavior_InstanceSpecification1" memberEnd="_ZhzjQTbDEeW314N4GP8y1Q _Zhy8MDbDEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ZhzjQTbDEeW314N4GP8y1Q" name="extension_ErrorModelBehavior" type="_H5GnMDbDEeW314N4GP8y1Q" aggregation="composite" association="_ZhzjQDbDEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_Z8-cUDbDEeW314N4GP8y1Q" name="E_ErrorModelBehavior_Property1" memberEnd="_Z8-cUTbDEeW314N4GP8y1Q _Z891QDbDEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Z8-cUTbDEeW314N4GP8y1Q" name="extension_ErrorModelBehavior" type="_H5GnMDbDEeW314N4GP8y1Q" aggregation="composite" association="_Z8-cUDbDEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_aZR90DbDEeW314N4GP8y1Q" name="E_ErrorModelBehavior_Connector1" memberEnd="_aZR90TbDEeW314N4GP8y1Q _aZRWwDbDEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_aZR90TbDEeW314N4GP8y1Q" name="extension_ErrorModelBehavior" type="_H5GnMDbDEeW314N4GP8y1Q" aggregation="composite" association="_aZR90DbDEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_F310MCcwEeaP8Pto8-KNAg" name="Propagation">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_NyBcgCcwEeaP8Pto8-KNAg" name="prob">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_T2jKwCcwEeaP8Pto8-KNAg" name="delay" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T2jKwScwEeaP8Pto8-KNAg"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T2jKwicwEeaP8Pto8-KNAg" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_T2jKwycwEeaP8Pto8-KNAg">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Z7vnYCcwEeaP8Pto8-KNAg" name="base_Connector" association="_Z7w1gCcwEeaP8Pto8-KNAg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_aiW7cCcwEeaP8Pto8-KNAg" name="base_InstanceSpecification" association="_aiXigCcwEeaP8Pto8-KNAg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_a7yIECcwEeaP8Pto8-KNAg" name="base_Comment" association="_a7zWMCcwEeaP8Pto8-KNAg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_Z7w1gCcwEeaP8Pto8-KNAg" name="E_Propagation_Connector1" memberEnd="_Z7w1gScwEeaP8Pto8-KNAg _Z7vnYCcwEeaP8Pto8-KNAg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Z7w1gScwEeaP8Pto8-KNAg" name="extension_Propagation" type="_F310MCcwEeaP8Pto8-KNAg" aggregation="composite" association="_Z7w1gCcwEeaP8Pto8-KNAg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_aiXigCcwEeaP8Pto8-KNAg" name="E_Propagation_InstanceSpecification1" memberEnd="_aiXigScwEeaP8Pto8-KNAg _aiW7cCcwEeaP8Pto8-KNAg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_aiXigScwEeaP8Pto8-KNAg" name="extension_Propagation" type="_F310MCcwEeaP8Pto8-KNAg" aggregation="composite" association="_aiXigCcwEeaP8Pto8-KNAg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_a7zWMCcwEeaP8Pto8-KNAg" name="E_Propagation_Comment1" memberEnd="_a7zWMScwEeaP8Pto8-KNAg _a7yIECcwEeaP8Pto8-KNAg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_a7zWMScwEeaP8Pto8-KNAg" name="extension_Propagation" type="_F310MCcwEeaP8Pto8-KNAg" aggregation="composite" association="_a7zWMCcwEeaP8Pto8-KNAg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Enumeration" xmi:id="_yZB9II9SEei-PN4Wkk2WHg" name="ThreatType">
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ofUDkI_iEei_FpVxgbKIWA" name="unauthorizedAccessOfService"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_sJJ4EI_iEei_FpVxgbKIWA" name="unauthorizedModificationOfService"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_wBGaAI_iEei_FpVxgbKIWA" name="unauthorizedDenialOfService"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Enumeration" xmi:id="_1D19kI9SEei-PN4Wkk2WHg" name="VulnerabilityType">
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zd4p8I_iEei_FpVxgbKIWA" name="missingDataIntegritySchemes"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_3-FesI_iEei_FpVxgbKIWA" name="inadequateEncryptionStrength"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_BzbMII_jEei_FpVxgbKIWA" name="resourceAllocationWithoutLimits"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Enumeration" xmi:id="_3I-eEI9SEei-PN4Wkk2WHg" name="AttackType">
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QV9BcI_jEei_FpVxgbKIWA" name="masqueradeAttack"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_SPIwoI_jEei_FpVxgbKIWA" name="denialOfServiceAttack"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_U1KXsI_jEei_FpVxgbKIWA" name="bruteForceAttack"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_W-xvkI_jEei_FpVxgbKIWA" name="dataSpoofingAttack"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_4BcSsI_4Eei_FpVxgbKIWA" name="Threat">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_IzZM8I_5Eei_FpVxgbKIWA" name="failuremode" type="_VJH8IM1iEeSrt5YehnIlig" association="_IzVikI_5Eei_FpVxgbKIWA">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LTHXsI_5Eei_FpVxgbKIWA" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LTTk8I_5Eei_FpVxgbKIWA" value="*"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_ObxxwY_5Eei_FpVxgbKIWA" name="base_Port" association="_ObrrII_5Eei_FpVxgbKIWA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_PcFYMY_5Eei_FpVxgbKIWA" name="base_Slot" association="_Pb_RkI_5Eei_FpVxgbKIWA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_LzUsQJC-EeikRonByBUGlA" name="kind" type="_yZB9II9SEei-PN4Wkk2WHg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_IzVikI_5Eei_FpVxgbKIWA" memberEnd="_IzZM8I_5Eei_FpVxgbKIWA _IzZ0AI_5Eei_FpVxgbKIWA">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IzX-0I_5Eei_FpVxgbKIWA" source="org.eclipse.papyrus">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IzYl4I_5Eei_FpVxgbKIWA" key="nature" value="UML_Nature"/>
-          </eAnnotations>
-          <ownedEnd xmi:type="uml:Property" xmi:id="_IzZ0AI_5Eei_FpVxgbKIWA" name="threats" type="_4BcSsI_4Eei_FpVxgbKIWA" association="_IzVikI_5Eei_FpVxgbKIWA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_ObrrII_5Eei_FpVxgbKIWA" name="E_Threat_Port1" memberEnd="_ObxxwI_5Eei_FpVxgbKIWA _ObxxwY_5Eei_FpVxgbKIWA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ObxxwI_5Eei_FpVxgbKIWA" name="extension_Threat" type="_4BcSsI_4Eei_FpVxgbKIWA" aggregation="composite" association="_ObrrII_5Eei_FpVxgbKIWA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_Pb_RkI_5Eei_FpVxgbKIWA" name="E_Threat_Slot1" memberEnd="_PcFYMI_5Eei_FpVxgbKIWA _PcFYMY_5Eei_FpVxgbKIWA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_PcFYMI_5Eei_FpVxgbKIWA" name="extension_Threat" type="_4BcSsI_4Eei_FpVxgbKIWA" aggregation="composite" association="_Pb_RkI_5Eei_FpVxgbKIWA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_z0oYcMxbEeid4ZRCJNswAA" name="AnalysisContextElement">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_39-zcMxbEeid4ZRCJNswAA" name="type" type="_kSw1sOzLEeil08rf2XR7gw"/>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_7jgIoMxbEeid4ZRCJNswAA" name="date">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_sexkYAnxEdy9WM11hWri2g"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_-B758MxbEeid4ZRCJNswAA" name="conditions">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_btMuEOzLEeil08rf2XR7gw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_btZiYOzLEeil08rf2XR7gw" value="*"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Bme-wMxcEeid4ZRCJNswAA" name="valid">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_E-7hQMxcEeid4ZRCJNswAA" name="result">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Go8MAMxcEeid4ZRCJNswAA" name="root">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Lhq1gMxcEeid4ZRCJNswAA" name="contextAnalysis">
-            <type xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_e1vHMMxcEeid4ZRCJNswAA" name="base_Component" association="_e1sq8MxcEeid4ZRCJNswAA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_iCQ54PGFEeiqsOkaARO1Cw" name="instantiatedArchitecture" type="_RL274cyCEeikFNSMhHHwbQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pNRIAPGFEeiqsOkaARO1Cw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pNfxgPGFEeiqsOkaARO1Cw" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_e1sq8MxcEeid4ZRCJNswAA" name="E_AnalysisContextElement_Component1" memberEnd="_e1ugIMxcEeid4ZRCJNswAA _e1vHMMxcEeid4ZRCJNswAA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_e1ugIMxcEeid4ZRCJNswAA" name="extension_AnalysisContextElement" type="_z0oYcMxbEeid4ZRCJNswAA" aggregation="composite" association="_e1sq8MxcEeid4ZRCJNswAA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Enumeration" xmi:id="_kSw1sOzLEeil08rf2XR7gw" name="Analysis">
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_bS47MOzMEeil08rf2XR7gw" name="FMEA_ANALYSIS"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_dROQIOzMEeil08rf2XR7gw" name="FTA_ANALYSIS"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_enlmIOzMEeil08rf2XR7gw" name="CONTRACT_BASED_FTA_ANALYSIS"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_fl7dsOzMEeil08rf2XR7gw" name="CONTRACT_REFINEMENT_ANALYSIS"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_gqvJoOzMEeil08rf2XR7gw" name="CONTRACT_IMPLEMENTATION_ANALYSIS"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_i1MPAOzMEeil08rf2XR7gw" name="PROPERTY_VALIDATION_ANALYSIS"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_kLHgIOzMEeil08rf2XR7gw" name="CONTRACT_PROPERTY_VALIDATION_ANALYSIS"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_lJ6DoOzMEeil08rf2XR7gw" name="MODEL_CHECKING_ANALYSIS"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_0SNfgOzMEeil08rf2XR7gw" name="CONTRACT_COMPOSITE_IMPLEMENTATION_ANALYSIS"/>
-        </packagedElement>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Profile" xmi:id="_5g4wEDQ3EeC0ueejuetpgA" name="ThreatsPropagation" URI="http://CHESS/Dependability/ThreatsPropagation" metaclassReference="_AGLpEDQ4EeC0ueejuetpgA _EsXKADQ4EeC0ueejuetpgA _YOEPEDQ4EeC0ueejuetpgA _T6fIcMvmEeSajLw6mg2A8Q _-JLxoM2NEeSrt5YehnIlig">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljHn0DQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <contents xmi:type="ecore:EPackage" xmi:id="_aeBTcI5vEeOjpOW2pJw89Q" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ai3-QI5vEeOjpOW2pJw89Q" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-QY5vEeOjpOW2pJw89Q" key="Version" value="0.0.10"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-Qo5vEeOjpOW2pJw89Q" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-Q45vEeOjpOW2pJw89Q" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-RI5vEeOjpOW2pJw89Q" key="Date" value="2014-02-05"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-RY5vEeOjpOW2pJw89Q" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBTcY5vEeOjpOW2pJw89Q" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBTco5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBTc45vEeOjpOW2pJw89Q" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBTdY5vEeOjpOW2pJw89Q" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBTdo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBTd45vEeOjpOW2pJw89Q" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBTe45vEeOjpOW2pJw89Q" name="transfFunct" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBTfY5vEeOjpOW2pJw89Q" name="property" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBTf45vEeOjpOW2pJw89Q" name="childFailure" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBTgY5vEeOjpOW2pJw89Q" name="occurrence" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBTg45vEeOjpOW2pJw89Q" name="transientDuration" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeXRsI5vEeOjpOW2pJw89Q" name="permanentProb" ordered="false" lowerBound="1" eType="_aeXRso5vEeOjpOW2pJw89Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aeBT2I5vEeOjpOW2pJw89Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT2Y5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_aeBT2o5vEeOjpOW2pJw89Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT245vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT3I5vEeOjpOW2pJw89Q" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT3Y5vEeOjpOW2pJw89Q" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT3o5vEeOjpOW2pJw89Q" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT345vEeOjpOW2pJw89Q" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_aeBT4I5vEeOjpOW2pJw89Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT4Y5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT4o5vEeOjpOW2pJw89Q" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT445vEeOjpOW2pJw89Q" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT5I5vEeOjpOW2pJw89Q" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT5Y5vEeOjpOW2pJw89Q" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT5o5vEeOjpOW2pJw89Q" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT545vEeOjpOW2pJw89Q" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT6I5vEeOjpOW2pJw89Q" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT6Y5vEeOjpOW2pJw89Q" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT6o5vEeOjpOW2pJw89Q" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_aeBT645vEeOjpOW2pJw89Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT7I5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT7Y5vEeOjpOW2pJw89Q" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT7o5vEeOjpOW2pJw89Q" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aeBT745vEeOjpOW2pJw89Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT8I5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aeBT8Y5vEeOjpOW2pJw89Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT8o5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBT845vEeOjpOW2pJw89Q" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT9I5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBT9Y5vEeOjpOW2pJw89Q" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBT945vEeOjpOW2pJw89Q" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBT-Y5vEeOjpOW2pJw89Q" name="propagationCondition" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBT_Y5vEeOjpOW2pJw89Q" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBT_45vEeOjpOW2pJw89Q" name="type" ordered="false" lowerBound="1" eType="_aeBUA45vEeOjpOW2pJw89Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUAY5vEeOjpOW2pJw89Q" name="transfFunct" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_afXXQI5vEeOjpOW2pJw89Q" name="probability" ordered="false" lowerBound="1" eType="_aeXRso5vEeOjpOW2pJw89Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_aeBUA45vEeOjpOW2pJw89Q" name="DurationType">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUBI5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBUBY5vEeOjpOW2pJw89Q" name="transient"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBUBo5vEeOjpOW2pJw89Q" name="permanent" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUB45vEeOjpOW2pJw89Q" name="Error" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUCI5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUCY5vEeOjpOW2pJw89Q" name="type" ordered="false" lowerBound="1" eType="_aeBUA45vEeOjpOW2pJw89Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUC45vEeOjpOW2pJw89Q" name="vanishingTime" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUDo5vEeOjpOW2pJw89Q" name="ThreatState">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUD45vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_C-dwsL9UEeCOtecSzivGvQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUEI5vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUFI5vEeOjpOW2pJw89Q" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_agCFoI5vEeOjpOW2pJw89Q" name="probability" ordered="false" lowerBound="1" eType="_aeXRso5vEeOjpOW2pJw89Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUFo5vEeOjpOW2pJw89Q" name="ErrorFree" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUF45vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUGY5vEeOjpOW2pJw89Q" name="UnclassifiedError" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUGo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUHI5vEeOjpOW2pJw89Q" name="FailureMode" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUHY5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUHo5vEeOjpOW2pJw89Q" name="affectedPorts" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUII5vEeOjpOW2pJw89Q" name="type" ordered="false" lowerBound="1" eType="_aeBUA45vEeOjpOW2pJw89Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUI45vEeOjpOW2pJw89Q" name="FailureFree" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUJI5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUJo5vEeOjpOW2pJw89Q" name="UnclassifiedFailure" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUJ45vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUKY5vEeOjpOW2pJw89Q" name="StuckAt">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUKo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yQjfEImOEeODrcgAiMzRCg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUK45vEeOjpOW2pJw89Q" name="property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBULY5vEeOjpOW2pJw89Q" name="value" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUL45vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUMY5vEeOjpOW2pJw89Q" name="StuckAtFixed">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUMo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Et5L0I5rEeOCpeH37jWMhw"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUM45vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUNY5vEeOjpOW2pJw89Q" name="property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUN45vEeOjpOW2pJw89Q" name="Inverted">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUOI5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_F1BL8I5rEeOCpeH37jWMhw"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUOY5vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUO45vEeOjpOW2pJw89Q" name="property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUPY5vEeOjpOW2pJw89Q" name="RampDown">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUPo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_GdDcUI5rEeOCpeH37jWMhw"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUP45vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUQY5vEeOjpOW2pJw89Q" name="property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUQ45vEeOjpOW2pJw89Q" name="decr" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBURY5vEeOjpOW2pJw89Q" name="endValue" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aeXRso5vEeOjpOW2pJw89Q" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeXRs45vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_CEv30I2FEeOAr5SJygOCbw" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CO6gcI2FEeOAr5SJygOCbw" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gcY2FEeOAr5SJygOCbw" key="Version" value="0.0.9"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gco2FEeOAr5SJygOCbw" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gc42FEeOAr5SJygOCbw" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gdI2FEeOAr5SJygOCbw" key="Date" value="2014-02-04"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gdY2FEeOAr5SJygOCbw" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEv30Y2FEeOAr5SJygOCbw" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv30o2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv3042FEeOAr5SJygOCbw" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEv31Y2FEeOAr5SJygOCbw" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv31o2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv3142FEeOAr5SJygOCbw" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEv3242FEeOAr5SJygOCbw" name="transfFunct" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv33Y2FEeOAr5SJygOCbw" name="property" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv3342FEeOAr5SJygOCbw" name="childFailure" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEv34Y2FEeOAr5SJygOCbw" name="occurrence" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEv3442FEeOAr5SJygOCbw" name="transientDuration" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CFeQkI2FEeOAr5SJygOCbw" name="permanentProb" ordered="false" lowerBound="1" eType="_CFeQko2FEeOAr5SJygOCbw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CEv4OI2FEeOAr5SJygOCbw" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4OY2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEv4Oo2FEeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4O42FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4PI2FEeOAr5SJygOCbw" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4PY2FEeOAr5SJygOCbw" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4Po2FEeOAr5SJygOCbw" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4P42FEeOAr5SJygOCbw" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEv4QI2FEeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4QY2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4Qo2FEeOAr5SJygOCbw" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4Q42FEeOAr5SJygOCbw" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4RI2FEeOAr5SJygOCbw" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4RY2FEeOAr5SJygOCbw" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4Ro2FEeOAr5SJygOCbw" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4R42FEeOAr5SJygOCbw" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4SI2FEeOAr5SJygOCbw" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4SY2FEeOAr5SJygOCbw" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4So2FEeOAr5SJygOCbw" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEv4S42FEeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4TI2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4TY2FEeOAr5SJygOCbw" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4To2FEeOAr5SJygOCbw" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CEv4T42FEeOAr5SJygOCbw" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4UI2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CEv4UY2FEeOAr5SJygOCbw" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4Uo2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEv4U42FEeOAr5SJygOCbw" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4VI2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv4VY2FEeOAr5SJygOCbw" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv4V42FEeOAr5SJygOCbw" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEv4WY2FEeOAr5SJygOCbw" name="propagationCondition" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe4I2FEeOAr5SJygOCbw" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe4o2FEeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_CEwe5o2FEeOAr5SJygOCbw"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe5I2FEeOAr5SJygOCbw" name="transfFunct" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CH3dQI2FEeOAr5SJygOCbw" name="probability" ordered="false" lowerBound="1" eType="_CFeQko2FEeOAr5SJygOCbw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEwe5o2FEeOAr5SJygOCbw" name="DurationType">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe542FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwe6I2FEeOAr5SJygOCbw" name="transient"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwe6Y2FEeOAr5SJygOCbw" name="permanent" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe6o2FEeOAr5SJygOCbw" name="Error" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe642FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe7I2FEeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_CEwe5o2FEeOAr5SJygOCbw"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe7o2FEeOAr5SJygOCbw" name="vanishingTime" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe8Y2FEeOAr5SJygOCbw" name="ThreatState">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe8o2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_C-dwsL9UEeCOtecSzivGvQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEwe842FEeOAr5SJygOCbw" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe942FEeOAr5SJygOCbw" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CJt3YI2FEeOAr5SJygOCbw" name="probability" ordered="false" lowerBound="1" eType="_CFeQko2FEeOAr5SJygOCbw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe-Y2FEeOAr5SJygOCbw" name="ErrorFree" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe-o2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe_I2FEeOAr5SJygOCbw" name="UnclassifiedError" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe_Y2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe_42FEeOAr5SJygOCbw" name="FailureMode" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfAI2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEwfAY2FEeOAr5SJygOCbw" name="affectedPorts" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwfA42FEeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_CEwe5o2FEeOAr5SJygOCbw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwfBo2FEeOAr5SJygOCbw" name="FailureFree" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfB42FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwfCY2FEeOAr5SJygOCbw" name="UnclassifiedFailure" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfCo2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwfDI2FEeOAr5SJygOCbw" name="EffectMode">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfDY2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yQjfEImOEeODrcgAiMzRCg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEwfDo2FEeOAr5SJygOCbw" name="property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwfEI2FEeOAr5SJygOCbw" name="value" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwfEo2FEeOAr5SJygOCbw" name="effectType" ordered="false" lowerBound="1" eType="_CEwfFo2FEeOAr5SJygOCbw"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEwfFI2FEeOAr5SJygOCbw" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEwfFo2FEeOAr5SJygOCbw" name="EffectModesEnum">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfF42FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwfGI2FEeOAr5SJygOCbw" name="StuckAt"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwfGY2FEeOAr5SJygOCbw" name="StuckAtFixed" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwfGo2FEeOAr5SJygOCbw" name="Inverted" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwfG42FEeOAr5SJygOCbw" name="RampDown" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CFeQko2FEeOAr5SJygOCbw" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CFeQk42FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_G6dRQI1_EeOAr5SJygOCbw" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G-VrsI1_EeOAr5SJygOCbw" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-VrsY1_EeOAr5SJygOCbw" key="Version" value="0.0.8"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-Vrso1_EeOAr5SJygOCbw" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-Vrs41_EeOAr5SJygOCbw" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-VrtI1_EeOAr5SJygOCbw" key="Date" value="2014-02-04"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-VrtY1_EeOAr5SJygOCbw" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dRQY1_EeOAr5SJygOCbw" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRQo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRQ41_EeOAr5SJygOCbw" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dRRY1_EeOAr5SJygOCbw" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRRo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRR41_EeOAr5SJygOCbw" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRS41_EeOAr5SJygOCbw" name="transfFunct" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRTY1_EeOAr5SJygOCbw" name="property" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRT41_EeOAr5SJygOCbw" name="childFailure" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRUY1_EeOAr5SJygOCbw" name="occurrence" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRU41_EeOAr5SJygOCbw" name="transientDuration" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6xaUI1_EeOAr5SJygOCbw" name="permanentProb" ordered="false" lowerBound="1" eType="_G6xaUo1_EeOAr5SJygOCbw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6dRqI1_EeOAr5SJygOCbw" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRqY1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6dRqo1_EeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRq41_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRrI1_EeOAr5SJygOCbw" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRrY1_EeOAr5SJygOCbw" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRro1_EeOAr5SJygOCbw" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRr41_EeOAr5SJygOCbw" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6dRsI1_EeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRsY1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRso1_EeOAr5SJygOCbw" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRs41_EeOAr5SJygOCbw" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRtI1_EeOAr5SJygOCbw" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRtY1_EeOAr5SJygOCbw" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRto1_EeOAr5SJygOCbw" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRt41_EeOAr5SJygOCbw" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRuI1_EeOAr5SJygOCbw" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRuY1_EeOAr5SJygOCbw" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRuo1_EeOAr5SJygOCbw" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6dRu41_EeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRvI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRvY1_EeOAr5SJygOCbw" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRvo1_EeOAr5SJygOCbw" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6dRv41_EeOAr5SJygOCbw" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRwI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6dRwY1_EeOAr5SJygOCbw" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRwo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dRw41_EeOAr5SJygOCbw" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRxI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRxY1_EeOAr5SJygOCbw" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRx41_EeOAr5SJygOCbw" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRyY1_EeOAr5SJygOCbw" name="propagationCondition" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRzY1_EeOAr5SJygOCbw" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRz41_EeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_G6dR041_EeOAr5SJygOCbw"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dR0Y1_EeOAr5SJygOCbw" name="transfFunct" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G7o9AI1_EeOAr5SJygOCbw" name="probability" ordered="false" lowerBound="1" eType="_G6xaUo1_EeOAr5SJygOCbw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6dR041_EeOAr5SJygOCbw" name="DurationType">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dR1I1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dR1Y1_EeOAr5SJygOCbw" name="transient"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dR1o1_EeOAr5SJygOCbw" name="permanent" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dR141_EeOAr5SJygOCbw" name="Error" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dR2I1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dR2Y1_EeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_G6dR041_EeOAr5SJygOCbw"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dR241_EeOAr5SJygOCbw" name="vanishingTime" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dR3o1_EeOAr5SJygOCbw" name="ThreatState">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dR341_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_C-dwsL9UEeCOtecSzivGvQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dR4I1_EeOAr5SJygOCbw" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6d4UY1_EeOAr5SJygOCbw" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6d4U41_EeOAr5SJygOCbw" name="effectModel" ordered="false" eType="_G6d4VY1_EeOAr5SJygOCbw"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G8VgkI1_EeOAr5SJygOCbw" name="probability" ordered="false" lowerBound="1" eType="_G6xaUo1_EeOAr5SJygOCbw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4VY1_EeOAr5SJygOCbw" name="EffectMode">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4Vo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yQjfEImOEeODrcgAiMzRCg"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6d4V41_EeOAr5SJygOCbw" name="property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6d4WY1_EeOAr5SJygOCbw" name="value" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6d4W41_EeOAr5SJygOCbw" name="effectType" ordered="false" lowerBound="1" eType="_G6d4X41_EeOAr5SJygOCbw"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6d4XY1_EeOAr5SJygOCbw" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6d4X41_EeOAr5SJygOCbw" name="EffectModesEnum">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4YI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6d4YY1_EeOAr5SJygOCbw" name="StuckAt"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6d4Yo1_EeOAr5SJygOCbw" name="StuckAtFixed" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6d4Y41_EeOAr5SJygOCbw" name="Inverted" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6d4ZI1_EeOAr5SJygOCbw" name="RampDown" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4ZY1_EeOAr5SJygOCbw" name="ErrorFree" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4Zo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4aI1_EeOAr5SJygOCbw" name="UnclassifiedError" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4aY1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4a41_EeOAr5SJygOCbw" name="FailureMode" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4bI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6d4bY1_EeOAr5SJygOCbw" name="affectedPorts" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6d4b41_EeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_G6dR041_EeOAr5SJygOCbw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4co1_EeOAr5SJygOCbw" name="FailureFree" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4c41_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4dY1_EeOAr5SJygOCbw" name="UnclassifiedFailure" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4do1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6xaUo1_EeOAr5SJygOCbw" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6xaU41_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_PJWkcImREeOqf4JlfFwBNg" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PMzhEImREeOqf4JlfFwBNg" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhEYmREeOqf4JlfFwBNg" key="Version" value="0.0.7"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhEomREeOqf4JlfFwBNg" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhE4mREeOqf4JlfFwBNg" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhFImREeOqf4JlfFwBNg" key="Date" value="2014-01-30"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhFYmREeOqf4JlfFwBNg" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWkcYmREeOqf4JlfFwBNg" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWkcomREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWkc4mREeOqf4JlfFwBNg" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWkdYmREeOqf4JlfFwBNg" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWkdomREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWkd4mREeOqf4JlfFwBNg" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWke4mREeOqf4JlfFwBNg" name="transfFunct" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWkfYmREeOqf4JlfFwBNg" name="property" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWkf4mREeOqf4JlfFwBNg" name="childFailure" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWkgYmREeOqf4JlfFwBNg" name="occurrence" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWkg4mREeOqf4JlfFwBNg" name="transientDuration" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJoRQImREeOqf4JlfFwBNg" name="permanentProb" ordered="false" lowerBound="1" eType="_PJoRQomREeOqf4JlfFwBNg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_PJWk2ImREeOqf4JlfFwBNg" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk2YmREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWk2omREeOqf4JlfFwBNg" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk24mREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk3ImREeOqf4JlfFwBNg" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk3YmREeOqf4JlfFwBNg" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk3omREeOqf4JlfFwBNg" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk34mREeOqf4JlfFwBNg" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWk4ImREeOqf4JlfFwBNg" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk4YmREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk4omREeOqf4JlfFwBNg" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk44mREeOqf4JlfFwBNg" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk5ImREeOqf4JlfFwBNg" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk5YmREeOqf4JlfFwBNg" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk5omREeOqf4JlfFwBNg" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk54mREeOqf4JlfFwBNg" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk6ImREeOqf4JlfFwBNg" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk6YmREeOqf4JlfFwBNg" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk6omREeOqf4JlfFwBNg" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWk64mREeOqf4JlfFwBNg" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk7ImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk7YmREeOqf4JlfFwBNg" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk7omREeOqf4JlfFwBNg" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_PJWk74mREeOqf4JlfFwBNg" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk8ImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_PJWk8YmREeOqf4JlfFwBNg" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk8omREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWk84mREeOqf4JlfFwBNg" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk9ImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWk9YmREeOqf4JlfFwBNg" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWk94mREeOqf4JlfFwBNg" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWk-YmREeOqf4JlfFwBNg" name="propagationCondition" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWk_YmREeOqf4JlfFwBNg" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWk_4mREeOqf4JlfFwBNg" name="type" ordered="false" lowerBound="1" eType="_PJWlA4mREeOqf4JlfFwBNg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlAYmREeOqf4JlfFwBNg" name="transfFunct" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PKaUYImREeOqf4JlfFwBNg" name="probability" ordered="false" lowerBound="1" eType="_PJoRQomREeOqf4JlfFwBNg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWlA4mREeOqf4JlfFwBNg" name="DurationType">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlBImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlBYmREeOqf4JlfFwBNg" name="transient"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlBomREeOqf4JlfFwBNg" name="permanent" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlB4mREeOqf4JlfFwBNg" name="Error" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlCImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlCYmREeOqf4JlfFwBNg" name="type" ordered="false" lowerBound="1" eType="_PJWlA4mREeOqf4JlfFwBNg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlC4mREeOqf4JlfFwBNg" name="vanishingTime" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlDomREeOqf4JlfFwBNg" name="ThreatState">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlD4mREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_C-dwsL9UEeCOtecSzivGvQ"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWlEImREeOqf4JlfFwBNg" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlFImREeOqf4JlfFwBNg" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWlFomREeOqf4JlfFwBNg" name="effectModel" ordered="false" eType="_PJWlGImREeOqf4JlfFwBNg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PLB_cImREeOqf4JlfFwBNg" name="probability" ordered="false" lowerBound="1" eType="_PJoRQomREeOqf4JlfFwBNg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlGImREeOqf4JlfFwBNg" name="EffectMode">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlGYmREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yQjfEImOEeODrcgAiMzRCg"/>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//NFPs/NfpType"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWlGomREeOqf4JlfFwBNg" name="property" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlHImREeOqf4JlfFwBNg" name="value" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlHomREeOqf4JlfFwBNg" name="effectType" ordered="false" lowerBound="1" eType="_PJWlIYmREeOqf4JlfFwBNg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWlIYmREeOqf4JlfFwBNg" name="EffectModesEnum">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlIomREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlI4mREeOqf4JlfFwBNg" name="StuckAt"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlJImREeOqf4JlfFwBNg" name="StuckAtFixed" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlJYmREeOqf4JlfFwBNg" name="Inverted" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlJomREeOqf4JlfFwBNg" name="RampDown" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlJ4mREeOqf4JlfFwBNg" name="ErrorFree" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlKImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlKomREeOqf4JlfFwBNg" name="UnclassifiedError" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlK4mREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlLYmREeOqf4JlfFwBNg" name="FailureMode" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlLomREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWlL4mREeOqf4JlfFwBNg" name="affectedPorts" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlMYmREeOqf4JlfFwBNg" name="type" ordered="false" lowerBound="1" eType="_PJWlA4mREeOqf4JlfFwBNg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlNImREeOqf4JlfFwBNg" name="FailureFree" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlNYmREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlN4mREeOqf4JlfFwBNg" name="UnclassifiedFailure" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlOImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_PJoRQomREeOqf4JlfFwBNg" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJoRQ4mREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_SWZ04Ke3EeCfNM3HjUZ3Ag" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sc9I0Ke3EeCfNM3HjUZ3Ag" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I0ae3EeCfNM3HjUZ3Ag" key="Version" value="0.0.6"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I0qe3EeCfNM3HjUZ3Ag" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I06e3EeCfNM3HjUZ3Ag" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I1Ke3EeCfNM3HjUZ3Ag" key="Date" value="2011-07-06"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I1ae3EeCfNM3HjUZ3Ag" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ04ae3EeCfNM3HjUZ3Ag" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ04qe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ046e3EeCfNM3HjUZ3Ag" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ05ae3EeCfNM3HjUZ3Ag" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ05qe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ056e3EeCfNM3HjUZ3Ag" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ066e3EeCfNM3HjUZ3Ag" name="transfFunct" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ07ae3EeCfNM3HjUZ3Ag" name="property" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ076e3EeCfNM3HjUZ3Ag" name="childFailure" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SW2g0Ke3EeCfNM3HjUZ3Ag" name="permanentProb" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_SWZ1RKe3EeCfNM3HjUZ3Ag" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1Rae3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SWZ1Rqe3EeCfNM3HjUZ3Ag" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1R6e3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1SKe3EeCfNM3HjUZ3Ag" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Sae3EeCfNM3HjUZ3Ag" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Sqe3EeCfNM3HjUZ3Ag" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1S6e3EeCfNM3HjUZ3Ag" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SWZ1TKe3EeCfNM3HjUZ3Ag" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1Tae3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Tqe3EeCfNM3HjUZ3Ag" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1T6e3EeCfNM3HjUZ3Ag" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1UKe3EeCfNM3HjUZ3Ag" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Uae3EeCfNM3HjUZ3Ag" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Uqe3EeCfNM3HjUZ3Ag" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1U6e3EeCfNM3HjUZ3Ag" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1VKe3EeCfNM3HjUZ3Ag" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Vae3EeCfNM3HjUZ3Ag" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Vqe3EeCfNM3HjUZ3Ag" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SWZ1V6e3EeCfNM3HjUZ3Ag" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1WKe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Wae3EeCfNM3HjUZ3Ag" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Wqe3EeCfNM3HjUZ3Ag" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_SWZ1W6e3EeCfNM3HjUZ3Ag" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1XKe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_SWZ1Xae3EeCfNM3HjUZ3Ag" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1Xqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1X6e3EeCfNM3HjUZ3Ag" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1YKe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1Yae3EeCfNM3HjUZ3Ag" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1Y6e3EeCfNM3HjUZ3Ag" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1Zae3EeCfNM3HjUZ3Ag" name="propagationCondition" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1Z6e3EeCfNM3HjUZ3Ag" name="Error">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1aKe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1aae3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1a6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1b6e3EeCfNM3HjUZ3Ag" name="type" ordered="false" lowerBound="1" eType="_SWZ1cae3EeCfNM3HjUZ3Ag"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYL9kKe3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SWZ1cae3EeCfNM3HjUZ3Ag" name="DurationType">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1cqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1c6e3EeCfNM3HjUZ3Ag" name="transient"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1dKe3EeCfNM3HjUZ3Ag" name="permanent" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1dae3EeCfNM3HjUZ3Ag" name="ErrorFree">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1dqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1d6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1e6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SY7kcKe3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1fae3EeCfNM3HjUZ3Ag" name="UnclassifiedError">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1fqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1f6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1g6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SZ-tUKe3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1hae3EeCfNM3HjUZ3Ag" name="FailureMode">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1hqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1h6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1i6e3EeCfNM3HjUZ3Ag" name="affectedPorts" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1jae3EeCfNM3HjUZ3Ag" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1j6e3EeCfNM3HjUZ3Ag" name="type" ordered="false" lowerBound="1" eType="_SWZ1cae3EeCfNM3HjUZ3Ag"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Sa3eIKe3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1kae3EeCfNM3HjUZ3Ag" name="FailureFree">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1kqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1k6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1l6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SbnFAae3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1mae3EeCfNM3HjUZ3Ag" name="UnclassifiedFailure">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1mqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1m6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1n6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Scgc4Ke3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_SW2g0qe3EeCfNM3HjUZ3Ag" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SW2g06e3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_G6-koFquEeCgwNmo13tekQ" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HBYuoFquEeCgwNmo13tekQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYuoVquEeCgwNmo13tekQ" key="Version" value="0.0.5"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYuolquEeCgwNmo13tekQ" key="Comment" value="removed unnecessary Extension from the model"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYuo1quEeCgwNmo13tekQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYupFquEeCgwNmo13tekQ" key="Date" value="2011-03-30"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYupVquEeCgwNmo13tekQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-koVquEeCgwNmo13tekQ" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-kolquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-ko1quEeCgwNmo13tekQ" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-kpVquEeCgwNmo13tekQ" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-kplquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-kp1quEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G7uLgFquEeCgwNmo13tekQ" name="permanentProb" ordered="false" lowerBound="1" eType="_G7uLglquEeCgwNmo13tekQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6-k_lquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-k_1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6-lAFquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lAVquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lAlquEeCgwNmo13tekQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lA1quEeCgwNmo13tekQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lBFquEeCgwNmo13tekQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lBVquEeCgwNmo13tekQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6-lBlquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lB1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lCFquEeCgwNmo13tekQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lCVquEeCgwNmo13tekQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lClquEeCgwNmo13tekQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lC1quEeCgwNmo13tekQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lDFquEeCgwNmo13tekQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lDVquEeCgwNmo13tekQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lDlquEeCgwNmo13tekQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lD1quEeCgwNmo13tekQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lEFquEeCgwNmo13tekQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6-lEVquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lElquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lE1quEeCgwNmo13tekQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lFFquEeCgwNmo13tekQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6-lFVquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lFlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6-lF1quEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lGFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lGVquEeCgwNmo13tekQ" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lGlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lG1quEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lHVquEeCgwNmo13tekQ" name="fromPort" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6-lH1quEeCgwNmo13tekQ" name="logic" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lIVquEeCgwNmo13tekQ" name="Error">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lIlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lI1quEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lJVquEeCgwNmo13tekQ" name="ErrorFree">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lJlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lJ1quEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G9qsQFquEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_G7uLglquEeCgwNmo13tekQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lK1quEeCgwNmo13tekQ" name="Unclassified">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lLFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lLVquEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G-2_EFquEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_G7uLglquEeCgwNmo13tekQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lMVquEeCgwNmo13tekQ" name="FailureMode">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lMlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lM1quEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lN1quEeCgwNmo13tekQ" name="affectedPorts" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_HAMb0FquEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_G7uLglquEeCgwNmo13tekQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7uLglquEeCgwNmo13tekQ" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7uLg1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_-YopwFqlEeCgwNmo13tekQ" name="ThreatsPropagation" nsURI="http://CHESS.Dependability/schemas/ThreatsPropagation/_-YVu0FqlEeCgwNmo13tekQ/3" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-fCzwFqlEeCgwNmo13tekQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzwVqlEeCgwNmo13tekQ" key="Version" value="0.0.4"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzwlqlEeCgwNmo13tekQ" key="Comment" value="Merged DependableComponent::Propagation and ThreatsPropagation::Propagation"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzw1qlEeCgwNmo13tekQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzxFqlEeCgwNmo13tekQ" key="Date" value="2011-03-30"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzxVqlEeCgwNmo13tekQ" key="Author" value="Stefano"/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YopwVqlEeCgwNmo13tekQ" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YopwlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-Yopw1qlEeCgwNmo13tekQ" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YopxVqlEeCgwNmo13tekQ" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YopxlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-Yopx1qlEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-ZYQoFqlEeCgwNmo13tekQ" name="permanentProb" ordered="false" lowerBound="1" eType="_-ZYQolqlEeCgwNmo13tekQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_-YoqHlqlEeCgwNmo13tekQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqH1qlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-YoqIFqlEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqIVqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqIlqlEeCgwNmo13tekQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqI1qlEeCgwNmo13tekQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqJFqlEeCgwNmo13tekQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqJVqlEeCgwNmo13tekQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-YoqJlqlEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqJ1qlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqKFqlEeCgwNmo13tekQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqKVqlEeCgwNmo13tekQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqKlqlEeCgwNmo13tekQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqK1qlEeCgwNmo13tekQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqLFqlEeCgwNmo13tekQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqLVqlEeCgwNmo13tekQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqLlqlEeCgwNmo13tekQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqL1qlEeCgwNmo13tekQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqMFqlEeCgwNmo13tekQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-YoqMVqlEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqMlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqM1qlEeCgwNmo13tekQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqNFqlEeCgwNmo13tekQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_-YoqNVqlEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqNlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_-YoqN1qlEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqOFqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqOVqlEeCgwNmo13tekQ" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqOlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqO1qlEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqPVqlEeCgwNmo13tekQ" name="fromPort" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-YoqP1qlEeCgwNmo13tekQ" name="logic" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqQVqlEeCgwNmo13tekQ" name="Error">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqQlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqQ1qlEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqRVqlEeCgwNmo13tekQ" name="ErrorFree">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqRlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqR1qlEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-bKZUFqlEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_-ZYQolqlEeCgwNmo13tekQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqS1qlEeCgwNmo13tekQ" name="Unclassified">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqTFqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqTVqlEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-cgdIFqlEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_-ZYQolqlEeCgwNmo13tekQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqUVqlEeCgwNmo13tekQ" name="FailureMode">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqUlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqU1qlEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqV1qlEeCgwNmo13tekQ" name="affectedPorts" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-dsv8FqlEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_-ZYQolqlEeCgwNmo13tekQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_-ZYQolqlEeCgwNmo13tekQ" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-ZYQo1qlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_2F5QYEQQEeCQRfAVtSc0sw" name="ThreatsPropagation" nsURI="http://CHESS.Dependability/schemas/ThreatsPropagation/_2FwGcEQQEeCQRfAVtSc0sw/2" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2gHuQEQQEeCQRfAVtSc0sw" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuQUQQEeCQRfAVtSc0sw" key="Version" value="0.0.3"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuQkQQEeCQRfAVtSc0sw" key="Comment" value="addedt target type for dependableMeasure"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuQ0QQEeCQRfAVtSc0sw" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuREQQEeCQRfAVtSc0sw" key="Date" value="2011-03-01"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuRUQQEeCQRfAVtSc0sw" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5QYUQQEeCQRfAVtSc0sw" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5QYkQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5QY0QQEeCQRfAVtSc0sw" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5QZUQQEeCQRfAVtSc0sw" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5QZkQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5QZ0QQEeCQRfAVtSc0sw" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2aBGQEQQEeCQRfAVtSc0sw" name="permanentProb" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2F5QvkQQEeCQRfAVtSc0sw" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Qv0QQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_2F5QwEQQEeCQRfAVtSc0sw" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5QwUQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QwkQQEeCQRfAVtSc0sw" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Qw0QQEeCQRfAVtSc0sw" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QxEQQEeCQRfAVtSc0sw" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QxUQQEeCQRfAVtSc0sw" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_2F5QxkQQEeCQRfAVtSc0sw" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Qx0QQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QyEQQEeCQRfAVtSc0sw" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QyUQQEeCQRfAVtSc0sw" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QykQQEeCQRfAVtSc0sw" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Qy0QQEeCQRfAVtSc0sw" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QzEQQEeCQRfAVtSc0sw" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QzUQQEeCQRfAVtSc0sw" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QzkQQEeCQRfAVtSc0sw" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Qz0QQEeCQRfAVtSc0sw" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Q0EQQEeCQRfAVtSc0sw" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_2F5Q0UQQEeCQRfAVtSc0sw" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q0kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Q00QQEeCQRfAVtSc0sw" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Q1EQQEeCQRfAVtSc0sw" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2F5Q1UQQEeCQRfAVtSc0sw" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q1kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2F5Q10QQEeCQRfAVtSc0sw" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q2EQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q2UQQEeCQRfAVtSc0sw" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q2kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q20QQEeCQRfAVtSc0sw" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q3UQQEeCQRfAVtSc0sw" name="fromPort" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2F5Q30QQEeCQRfAVtSc0sw" name="logic" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q4UQQEeCQRfAVtSc0sw" name="Error">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q4kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q40QQEeCQRfAVtSc0sw" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q5UQQEeCQRfAVtSc0sw" name="ErrorFree">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q5kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q50QQEeCQRfAVtSc0sw" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2bqFAEQQEeCQRfAVtSc0sw" name="probability" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q60QQEeCQRfAVtSc0sw" name="Unclassified">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q7EQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q7UQQEeCQRfAVtSc0sw" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2csm0EQQEeCQRfAVtSc0sw" name="probability" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q8UQQEeCQRfAVtSc0sw" name="FailureMode">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q8kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q80QQEeCQRfAVtSc0sw" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q90QQEeCQRfAVtSc0sw" name="affectedPorts" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2d45oEQQEeCQRfAVtSc0sw" name="probability" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q-UQQEeCQRfAVtSc0sw" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q-kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q-0QQEeCQRfAVtSc0sw" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2F5Q_0QQEeCQRfAVtSc0sw" name="tf" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2fYHYEQQEeCQRfAVtSc0sw" name="probability" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2aBGQkQQEeCQRfAVtSc0sw" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2aBGQ0QQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_U0lJ8DRoEeCPrptoDUJcNQ" name="ThreatsPropagation" nsURI="http://CHESS.Dependability/schemas/ThreatsPropagation/_U0bY8DRoEeCPrptoDUJcNQ/1" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U5CzMDRoEeCPrptoDUJcNQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzMTRoEeCPrptoDUJcNQ" key="Version" value="0.0.2"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzMjRoEeCPrptoDUJcNQ" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzMzRoEeCPrptoDUJcNQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzNDRoEeCPrptoDUJcNQ" key="Date" value="2011-02-09"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzNTRoEeCPrptoDUJcNQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lJ8TRoEeCPrptoDUJcNQ" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lJ8jRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lJ8zRoEeCPrptoDUJcNQ" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lJ9TRoEeCPrptoDUJcNQ" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lJ9jRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lJ9zRoEeCPrptoDUJcNQ" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U04E4DRoEeCPrptoDUJcNQ" name="permanentProb" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U0lKTjRoEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKTzRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_U0lKUDRoEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKUTRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKUjRoEeCPrptoDUJcNQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKUzRoEeCPrptoDUJcNQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKVDRoEeCPrptoDUJcNQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKVTRoEeCPrptoDUJcNQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_U0lKVjRoEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKVzRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKWDRoEeCPrptoDUJcNQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKWTRoEeCPrptoDUJcNQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKWjRoEeCPrptoDUJcNQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKWzRoEeCPrptoDUJcNQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKXDRoEeCPrptoDUJcNQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKXTRoEeCPrptoDUJcNQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKXjRoEeCPrptoDUJcNQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKXzRoEeCPrptoDUJcNQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKYDRoEeCPrptoDUJcNQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_U0lKYTRoEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKYjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKYzRoEeCPrptoDUJcNQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKZDRoEeCPrptoDUJcNQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U0lKZTRoEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKZjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U0lKZzRoEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKaDRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKaTRoEeCPrptoDUJcNQ" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKajRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKazRoEeCPrptoDUJcNQ" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKbTRoEeCPrptoDUJcNQ" name="fromPort" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U0lKbzRoEeCPrptoDUJcNQ" name="logic" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKcTRoEeCPrptoDUJcNQ" name="Error">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKcjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKczRoEeCPrptoDUJcNQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKdTRoEeCPrptoDUJcNQ" name="ErrorFree">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKdjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKdzRoEeCPrptoDUJcNQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U16msDRoEeCPrptoDUJcNQ" name="probability" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKezRoEeCPrptoDUJcNQ" name="Unclassified">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKfDRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKfTRoEeCPrptoDUJcNQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U2qNkDRoEeCPrptoDUJcNQ" name="probability" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKgTRoEeCPrptoDUJcNQ" name="FailureMode">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKgjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKgzRoEeCPrptoDUJcNQ" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKhzRoEeCPrptoDUJcNQ" name="affectedPorts" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U3abgDRoEeCPrptoDUJcNQ" name="probability" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKiTRoEeCPrptoDUJcNQ" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKijRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKizRoEeCPrptoDUJcNQ" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U0lKjzRoEeCPrptoDUJcNQ" name="tf" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U4TMUDRoEeCPrptoDUJcNQ" name="probability" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U04E4jRoEeCPrptoDUJcNQ" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U04E4zRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_ljRY0DQ8EeC0ueejuetpgA" name="ThreatsPropagation" nsURI="http://CHESS.Dependability/schemas/ThreatsPropagation/_li0s4DQ8EeC0ueejuetpgA/0" nsPrefix="ThreatsPropagation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lncHIDQ8EeC0ueejuetpgA" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHITQ8EeC0ueejuetpgA" key="Version" value="0.0.1"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHIjQ8EeC0ueejuetpgA" key="Comment" value="New Dependability Profile"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHIzQ8EeC0ueejuetpgA" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHJDQ8EeC0ueejuetpgA" key="Date" value="2011-02-09"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHJTQ8EeC0ueejuetpgA" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRY0TQ8EeC0ueejuetpgA" name="ErrorModel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRY0jQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRY0zQ8EeC0ueejuetpgA" name="base_StateMachine" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRY1TQ8EeC0ueejuetpgA" name="InternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRY1jQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRY1zQ8EeC0ueejuetpgA" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lj3OsDQ8EeC0ueejuetpgA" name="permanentProb" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ljRZLjQ8EeC0ueejuetpgA" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZLzQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_ljRZMDQ8EeC0ueejuetpgA" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZMTQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZMjQ8EeC0ueejuetpgA" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZMzQ8EeC0ueejuetpgA" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZNDQ8EeC0ueejuetpgA" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZNTQ8EeC0ueejuetpgA" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_ljRZNjQ8EeC0ueejuetpgA" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZNzQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZODQ8EeC0ueejuetpgA" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZOTQ8EeC0ueejuetpgA" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZOjQ8EeC0ueejuetpgA" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZOzQ8EeC0ueejuetpgA" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZPDQ8EeC0ueejuetpgA" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZPTQ8EeC0ueejuetpgA" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZPjQ8EeC0ueejuetpgA" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZPzQ8EeC0ueejuetpgA" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZQDQ8EeC0ueejuetpgA" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_ljRZQTQ8EeC0ueejuetpgA" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZQjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZQzQ8EeC0ueejuetpgA" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZRDQ8EeC0ueejuetpgA" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ljRZRTQ8EeC0ueejuetpgA" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZRjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ljRZRzQ8EeC0ueejuetpgA" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZSDQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZSTQ8EeC0ueejuetpgA" name="ExternalFault">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZSjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZSzQ8EeC0ueejuetpgA" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZTTQ8EeC0ueejuetpgA" name="fromPort" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ljRZTzQ8EeC0ueejuetpgA" name="logic" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZUTQ8EeC0ueejuetpgA" name="Error">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZUjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZUzQ8EeC0ueejuetpgA" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZVTQ8EeC0ueejuetpgA" name="ErrorFree">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZVjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZVzQ8EeC0ueejuetpgA" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lk6XkDQ8EeC0ueejuetpgA" name="probability" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZWzQ8EeC0ueejuetpgA" name="Unclassified">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZXDQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZXTQ8EeC0ueejuetpgA" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_llgNcDQ8EeC0ueejuetpgA" name="probability" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZYTQ8EeC0ueejuetpgA" name="FailureMode">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZYjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZYzQ8EeC0ueejuetpgA" name="base_State" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lmGqYDQ8EeC0ueejuetpgA" name="probability" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZZzQ8EeC0ueejuetpgA" name="Propagation">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZaDQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZaTQ8EeC0ueejuetpgA" name="base_Transition" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ljRZbTQ8EeC0ueejuetpgA" name="tf" ordered="false" upperBound="-1">
-                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lmsgQTQ8EeC0ueejuetpgA" name="probability" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_lj3OsjQ8EeC0ueejuetpgA" name="NFP_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lj3OszQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-        </eAnnotations>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_0B-ykM1VEeSrt5YehnIlig" annotatedElement="_tdSWgM1VEeSrt5YehnIlig _ksxYIDbJEeW314N4GP8y1Q">
-          <body>New Dep profile</body>
-        </ownedComment>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_AGLpEDQ4EeC0ueejuetpgA" alias="StateMachine">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#StateMachine"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_EsXKADQ4EeC0ueejuetpgA" alias="Transition">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_YOEPEDQ4EeC0ueejuetpgA" alias="State">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_T6fIcMvmEeSajLw6mg2A8Q" alias="Constraint">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_-JLxoM2NEeSrt5YehnIlig" alias="Event">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Event"/>
-        </elementImport>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_90It8DQ3EeC0ueejuetpgA" name="ErrorModel">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Ag2y4DQ4EeC0ueejuetpgA" name="base_StateMachine" association="_Ag2y4TQ4EeC0ueejuetpgA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#StateMachine"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_Ag2y4TQ4EeC0ueejuetpgA" name="E_ErrorModel_StateMachine1" memberEnd="_Ag2y4jQ4EeC0ueejuetpgA _Ag2y4DQ4EeC0ueejuetpgA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Ag2y4jQ4EeC0ueejuetpgA" name="extension_ErrorModel" type="_90It8DQ3EeC0ueejuetpgA" aggregation="composite" association="_Ag2y4TQ4EeC0ueejuetpgA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_W3CKsDQ4EeC0ueejuetpgA" name="ErrorState">
-          <generalization xmi:type="uml:Generalization" xmi:id="_Me6MML9UEeCOtecSzivGvQ" general="_C-dwsL9UEeCOtecSzivGvQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_C-dwsL9UEeCOtecSzivGvQ" name="ThreatState">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_FwZFwL9UEeCOtecSzivGvQ" name="base_State" association="_FwZFwb9UEeCOtecSzivGvQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_O6e2wL9UEeCOtecSzivGvQ" name="probability">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_KEuMQL9VEeCOtecSzivGvQ" name="unit">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KEuMQb9VEeCOtecSzivGvQ"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_FwZFwb9UEeCOtecSzivGvQ" name="E_ThreatState_State0" memberEnd="_FwZFwr9UEeCOtecSzivGvQ _FwZFwL9UEeCOtecSzivGvQ">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_FwZFwr9UEeCOtecSzivGvQ" name="extension_ThreatState" type="_C-dwsL9UEeCOtecSzivGvQ" aggregation="composite" association="_FwZFwb9UEeCOtecSzivGvQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_yQjfEImOEeODrcgAiMzRCg" name="StuckAt">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_tuF6IImGEeODrcgAiMzRCg" name="property">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_7ABDMImGEeODrcgAiMzRCg" name="value">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_lSG3EI19EeOAr5SJygOCbw" name="base_State" association="_lSIFMI19EeOAr5SJygOCbw">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_lSIFMI19EeOAr5SJygOCbw" name="E_StuckAt_State1" memberEnd="_lSIFMY19EeOAr5SJygOCbw _lSG3EI19EeOAr5SJygOCbw">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_lSIFMY19EeOAr5SJygOCbw" name="extension_StuckAt" type="_yQjfEImOEeODrcgAiMzRCg" aggregation="composite" association="_lSIFMI19EeOAr5SJygOCbw"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Et5L0I5rEeOCpeH37jWMhw" name="StuckAtFixed">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_xlMnMI5rEeOCpeH37jWMhw" name="base_State" association="_xlNOQI5rEeOCpeH37jWMhw">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_FUyFUI5uEeOjpOW2pJw89Q" name="property">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_F1BL8I5rEeOCpeH37jWMhw" name="Inverted">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_x_xDUI5rEeOCpeH37jWMhw" name="base_State" association="_x_xDUY5rEeOCpeH37jWMhw">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Fx2b0I5uEeOjpOW2pJw89Q" name="property">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_GdDcUI5rEeOCpeH37jWMhw" name="RampDown">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_yaNjoI5rEeOCpeH37jWMhw" name="base_State" association="_yaOKsI5rEeOCpeH37jWMhw">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_eN93UI5sEeOCpeH37jWMhw" name="property">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_fkMDYI5sEeOCpeH37jWMhw" name="decr">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_glHU4I5sEeOCpeH37jWMhw" name="endValue">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_xlNOQI5rEeOCpeH37jWMhw" name="E_StuckAtFixed_State1" memberEnd="_xlNOQY5rEeOCpeH37jWMhw _xlMnMI5rEeOCpeH37jWMhw">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_xlNOQY5rEeOCpeH37jWMhw" name="extension_StuckAtFixed" type="_Et5L0I5rEeOCpeH37jWMhw" aggregation="composite" association="_xlNOQI5rEeOCpeH37jWMhw"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_x_xDUY5rEeOCpeH37jWMhw" name="E_Inverted_State1" memberEnd="_x_xDUo5rEeOCpeH37jWMhw _x_xDUI5rEeOCpeH37jWMhw">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_x_xDUo5rEeOCpeH37jWMhw" name="extension_Inverted" type="_F1BL8I5rEeOCpeH37jWMhw" aggregation="composite" association="_x_xDUY5rEeOCpeH37jWMhw"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_yaOKsI5rEeOCpeH37jWMhw" name="E_RampDown_State1" memberEnd="_yaOKsY5rEeOCpeH37jWMhw _yaNjoI5rEeOCpeH37jWMhw">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_yaOKsY5rEeOCpeH37jWMhw" name="extension_RampDown" type="_GdDcUI5rEeOCpeH37jWMhw" aggregation="composite" association="_yaOKsI5rEeOCpeH37jWMhw"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_tdSWgM1VEeSrt5YehnIlig" name="DegradedState">
-          <generalization xmi:type="uml:Generalization" xmi:id="_yV7gcM1VEeSrt5YehnIlig" general="_C-dwsL9UEeCOtecSzivGvQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_3p_goM2NEeSrt5YehnIlig" name="NormalInput">
-          <generalization xmi:type="uml:Generalization" xmi:id="_5pRQwM2NEeSrt5YehnIlig" general="_SHHqQM2PEeSrt5YehnIlig"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_WHUlwM2OEeSrt5YehnIlig" name="NormalOutput">
-          <generalization xmi:type="uml:Generalization" xmi:id="_X18qwM2OEeSrt5YehnIlig" general="_SHHqQM2PEeSrt5YehnIlig"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_YSCJ0M2OEeSrt5YehnIlig" name="Failure">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Q1MJsDbJEeW314N4GP8y1Q" name="base_Transition" association="_Q1MwwDbJEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_UhbK4DbJEeW314N4GP8y1Q" name="mode">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UhbK4TbJEeW314N4GP8y1Q" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UhbK4jbJEeW314N4GP8y1Q" value="*"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_aybO4DbJEeW314N4GP8y1Q" name="delay">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aybO4TbJEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aybO4jbJEeW314N4GP8y1Q" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_TTPuYHJPEeWA88Dv12-yjw" name="weight" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TTPuYXJPEeWA88Dv12-yjw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TTPuYnJPEeWA88Dv12-yjw" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_TTPuY3JPEeWA88Dv12-yjw">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_SHHqQM2PEeSrt5YehnIlig" name="DepEvent" isAbstract="true">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_2cXNMHJPEeWA88Dv12-yjw" name="port">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2cXNMXJPEeWA88Dv12-yjw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2cXNMnJPEeWA88Dv12-yjw" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_NJ2RwHJQEeWA88Dv12-yjw" name="base_Transition" association="_NJ5VEHJQEeWA88Dv12-yjw">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_SAIEMHJQEeWA88Dv12-yjw" name="weight">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SAIEMXJQEeWA88Dv12-yjw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SAIEMnJQEeWA88Dv12-yjw" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_p7yZUM2PEeSrt5YehnIlig" name="InternalFault">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_W6WBUM2SEeSrt5YehnIlig" name="occurrence">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ye9yIDbIEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ye-ZMDbIEeW314N4GP8y1Q" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_rOvFwDbIEeW314N4GP8y1Q" name="base_Transition" association="_rOvs0DbIEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_uJCTsDbIEeW314N4GP8y1Q" name="weight">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zUwxsDbIEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zUxYwDbIEeW314N4GP8y1Q" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_rjZ3YM2PEeSrt5YehnIlig" name="InternalPropagation">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_5lwOoDbIEeW314N4GP8y1Q" name="base_Transition" association="_5lxcwDbIEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_9nxSkDbIEeW314N4GP8y1Q" name="externalFaults">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9nxSkTbIEeW314N4GP8y1Q" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AUbtIDbJEeW314N4GP8y1Q" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_GJRZkDbJEeW314N4GP8y1Q" name="delay">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GJRZkTbJEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GJRZkjbJEeW314N4GP8y1Q" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_JDw0wDbJEeW314N4GP8y1Q" name="weight">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JDw0wTbJEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JDw0wjbJEeW314N4GP8y1Q" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Enumeration" xmi:id="_wYnS0M2PEeSrt5YehnIlig" name="RecoveryKind">
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zWbHwM2PEeSrt5YehnIlig" name="Repair"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_0nAl4M2PEeSrt5YehnIlig" name="Compensation"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_1stCoM2PEeSrt5YehnIlig" name="ErrorDetection"/>
-          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_2s-M0M2PEeSrt5YehnIlig" name="Reconfiguration"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_rOvs0DbIEeW314N4GP8y1Q" name="E_InternalFault_Transition1" memberEnd="_rOvs0TbIEeW314N4GP8y1Q _rOvFwDbIEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_rOvs0TbIEeW314N4GP8y1Q" name="extension_InternalFault" type="_p7yZUM2PEeSrt5YehnIlig" aggregation="composite" association="_rOvs0DbIEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_5lxcwDbIEeW314N4GP8y1Q" name="E_InternalPropagation_Transition1" memberEnd="_5lxcwTbIEeW314N4GP8y1Q _5lwOoDbIEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_5lxcwTbIEeW314N4GP8y1Q" name="extension_InternalPropagation" type="_rjZ3YM2PEeSrt5YehnIlig" aggregation="composite" association="_5lxcwDbIEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_Q1MwwDbJEeW314N4GP8y1Q" name="E_Failure_Transition1" memberEnd="_Q1MwwTbJEeW314N4GP8y1Q _Q1MJsDbJEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Q1MwwTbJEeW314N4GP8y1Q" name="extension_Failure" type="_YSCJ0M2OEeSrt5YehnIlig" aggregation="composite" association="_Q1MwwDbJEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_ksxYIDbJEeW314N4GP8y1Q" name="NormalState">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_myE3wDbJEeW314N4GP8y1Q" name="base_State" association="_myFe0DbJEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_myFe0DbJEeW314N4GP8y1Q" name="E_NormalState_State1" memberEnd="_myFe0TbJEeW314N4GP8y1Q _myE3wDbJEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_myFe0TbJEeW314N4GP8y1Q" name="extension_NormalState" type="_ksxYIDbJEeW314N4GP8y1Q" aggregation="composite" association="_myFe0DbJEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_CJFsMDbKEeW314N4GP8y1Q" name="ErrorDetection">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_DtBkIDbKEeW314N4GP8y1Q" name="base_Transition" association="_DtBkITbKEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_EsjugDbKEeW314N4GP8y1Q" name="delay">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EsjugTbKEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EsjugjbKEeW314N4GP8y1Q" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_FRtqADbKEeW314N4GP8y1Q" name="successProbability">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FRtqATbKEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FRtqAjbKEeW314N4GP8y1Q" value="1"/>
-            <qualifier xmi:type="uml:Property" xmi:id="_R7lUkDbKEeW314N4GP8y1Q" name="successProbability">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R7lUkTbKEeW314N4GP8y1Q"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R7lUkjbKEeW314N4GP8y1Q" value="1"/>
-            </qualifier>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_WK20sHJPEeWA88Dv12-yjw" name="weight" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WK20sXJPEeWA88Dv12-yjw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WK20snJPEeWA88Dv12-yjw" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_WK20s3JPEeWA88Dv12-yjw">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_DtBkITbKEeW314N4GP8y1Q" name="E_ErrorDetection_Transition1" memberEnd="_DtBkIjbKEeW314N4GP8y1Q _DtBkIDbKEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DtBkIjbKEeW314N4GP8y1Q" name="extension_ErrorDetection" type="_CJFsMDbKEeW314N4GP8y1Q" aggregation="composite" association="_DtBkITbKEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_NzEnEDbKEeW314N4GP8y1Q" name="ErrorHandling">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Pxc_UDbKEeW314N4GP8y1Q" name="base_Transition" association="_PxdmYDbKEeW314N4GP8y1Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_QyIZMDbKEeW314N4GP8y1Q" name="delay">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QyIZMTbKEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QyIZMjbKEeW314N4GP8y1Q" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_TIo9kDbKEeW314N4GP8y1Q" name="successProbability">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TIo9kTbKEeW314N4GP8y1Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TIo9kjbKEeW314N4GP8y1Q" value="1"/>
-            <qualifier xmi:type="uml:Property" xmi:id="_TIo9kzbKEeW314N4GP8y1Q" name="successProbability">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TIo9lDbKEeW314N4GP8y1Q"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TIo9lTbKEeW314N4GP8y1Q" value="1"/>
-            </qualifier>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Whz8IHJPEeWA88Dv12-yjw" name="weight" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Whz8IXJPEeWA88Dv12-yjw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Whz8InJPEeWA88Dv12-yjw" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_Whz8I3JPEeWA88Dv12-yjw">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_PxdmYDbKEeW314N4GP8y1Q" name="E_ErrorHandling_Transition1" memberEnd="_PxdmYTbKEeW314N4GP8y1Q _Pxc_UDbKEeW314N4GP8y1Q">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_PxdmYTbKEeW314N4GP8y1Q" name="extension_ErrorHandling" type="_NzEnEDbKEeW314N4GP8y1Q" aggregation="composite" association="_PxdmYDbKEeW314N4GP8y1Q"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_i73wUDbLEeW5DJdhCjCHFw" name="FaultHandling">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_lT8a8DbLEeW5DJdhCjCHFw" name="base_Transition" association="_lT9pEDbLEeW5DJdhCjCHFw">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_nUn5QDbLEeW5DJdhCjCHFw" name="delay">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nUn5QTbLEeW5DJdhCjCHFw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nUn5QjbLEeW5DJdhCjCHFw" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_oRntADbLEeW5DJdhCjCHFw" name="successProbability">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oRntATbLEeW5DJdhCjCHFw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oRntAjbLEeW5DJdhCjCHFw" value="1"/>
-            <qualifier xmi:type="uml:Property" xmi:id="_oRntAzbLEeW5DJdhCjCHFw" name="successProbability">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oRntBDbLEeW5DJdhCjCHFw"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oRntBTbLEeW5DJdhCjCHFw" value="1"/>
-            </qualifier>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_W0_94HJPEeWA88Dv12-yjw" name="weight" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_W0_94XJPEeWA88Dv12-yjw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_W0_94nJPEeWA88Dv12-yjw" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_W0_943JPEeWA88Dv12-yjw">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_lT9pEDbLEeW5DJdhCjCHFw" name="E_FaultHandling_Transition1" memberEnd="_lT9pETbLEeW5DJdhCjCHFw _lT8a8DbLEeW5DJdhCjCHFw">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_lT9pETbLEeW5DJdhCjCHFw" name="extension_FaultHandling" type="_i73wUDbLEeW5DJdhCjCHFw" aggregation="composite" association="_lT9pEDbLEeW5DJdhCjCHFw"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_NJ5VEHJQEeWA88Dv12-yjw" name="E_DepEvent_Transition1" memberEnd="_NJ5VEXJQEeWA88Dv12-yjw _NJ2RwHJQEeWA88Dv12-yjw">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_NJ5VEXJQEeWA88Dv12-yjw" name="extension_DepEvent" type="_SHHqQM2PEeSrt5YehnIlig" aggregation="composite" association="_NJ5VEHJQEeWA88Dv12-yjw"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_fGBRkI_lEei_FpVxgbKIWA" name="Attack">
-          <generalization xmi:type="uml:Generalization" xmi:id="_yK_3AI_oEei_FpVxgbKIWA" general="_rjZ3YM2PEeSrt5YehnIlig"/>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_zcgpkI_lEei_FpVxgbKIWA" name="kind" type="_3I-eEI9SEei-PN4Wkk2WHg"/>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_7aX4AI_lEei_FpVxgbKIWA" name="severity">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_AxOA4I_mEei_FpVxgbKIWA" name="likelihood">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_3VdJsI_oEei_FpVxgbKIWA" name="vulnerability" type="_FxEmEI_mEei_FpVxgbKIWA"/>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="__pBzUI_xEei_FpVxgbKIWA" name="threat" type="_yZB9II9SEei-PN4Wkk2WHg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_FxEmEI_mEei_FpVxgbKIWA" name="Vulnerability">
-          <generalization xmi:type="uml:Generalization" xmi:id="_1zPwEI_oEei_FpVxgbKIWA" general="_p7yZUM2PEeSrt5YehnIlig"/>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_ITyacI_mEei_FpVxgbKIWA" name="kind" type="_1D19kI9SEei-PN4Wkk2WHg"/>
-        </packagedElement>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Profile" xmi:id="_kJICMFiIEeGbwa2cK55fPQ" name="MitigationMeans" URI="http://CHESS.Dependability/MitigationMeans" metaclassReference="_YoYtcFiJEeG7ipvuc3Lqcg">
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_YoYtcFiJEeG7ipvuc3Lqcg" alias="Connector">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-        </elementImport>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_VD3d0FiJEeG7ipvuc3Lqcg" name="TransmissionWithProtocol">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_ZSzjcFiJEeG7ipvuc3Lqcg" name="base_Connector" association="_ZS0xkFiJEeG7ipvuc3Lqcg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_bnimMFiJEeG7ipvuc3Lqcg" name="CRC">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_cicIMFiJEeG7ipvuc3Lqcg" name="UseSeqID">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_ZS0xkFiJEeG7ipvuc3Lqcg" name="E_TransmissionWithProtocol_Connector0" memberEnd="_ZS0xkViJEeG7ipvuc3Lqcg _ZSzjcFiJEeG7ipvuc3Lqcg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ZS0xkViJEeG7ipvuc3Lqcg" name="extension_TransmissionWithProtocol" type="_VD3d0FiJEeG7ipvuc3Lqcg" aggregation="composite" association="_ZS0xkFiJEeG7ipvuc3Lqcg"/>
-        </packagedElement>
-      </packagedElement>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Package" xmi:id="_ioSQkMGMEd--atLXXafOiQ" name="Predictability">
-      <packagedElement xmi:type="uml:Profile" xmi:id="_nyQ7MLwzEd-CDNLmLgazUQ" name="DeploymentConfiguration" URI="http://CHESS/Predictability/DeploymentConfiguration">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JScF28GbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <contents xmi:type="ecore:EPackage" xmi:id="_S2Uq0ce6Ed-7etIj5eTw0Q" name="DeploymentConfiguration" nsURI="http://CHESS/Predictability/DeploymentConfiguration" nsPrefix="DeploymentConfiguration">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZlbnJse6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnJ8e6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnKMe6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnKce6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnKse6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnK8e6Ed-7etIj5eTw0Q" key="Author" value=""/>
-            </eAnnotations>
-          </contents>
-        </eAnnotations>
-        <packagedElement xmi:type="uml:Profile" xmi:id="_1TsX8MCpEd-RT45s8cwWMg" name="HardwareBaseline" URI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" metaclassReference="_6F2tEKlhEeC6PYeyk6yc0A _Y4qjsKu3EeCQLtqIc6Ik6Q _wlZ-cKu6EeCQLtqIc6Ik6Q _4T7iMCZBEeGlQNX6ViU5DA">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Je820MGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-            <contents xmi:type="ecore:EPackage" xmi:id="_m5QdsKvEEeCQLtqIc6Ik6Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-NPIKvEEeCQLtqIc6Ik6Q" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPIavEEeCQLtqIc6Ik6Q" key="Version" value="0.1.13"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPIqvEEeCQLtqIc6Ik6Q" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPI6vEEeCQLtqIc6Ik6Q" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPJKvEEeCQLtqIc6Ik6Q" key="Date" value="2011-07-11"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPJavEEeCQLtqIc6Ik6Q" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QdsavEEeCQLtqIc6Ik6Q" name="CH_HwProcessor">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QdsqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5Qds6vEEeCQLtqIc6Ik6Q" name="dataType" ordered="false" lowerBound="1" eType="_m5QduqvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdtavEEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_m5QdxqvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5u-0KvEEeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_m5u-0qvEEeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QduqvEEeCQLtqIc6Ik6Q" name="HWDataType">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5Qdu6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QdvKvEEeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdvqvEEeCQLtqIc6Ik6Q" name="bitLength" ordered="false">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdwKvEEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_m5QdxqvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdwqvEEeCQLtqIc6Ik6Q" name="executionCylces" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdxKvEEeCQLtqIc6Ik6Q" name="type" ordered="false" lowerBound="1" eType="_m5QdzavEEeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QdxqvEEeCQLtqIc6Ik6Q" name="BasicOperation">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5Qdx6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QdyKvEEeCQLtqIc6Ik6Q" name="add"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QdyavEEeCQLtqIc6Ik6Q" name="mul" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QdyqvEEeCQLtqIc6Ik6Q" name="div" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qdy6vEEeCQLtqIc6Ik6Q" name="mod" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QdzKvEEeCQLtqIc6Ik6Q" name="shift" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QdzavEEeCQLtqIc6Ik6Q" name="BasicDataType">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QdzqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qdz6vEEeCQLtqIc6Ik6Q" name="Signed"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qd0KvEEeCQLtqIc6Ik6Q" name="Integer" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qd0avEEeCQLtqIc6Ik6Q" name="Fixed_Point" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qd0qvEEeCQLtqIc6Ik6Q" name="Float" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m5QeJqvEEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeJ6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QeKKvEEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeKavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeKqvEEeCQLtqIc6Ik6Q" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeK6vEEeCQLtqIc6Ik6Q" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeLKvEEeCQLtqIc6Ik6Q" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeLavEEeCQLtqIc6Ik6Q" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QeLqvEEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeL6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeMKvEEeCQLtqIc6Ik6Q" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeMavEEeCQLtqIc6Ik6Q" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeMqvEEeCQLtqIc6Ik6Q" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeM6vEEeCQLtqIc6Ik6Q" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeNKvEEeCQLtqIc6Ik6Q" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeNavEEeCQLtqIc6Ik6Q" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeNqvEEeCQLtqIc6Ik6Q" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeN6vEEeCQLtqIc6Ik6Q" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeOKvEEeCQLtqIc6Ik6Q" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QeOavEEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeOqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeO6vEEeCQLtqIc6Ik6Q" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QePKvEEeCQLtqIc6Ik6Q" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m5QePavEEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QePqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m5QeP6vEEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeQKvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeQavEEeCQLtqIc6Ik6Q" name="DataTypeAllocate">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeQqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeQ6vEEeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1" eType="_m5QeSqvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeRavEEeCQLtqIc6Ik6Q" name="hwDataType" ordered="false" lowerBound="1" eType="_m5QduqvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m7f5YKvEEeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_m5u-0qvEEeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeSqvEEeCQLtqIc6Ik6Q" name="SWDataType" abstract="true">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeS6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeTKvEEeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeTqvEEeCQLtqIc6Ik6Q" name="bitSize" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeUKvEEeCQLtqIc6Ik6Q" name="ComputeComplexity">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeUavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeUqvEEeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1" eType="_m5QeSqvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeVKvEEeCQLtqIc6Ik6Q" name="opCount" ordered="false" lowerBound="1" upperBound="-1" eType="_m5QeWKvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeVqvEEeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeWKvEEeCQLtqIc6Ik6Q" name="OperationCount">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeWavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeWqvEEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_m5QdxqvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeXKvEEeCQLtqIc6Ik6Q" name="count" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeXqvEEeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeYKvEEeCQLtqIc6Ik6Q" name="CHControlFlow">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeYavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeYqvEEeCQLtqIc6Ik6Q" name="base_ControlFlow" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ControlFlow"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeZKvEEeCQLtqIc6Ik6Q" name="rep" ordered="false" eType="_m9kV8KvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeZqvEEeCQLtqIc6Ik6Q" name="prob" ordered="false" eType="_m9kV8KvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeaKvEEeCQLtqIc6Ik6Q" name="order" ordered="false" eType="_m9kV8KvEEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeaqvEEeCQLtqIc6Ik6Q" name="compComplex" ordered="false" upperBound="-1" eType="_m5QeUKvEEeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QebKvEEeCQLtqIc6Ik6Q" name="FloatSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QebavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QebqvEEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QecavEEeCQLtqIc6Ik6Q" name="FixedSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QecqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5Qec6vEEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QedqvEEeCQLtqIc6Ik6Q" name="IntegerSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5Qed6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeeKvEEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5Qee6vEEeCQLtqIc6Ik6Q" name="CharSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QefKvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QefavEEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QegKvEEeCQLtqIc6Ik6Q" name="BooleanSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QegavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m5u-0qvEEeCQLtqIc6Ik6Q" name="NFP_Integer" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5u-06vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m9kV8KvEEeCQLtqIc6Ik6Q" name="Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m9kV8avEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-            <contents xmi:type="ecore:EPackage" xmi:id="_dI9lIKvAEeCQLtqIc6Ik6Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dNYyIKvAEeCQLtqIc6Ik6Q" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyIavAEeCQLtqIc6Ik6Q" key="Version" value="0.1.12"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyIqvAEeCQLtqIc6Ik6Q" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyI6vAEeCQLtqIc6Ik6Q" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyJKvAEeCQLtqIc6Ik6Q" key="Date" value="2011-07-11"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyJavAEeCQLtqIc6Ik6Q" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI9lIavAEeCQLtqIc6Ik6Q" name="CH_HwProcessor">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lIqvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9lI6vAEeCQLtqIc6Ik6Q" name="dataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9lJavAEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_dI9lKqvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dJMOoKvAEeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_dJMOoqvAEeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI9lKqvAEeCQLtqIc6Ik6Q" name="BasicOperation">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lK6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lLKvAEeCQLtqIc6Ik6Q" name="add"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lLavAEeCQLtqIc6Ik6Q" name="mul" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lLqvAEeCQLtqIc6Ik6Q" name="div" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lL6vAEeCQLtqIc6Ik6Q" name="mod" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lMKvAEeCQLtqIc6Ik6Q" name="shift" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dI9lhKvAEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lhavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI9lhqvAEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lh6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9liKvAEeCQLtqIc6Ik6Q" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9liavAEeCQLtqIc6Ik6Q" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9liqvAEeCQLtqIc6Ik6Q" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9li6vAEeCQLtqIc6Ik6Q" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI9ljKvAEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9ljavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9ljqvAEeCQLtqIc6Ik6Q" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lj6vAEeCQLtqIc6Ik6Q" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lkKvAEeCQLtqIc6Ik6Q" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lkavAEeCQLtqIc6Ik6Q" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lkqvAEeCQLtqIc6Ik6Q" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lk6vAEeCQLtqIc6Ik6Q" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9llKvAEeCQLtqIc6Ik6Q" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9llavAEeCQLtqIc6Ik6Q" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9llqvAEeCQLtqIc6Ik6Q" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI9ll6vAEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lmKvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lmavAEeCQLtqIc6Ik6Q" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lmqvAEeCQLtqIc6Ik6Q" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dI9lm6vAEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lnKvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dI9lnavAEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lnqvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI9ln6vAEeCQLtqIc6Ik6Q" name="DataTypeAllocate">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9loKvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI9loavAEeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1" eType="_dI9lqKvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI9lo6vAEeCQLtqIc6Ik6Q" name="hwDataType" ordered="false" lowerBound="1" eType="_dI9lrqvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dKSa0KvAEeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_dJMOoqvAEeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI9lqKvAEeCQLtqIc6Ik6Q" name="SWDataType" abstract="true">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lqavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI9lqqvAEeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9lrKvAEeCQLtqIc6Ik6Q" name="bitSize" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI9lrqvAEeCQLtqIc6Ik6Q" name="HWDateType">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lr6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI9lsKvAEeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9lsqvAEeCQLtqIc6Ik6Q" name="bitLength" ordered="false">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9ltKvAEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_dI9lKqvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9ltqvAEeCQLtqIc6Ik6Q" name="executionCylces" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MMKvAEeCQLtqIc6Ik6Q" name="type" ordered="false" lowerBound="1" eType="_dI-MMqvAEeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI-MMqvAEeCQLtqIc6Ik6Q" name="BasicDataType">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MM6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI-MNKvAEeCQLtqIc6Ik6Q" name="Signed"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI-MNavAEeCQLtqIc6Ik6Q" name="Integer" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI-MNqvAEeCQLtqIc6Ik6Q" name="Fixed_Point" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI-MN6vAEeCQLtqIc6Ik6Q" name="Float" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MOKvAEeCQLtqIc6Ik6Q" name="ComputeComplexity">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MOavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MOqvAEeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1" eType="_dI9lqKvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MPKvAEeCQLtqIc6Ik6Q" name="opCount" ordered="false" lowerBound="1" upperBound="-1" eType="_dI-MQKvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MPqvAEeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MQKvAEeCQLtqIc6Ik6Q" name="OperationCount">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MQavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MQqvAEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_dI9lKqvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MRKvAEeCQLtqIc6Ik6Q" name="count" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MRqvAEeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MSKvAEeCQLtqIc6Ik6Q" name="CHControlFlow">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MSavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MSqvAEeCQLtqIc6Ik6Q" name="base_ControlFlow" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ControlFlow"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MTKvAEeCQLtqIc6Ik6Q" name="rep" ordered="false" eType="_dMyVMKvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MTqvAEeCQLtqIc6Ik6Q" name="prob" ordered="false" eType="_dMyVMKvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MUKvAEeCQLtqIc6Ik6Q" name="order" ordered="false" eType="_dMyVMKvAEeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MUqvAEeCQLtqIc6Ik6Q" name="compComplex" ordered="false" upperBound="-1" eType="_dI-MOKvAEeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MVKvAEeCQLtqIc6Ik6Q" name="FloatSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MVavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MVqvAEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MWavAEeCQLtqIc6Ik6Q" name="FixedSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MWqvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MW6vAEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MXqvAEeCQLtqIc6Ik6Q" name="IntegerSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MX6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MYKvAEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MY6vAEeCQLtqIc6Ik6Q" name="CharSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MZKvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MZavAEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MaKvAEeCQLtqIc6Ik6Q" name="BooleanSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MaavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dJMOoqvAEeCQLtqIc6Ik6Q" name="NFP_Integer" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dJMOo6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dMyVMKvAEeCQLtqIc6Ik6Q" name="Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dMyVMavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-            <contents xmi:type="ecore:EPackage" xmi:id="_307gMKu6EeCQLtqIc6Ik6Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_359KIKu6EeCQLtqIc6Ik6Q" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KIau6EeCQLtqIc6Ik6Q" key="Version" value="0.1.11"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KIqu6EeCQLtqIc6Ik6Q" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KI6u6EeCQLtqIc6Ik6Q" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KJKu6EeCQLtqIc6Ik6Q" key="Date" value="2011-07-11"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KJau6EeCQLtqIc6Ik6Q" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_307gMau6EeCQLtqIc6Ik6Q" name="CH_HwProcessor">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_307gMqu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_307gM6u6EeCQLtqIc6Ik6Q" name="dataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_307gNau6EeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_307gOqu6EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_31KJsKu6EeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_31KJsqu6EeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_307gOqu6EeCQLtqIc6Ik6Q" name="CHESS_Predictability_DeploymentConfiguration_HwDataTypes_HwOperation">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_307gO6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gPKu6EeCQLtqIc6Ik6Q" name="add"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gPau6EeCQLtqIc6Ik6Q" name="mul" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gPqu6EeCQLtqIc6Ik6Q" name="div" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gP6u6EeCQLtqIc6Ik6Q" name="mod" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gQKu6EeCQLtqIc6Ik6Q" name="shift" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_307glKu6EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_307glau6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_308HQKu6EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HQau6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HQqu6EeCQLtqIc6Ik6Q" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HQ6u6EeCQLtqIc6Ik6Q" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HRKu6EeCQLtqIc6Ik6Q" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HRau6EeCQLtqIc6Ik6Q" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_308HRqu6EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HR6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HSKu6EeCQLtqIc6Ik6Q" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HSau6EeCQLtqIc6Ik6Q" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HSqu6EeCQLtqIc6Ik6Q" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HS6u6EeCQLtqIc6Ik6Q" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HTKu6EeCQLtqIc6Ik6Q" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HTau6EeCQLtqIc6Ik6Q" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HTqu6EeCQLtqIc6Ik6Q" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HT6u6EeCQLtqIc6Ik6Q" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HUKu6EeCQLtqIc6Ik6Q" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_308HUau6EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HUqu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HU6u6EeCQLtqIc6Ik6Q" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HVKu6EeCQLtqIc6Ik6Q" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_308HVau6EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HVqu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_308HV6u6EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HWKu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308HWau6EeCQLtqIc6Ik6Q" name="DataTypeAllocate">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HWqu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_308HW6u6EeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_308HXau6EeCQLtqIc6Ik6Q" name="hwDataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_313UUKu6EeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_31KJsqu6EeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308HYqu6EeCQLtqIc6Ik6Q" name="ComputeComplexity">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HY6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_308HZKu6EeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HZqu6EeCQLtqIc6Ik6Q" name="opCount" ordered="false" lowerBound="1" upperBound="-1" eType="_308Haqu6EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HaKu6EeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308Haqu6EeCQLtqIc6Ik6Q" name="OperationCount">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308Ha6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HbKu6EeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_308Hcqu6EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_308Hbqu6EeCQLtqIc6Ik6Q" name="count" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HcKu6EeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308Hcqu6EeCQLtqIc6Ik6Q" name="SWDataType">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308Hc6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HdKu6EeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308Hdqu6EeCQLtqIc6Ik6Q" name="CHControlFlow">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308Hd6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HeKu6EeCQLtqIc6Ik6Q" name="base_ControlFlow" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ControlFlow"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HgKu6EeCQLtqIc6Ik6Q" name="compComplex" ordered="false" upperBound="-1" eType="_308HYqu6EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_33nAwKu6EeCQLtqIc6Ik6Q" name="rep" ordered="false" eType="_33nn0Ku6EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_339mEKu6EeCQLtqIc6Ik6Q" name="prob" ordered="false" eType="_33nn0Ku6EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_34tM8Ku6EeCQLtqIc6Ik6Q" name="order" ordered="false" eType="_33nn0Ku6EeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_31KJsqu6EeCQLtqIc6Ik6Q" name="NFP_Integer" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_31KJs6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_33nn0Ku6EeCQLtqIc6Ik6Q" name="NFP_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_33nn0au6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-            <contents xmi:type="ecore:EPackage" xmi:id="_rbxdEKu4EeCQLtqIc6Ik6Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rgOfQKu4EeCQLtqIc6Ik6Q" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfQau4EeCQLtqIc6Ik6Q" key="Version" value="0.1.10"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfQqu4EeCQLtqIc6Ik6Q" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfQ6u4EeCQLtqIc6Ik6Q" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfRKu4EeCQLtqIc6Ik6Q" key="Date" value="2011-07-11"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfRau4EeCQLtqIc6Ik6Q" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbxdEau4EeCQLtqIc6Ik6Q" name="CH_HwProcessor">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbxdEqu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbxdE6u4EeCQLtqIc6Ik6Q" name="dataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbxdFau4EeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_rbxdGqu4EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rcCi0Ku4EeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_rcDJ4Ku4EeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_rbxdGqu4EeCQLtqIc6Ik6Q" name="CHESS_Predictability_DeploymentConfiguration_HwDataTypes_HwOperation">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbxdG6u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdHKu4EeCQLtqIc6Ik6Q" name="add"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdHau4EeCQLtqIc6Ik6Q" name="mul" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdHqu4EeCQLtqIc6Ik6Q" name="div" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdH6u4EeCQLtqIc6Ik6Q" name="mod" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdIKu4EeCQLtqIc6Ik6Q" name="shift" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_rbyET6u4EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEUKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_rbyEUau4EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEUqu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEU6u4EeCQLtqIc6Ik6Q" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEVKu4EeCQLtqIc6Ik6Q" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEVau4EeCQLtqIc6Ik6Q" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEVqu4EeCQLtqIc6Ik6Q" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_rbyEV6u4EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEWKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEWau4EeCQLtqIc6Ik6Q" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEWqu4EeCQLtqIc6Ik6Q" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEW6u4EeCQLtqIc6Ik6Q" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEXKu4EeCQLtqIc6Ik6Q" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEXau4EeCQLtqIc6Ik6Q" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEXqu4EeCQLtqIc6Ik6Q" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEX6u4EeCQLtqIc6Ik6Q" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEYKu4EeCQLtqIc6Ik6Q" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEYau4EeCQLtqIc6Ik6Q" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_rbyEYqu4EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEY6u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEZKu4EeCQLtqIc6Ik6Q" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEZau4EeCQLtqIc6Ik6Q" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_rbyEZqu4EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEZ6u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_rbyEaKu4EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEaau4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbyEaqu4EeCQLtqIc6Ik6Q" name="DataTypeAllocate">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEa6u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEbKu4EeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEbqu4EeCQLtqIc6Ik6Q" name="hwDataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rc10EKu4EeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_rcDJ4Ku4EeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbyEc6u4EeCQLtqIc6Ik6Q" name="ComputeComplexity">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEdKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEdau4EeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEd6u4EeCQLtqIc6Ik6Q" name="opCount" ordered="false" lowerBound="1" upperBound="-1" eType="_rbyEe6u4EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEeau4EeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbyEe6u4EeCQLtqIc6Ik6Q" name="OperationCount">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEfKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEfau4EeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEf6u4EeCQLtqIc6Ik6Q" name="count" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEgau4EeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbyEg6u4EeCQLtqIc6Ik6Q" name="CHControlFlow">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEhKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEhau4EeCQLtqIc6Ik6Q" name="base_ControlFlow" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ControlFlow"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEjau4EeCQLtqIc6Ik6Q" name="compComplex" ordered="false" upperBound="-1" eType="_rbyEc6u4EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_reMe8Ku4EeCQLtqIc6Ik6Q" name="rep" ordered="false" eType="_reMe8qu4EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rejEQKu4EeCQLtqIc6Ik6Q" name="prob" ordered="false" eType="_reMe8qu4EeCQLtqIc6Ik6Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_re_JIKu4EeCQLtqIc6Ik6Q" name="order" ordered="false" eType="_reMe8qu4EeCQLtqIc6Ik6Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_rcDJ4Ku4EeCQLtqIc6Ik6Q" name="NFP_Integer" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rcDJ4au4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_reMe8qu4EeCQLtqIc6Ik6Q" name="NFP_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_reMe86u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-            <contents xmi:type="ecore:EPackage" xmi:id="_8RPmkKlhEeC6PYeyk6yc0A" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8TdNEKlhEeC6PYeyk6yc0A" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNEalhEeC6PYeyk6yc0A" key="Version" value="0.1.9"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNEqlhEeC6PYeyk6yc0A" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNE6lhEeC6PYeyk6yc0A" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNFKlhEeC6PYeyk6yc0A" key="Date" value="2011-07-08"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNFalhEeC6PYeyk6yc0A" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8RPmkalhEeC6PYeyk6yc0A" name="CH_HwProcessor">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPmkqlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPmk6lhEeC6PYeyk6yc0A" name="dataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPmlalhEeC6PYeyk6yc0A" name="operation" ordered="false" lowerBound="1" eType="_8RPmmqlhEeC6PYeyk6yc0A"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RfeMKlhEeC6PYeyk6yc0A" name="executionCycles" ordered="false" lowerBound="1" eType="_8RfeMqlhEeC6PYeyk6yc0A"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8RPmmqlhEeC6PYeyk6yc0A" name="CHESS_Predictability_DeploymentConfiguration_HwDataTypes_HwOperation">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPmm6lhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmnKlhEeC6PYeyk6yc0A" name="add"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmnalhEeC6PYeyk6yc0A" name="mul" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmnqlhEeC6PYeyk6yc0A" name="div" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmn6lhEeC6PYeyk6yc0A" name="mod" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmoKlhEeC6PYeyk6yc0A" name="shift" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8RPm9KlhEeC6PYeyk6yc0A" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPm9alhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8RPm9qlhEeC6PYeyk6yc0A" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPm96lhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm-KlhEeC6PYeyk6yc0A" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm-alhEeC6PYeyk6yc0A" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm-qlhEeC6PYeyk6yc0A" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm-6lhEeC6PYeyk6yc0A" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8RPm_KlhEeC6PYeyk6yc0A" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPm_alhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm_qlhEeC6PYeyk6yc0A" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm_6lhEeC6PYeyk6yc0A" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnAKlhEeC6PYeyk6yc0A" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnAalhEeC6PYeyk6yc0A" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnAqlhEeC6PYeyk6yc0A" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnA6lhEeC6PYeyk6yc0A" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnBKlhEeC6PYeyk6yc0A" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnBalhEeC6PYeyk6yc0A" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnBqlhEeC6PYeyk6yc0A" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8RPnB6lhEeC6PYeyk6yc0A" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnCKlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnCalhEeC6PYeyk6yc0A" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnCqlhEeC6PYeyk6yc0A" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8RPnC6lhEeC6PYeyk6yc0A" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnDKlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8RPnDalhEeC6PYeyk6yc0A" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnDqlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8RPnD6lhEeC6PYeyk6yc0A" name="DataTypeAllocate">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnEKlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnEalhEeC6PYeyk6yc0A" name="swDataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnE6lhEeC6PYeyk6yc0A" name="hwDataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8SdukKlhEeC6PYeyk6yc0A" name="executionCycles" ordered="false" lowerBound="1" eType="_8RfeMqlhEeC6PYeyk6yc0A"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8RPnGKlhEeC6PYeyk6yc0A" name="ComputeComplexity">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnGalhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnGqlhEeC6PYeyk6yc0A" name="swDataType" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnHKlhEeC6PYeyk6yc0A" name="opCount" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8RPnHqlhEeC6PYeyk6yc0A" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8RPnIKlhEeC6PYeyk6yc0A" name="OperationCount">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnIalhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnIqlhEeC6PYeyk6yc0A" name="operation" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnJKlhEeC6PYeyk6yc0A" name="count" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-                </eStructuralFeatures>
-                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8RPnJqlhEeC6PYeyk6yc0A" name="base_Class" ordered="false" lowerBound="1">
-                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-                </eStructuralFeatures>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8RfeMqlhEeC6PYeyk6yc0A" name="NFP_Integer" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RfeM6lhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-            </contents>
-            <contents xmi:type="ecore:EPackage" xmi:id="_TUueEMe6Ed-7etIj5eTw0Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aDrpYMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpYce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpYse6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpY8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpZMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpZce6Ed-7etIj5eTw0Q" key="Author" value=""/>
-              </eAnnotations>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_TUueEce6Ed-7etIj5eTw0Q" name="CH_HwProcessor">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUueEse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_1fQ1mpi4Ed-m0Oaexd_lJA"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_TUueFce6Ed-7etIj5eTw0Q" name="operation" ordered="false" lowerBound="1" eType="_TU4Qlse6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Zmn58Me6Ed-7etIj5eTw0Q" name="dataType" ordered="false" lowerBound="1" eType="_Zmn58se6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZpAfkMe6Ed-7etIj5eTw0Q" name="executionCycles" ordered="false" lowerBound="1" eType="_ZpAfkse6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TUuer8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuesMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TUuesce6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuesse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUues8e6Ed-7etIj5eTw0Q" name="est"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuetMe6Ed-7etIj5eTw0Q" name="meas" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuetce6Ed-7etIj5eTw0Q" name="calc" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuetse6Ed-7etIj5eTw0Q" name="req" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TUuet8e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUueuMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUueuce6Ed-7etIj5eTw0Q" name="max"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUueuse6Ed-7etIj5eTw0Q" name="min" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUueu8e6Ed-7etIj5eTw0Q" name="mean" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuevMe6Ed-7etIj5eTw0Q" name="range" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuevce6Ed-7etIj5eTw0Q" name="percent" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuevse6Ed-7etIj5eTw0Q" name="distrib" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuev8e6Ed-7etIj5eTw0Q" name="determ" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuewMe6Ed-7etIj5eTw0Q" name="other" value="7"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuewce6Ed-7etIj5eTw0Q" name="variance" value="8"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TUuewse6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuew8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuexMe6Ed-7etIj5eTw0Q" name="incr"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuexce6Ed-7etIj5eTw0Q" name="decr" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TUuexse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuex8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TUueyMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUueyce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TUueyse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuey8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4PEse6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_SchedPolicyKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4PE8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_4GfMYBFaEdyUJeMeN__D-A"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PFMe6Ed-7etIj5eTw0Q" name="EarliestDeadlineFirst"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PFce6Ed-7etIj5eTw0Q" name="FIFO" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PFse6Ed-7etIj5eTw0Q" name="FixedPriority" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PF8e6Ed-7etIj5eTw0Q" name="LeastLaxityFirst" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PGMe6Ed-7etIj5eTw0Q" name="RoundRobin" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PGce6Ed-7etIj5eTw0Q" name="TimeTableDriven" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PGse6Ed-7etIj5eTw0Q" name="Undef" value="6"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PG8e6Ed-7etIj5eTw0Q" name="Other" value="7"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TU4PHMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4PHce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4PKce6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_ProtectProtocolKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4PKse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HkE7wBFbEdyUJeMeN__D-A"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PK8e6Ed-7etIj5eTw0Q" name="FIFO"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PLMe6Ed-7etIj5eTw0Q" name="NoPreemption" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PLce6Ed-7etIj5eTw0Q" name="PriorityCeiling" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PLse6Ed-7etIj5eTw0Q" name="PriorityInheritance" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PL8e6Ed-7etIj5eTw0Q" name="StackBased" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PMMe6Ed-7etIj5eTw0Q" name="Undef" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PMce6Ed-7etIj5eTw0Q" name="Other" value="6"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4PWMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4PWce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PWse6Ed-7etIj5eTw0Q" name="s"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PW8e6Ed-7etIj5eTw0Q" name="tick" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PXMe6Ed-7etIj5eTw0Q" name="ms" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PXce6Ed-7etIj5eTw0Q" name="us" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PXse6Ed-7etIj5eTw0Q" name="min" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PX8e6Ed-7etIj5eTw0Q" name="hrs" value="5"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PYMe6Ed-7etIj5eTw0Q" name="day" value="6"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4Pece6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_PeriodicServerKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Pese6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UP5HEBFbEdyUJeMeN__D-A"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Pe8e6Ed-7etIj5eTw0Q" name="Sporadic"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PfMe6Ed-7etIj5eTw0Q" name="Deferrable" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Pfce6Ed-7etIj5eTw0Q" name="Undef" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Pfse6Ed-7etIj5eTw0Q" name="Other" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4PtMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_PowerUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Ptce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ijhHUA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Ptse6Ed-7etIj5eTw0Q" name="W"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Pt8e6Ed-7etIj5eTw0Q" name="mW" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PuMe6Ed-7etIj5eTw0Q" name="KW" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4P3se6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_TransmModeKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4P38e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_wBn7gBEBEdyx6M3BlUjlCQ"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P4Me6Ed-7etIj5eTw0Q" name="simplex"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P4ce6Ed-7etIj5eTw0Q" name="halfDuplex" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P4se6Ed-7etIj5eTw0Q" name="fullDuplex" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4P6se6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataTxRateUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4P68e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_DyNg0A4zEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P7Me6Ed-7etIj5eTw0Q" name="b_per_s"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P7ce6Ed-7etIj5eTw0Q" name="Kb_per_s" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P7se6Ed-7etIj5eTw0Q" name="Mb_per_s" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4P-8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4P_Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P_ce6Ed-7etIj5eTw0Q" name="Hz"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P_se6Ed-7etIj5eTw0Q" name="KHz" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P_8e6Ed-7etIj5eTw0Q" name="MHz" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QAMe6Ed-7etIj5eTw0Q" name="GHz" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QAce6Ed-7etIj5eTw0Q" name="rpm" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QDce6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QDse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QD8e6Ed-7etIj5eTw0Q" name="bit"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QEMe6Ed-7etIj5eTw0Q" name="Byte" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QEce6Ed-7etIj5eTw0Q" name="KB" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QEse6Ed-7etIj5eTw0Q" name="MB" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QE8e6Ed-7etIj5eTw0Q" name="GB" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TU4QGce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_UnlimitedNatural" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_UnlimitedNatural">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QGse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_DBKa8AnsEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QJMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HRM_HwLogical_HwComputing_ISA_Type">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QJce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_HVDSgBJyEdygQ5HMNSpiZw"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QJse6Ed-7etIj5eTw0Q" name="RISC"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QJ8e6Ed-7etIj5eTw0Q" name="CISC" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QKMe6Ed-7etIj5eTw0Q" name="VLIW" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QKce6Ed-7etIj5eTw0Q" name="SIMD" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QKse6Ed-7etIj5eTw0Q" name="other" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QK8e6Ed-7etIj5eTw0Q" name="undef" value="5"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QVce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HRM_HwLogical_HwStorage_HwMemory_CacheType">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QVse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_xj2TMBJ1Edy4d8Ako8RhiQ"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QV8e6Ed-7etIj5eTw0Q" name="data"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QWMe6Ed-7etIj5eTw0Q" name="instruction" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QWce6Ed-7etIj5eTw0Q" name="unified" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QWse6Ed-7etIj5eTw0Q" name="other" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QW8e6Ed-7etIj5eTw0Q" name="undef" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QZMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HRM_HwLogical_HwStorage_HwMemory_Repl_Policy">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QZce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_jpkJoBJ1Edy4d8Ako8RhiQ"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QZse6Ed-7etIj5eTw0Q" name="LRU"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QZ8e6Ed-7etIj5eTw0Q" name="NFU" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QaMe6Ed-7etIj5eTw0Q" name="FIFO" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qace6Ed-7etIj5eTw0Q" name="random" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qase6Ed-7etIj5eTw0Q" name="other" value="4"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qa8e6Ed-7etIj5eTw0Q" name="undef" value="5"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QbMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HRM_HwLogical_HwStorage_HwMemory_WritePolicy">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qbce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_qkeGQBJ1Edy4d8Ako8RhiQ"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qbse6Ed-7etIj5eTw0Q" name="writeBack"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qb8e6Ed-7etIj5eTw0Q" name="writeThrough" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QcMe6Ed-7etIj5eTw0Q" name="other" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qcce6Ed-7etIj5eTw0Q" name="undef" value="3"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4Qlse6Ed-7etIj5eTw0Q" name="CHESSML_Predictability_DeploymentConfiguration_HwDataTypes_HwOperation">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Ql8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QmMe6Ed-7etIj5eTw0Q" name="add"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qmce6Ed-7etIj5eTw0Q" name="mul" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qmse6Ed-7etIj5eTw0Q" name="div" value="2"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qm8e6Ed-7etIj5eTw0Q" name="mod" value="3"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QnMe6Ed-7etIj5eTw0Q" name="shift" value="4"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EClass" xmi:id="_TU4Qnce6Ed-7etIj5eTw0Q" name="DataTypeAllocate">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qnse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-                <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_b7sgXLG3Ed-tmN4hwNCxXQ"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Z10zkMe6Ed-7etIj5eTw0Q" name="swDataType" ordered="false" lowerBound="1" eType="_Z10zkse6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Z4NZMMe6Ed-7etIj5eTw0Q" name="hwDataType" ordered="false" lowerBound="1" eType="_Zmn58se6Ed-7etIj5eTw0Q"/>
-                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Z7evoMe6Ed-7etIj5eTw0Q" name="executionCycles" ordered="false" lowerBound="1" eType="_ZpAfkse6Ed-7etIj5eTw0Q"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QsMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_Alloc_AllocationKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qsce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VxKdYBHbEdyWC5IKDhzksw"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qsse6Ed-7etIj5eTw0Q" name="structural"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qs8e6Ed-7etIj5eTw0Q" name="behavioral" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QtMe6Ed-7etIj5eTw0Q" name="hybrid" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4Qtce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_Alloc_AllocationNature">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qtse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VYSDUBHbEdyWC5IKDhzksw"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qt8e6Ed-7etIj5eTw0Q" name="spatialDistribution"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QuMe6Ed-7etIj5eTw0Q" name="timeScheduling" value="1"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4Qwce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_NFPs_ConstraintKind">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qwse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ZCtm0A4vEdysTsAUPnp57Q"/>
-                </eAnnotations>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qw8e6Ed-7etIj5eTw0Q" name="required"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QxMe6Ed-7etIj5eTw0Q" name="offered" value="1"/>
-                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qxce6Ed-7etIj5eTw0Q" name="contract" value="2"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Zmn58se6Ed-7etIj5eTw0Q" name="HwDataType" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zmn588e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZpAfkse6Ed-7etIj5eTw0Q" name="NFP_Integer" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZpAfk8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Zq8ZQMe6Ed-7etIj5eTw0Q" name="Boolean" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq8ZQce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYAce6Ed-7etIj5eTw0Q" name="NFP_Real" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYAse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYBMe6Ed-7etIj5eTw0Q" name="NFP_String" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYBce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYB8e6Ed-7etIj5eTw0Q" name="NFP_Frequency" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYCMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYCse6Ed-7etIj5eTw0Q" name="NFP_FrequencyInterval" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYC8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_DaoHAB14EdyUAqqkOL30sg"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYDce6Ed-7etIj5eTw0Q" name="NFP_DataSize" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYDse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYEMe6Ed-7etIj5eTw0Q" name="NFP_Natural" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYEce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Asy1gBFIEdyUJeMeN__D-A"/>
-                </eAnnotations>
-              </eClassifiers>
-              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Z10zkse6Ed-7etIj5eTw0Q" name="SwDataType" instanceClassName="java.lang.String">
-                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z10zk8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
-              </eClassifiers>
-            </contents>
-          </eAnnotations>
-          <ownedComment xmi:type="uml:Comment" xmi:id="_X4KZkPDLEeWB2dX6SBTUpA" annotatedElement="_7_W-sMCpEd-RT45s8cwWMg">
-            <body>deprecated, to be replaced with MARTE HWProcessor</body>
-          </ownedComment>
-          <ownedComment xmi:type="uml:Comment" xmi:id="_c05j4PDMEeWB2dX6SBTUpA" annotatedElement="_P7m7INq0EeCqi515KFb0xQ _YZ784Nq1EeCqi515KFb0xQ">
-            <body>to be reviewed</body>
-          </ownedComment>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_6F2tEKlhEeC6PYeyk6yc0A" alias="Class">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </elementImport>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_Y4qjsKu3EeCQLtqIc6Ik6Q" alias="ControlFlow">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ControlFlow"/>
-          </elementImport>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_wlZ-cKu6EeCQLtqIc6Ik6Q" alias="DataType">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
-          </elementImport>
-          <elementImport xmi:type="uml:ElementImport" xmi:id="_4T7iMCZBEeGlQNX6ViU5DA" alias="Comment">
-            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </elementImport>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_7_W-sMCpEd-RT45s8cwWMg" name="CH_HwProcessor">
-            <generalization xmi:type="uml:Generalization" xmi:id="_a-JyIMCqEd-RT45s8cwWMg">
-              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_z0aH8BJyEdygQ5HMNSpiZw"/>
-            </generalization>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_WUlckOthEeCfNbchlqXqMg" name="utilization">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZJWDMOthEeCfNbchlqXqMg"/>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_P7m7INq0EeCqi515KFb0xQ" name="CH_HwBus">
-            <generalization xmi:type="uml:Generalization" xmi:id="_PBQWQNq1EeCqi515KFb0xQ">
-              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_7m3jYBKNEdy1B7_71Kp_8Q"/>
-            </generalization>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_wJcfINq1EeCqi515KFb0xQ" name="utilization">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1cwL0Nq1EeCqi515KFb0xQ"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1c580Nq1EeCqi515KFb0xQ" value="1"/>
-            </ownedAttribute>
-          </packagedElement>
-          <packagedElement xmi:type="uml:Stereotype" xmi:id="_YZ784Nq1EeCqi515KFb0xQ" name="CH_HwComputingResource">
-            <generalization xmi:type="uml:Generalization" xmi:id="_cfAU0Nq1EeCqi515KFb0xQ">
-              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_NrpywBJzEdygQ5HMNSpiZw"/>
-            </generalization>
-            <ownedAttribute xmi:type="uml:Property" xmi:id="_3X_JcNq1EeCqi515KFb0xQ" name="utilization">
-              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3X_Jctq1EeCqi515KFb0xQ"/>
-              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3X_Jcdq1EeCqi515KFb0xQ" value="1"/>
-            </ownedAttribute>
-          </packagedElement>
-        </packagedElement>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Profile" xmi:id="_WgatoDgVEd-68Z_bhNRGsA" name="RTComponentModel" URI="http://CHESS/Predictability/RTComponentModel" metaclassReference="_KH7CgDi7Ed-BkomQ9Pp_0A _d-TA0Dg0EeCE2sZUGxu35w _QvznAEAbEeCQKOeIf0epIQ _6dTt4NqwEeCgKdScvhOcyQ _T9iikDzbEeW-QPagynd_rQ _SwSXIG5xEeWR-9VJ87ZvRA">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p90hgDgVEd-68Z_bhNRGsA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <contents xmi:type="ecore:EPackage" xmi:id="_COpr0FbyEeCnrfzYY69gqg" name="RTComponentModel" nsURI="http://CHESS/Predictability/RTComponentModel" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CZiGIFbyEeCnrfzYY69gqg" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGIVbyEeCnrfzYY69gqg" key="Version" value="0.1.17"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGIlbyEeCnrfzYY69gqg" key="Comment" value="Removed duplicate attribute &quot;relativePriority&quot; in stereotype CHRtSpecification"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGI1byEeCnrfzYY69gqg" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGJFbyEeCnrfzYY69gqg" key="Date" value="2011-03-25"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGJVbyEeCnrfzYY69gqg" key="Author" value="Stefano"/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_COpr0VbyEeCnrfzYY69gqg" name="CHRtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpr0lbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COpr01byEeCnrfzYY69gqg" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COpr41byEeCnrfzYY69gqg" name="slot" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COpr5VbyEeCnrfzYY69gqg" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_COpr6VbyEeCnrfzYY69gqg" name="protection" ordered="false">
-                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COpr7VbyEeCnrfzYY69gqg" name="context" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehavioralFeature"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CPGXwFbyEeCnrfzYY69gqg" name="WCET" ordered="false" eType="_CPGXwlbyEeCnrfzYY69gqg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CPsNoFbyEeCnrfzYY69gqg" name="localWCET" ordered="false" eType="_CPGXwlbyEeCnrfzYY69gqg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CQllgFbyEeCnrfzYY69gqg" name="relativePriority" ordered="false" eType="_CQllglbyEeCnrfzYY69gqg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CRCRcFbyEeCnrfzYY69gqg" name="ceiling" ordered="false" eType="_CQllglbyEeCnrfzYY69gqg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CRx4UFbyEeCnrfzYY69gqg" name="memorySizeFootprint" ordered="false" eType="_CRx4UlbyEeCnrfzYY69gqg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CSOkQFbyEeCnrfzYY69gqg" name="stackSize" ordered="false" eType="_CRx4UlbyEeCnrfzYY69gqg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CS-LIFbyEeCnrfzYY69gqg" name="heapSize" ordered="false" eType="_CRx4UlbyEeCnrfzYY69gqg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CUKd8FbyEeCnrfzYY69gqg" name="occKind" ordered="false" eType="_CUKd8lbyEeCnrfzYY69gqg"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CUw64FbyEeCnrfzYY69gqg" name="rlDl" ordered="false" eType="_CPGXwlbyEeCnrfzYY69gqg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_COpsT1byEeCnrfzYY69gqg" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsUFbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsUVbyEeCnrfzYY69gqg" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsUlbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsU1byEeCnrfzYY69gqg" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsVFbyEeCnrfzYY69gqg" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsVVbyEeCnrfzYY69gqg" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsVlbyEeCnrfzYY69gqg" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsV1byEeCnrfzYY69gqg" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsWFbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsWVbyEeCnrfzYY69gqg" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsWlbyEeCnrfzYY69gqg" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsW1byEeCnrfzYY69gqg" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsXFbyEeCnrfzYY69gqg" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsXVbyEeCnrfzYY69gqg" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsXlbyEeCnrfzYY69gqg" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsX1byEeCnrfzYY69gqg" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsYFbyEeCnrfzYY69gqg" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsYVbyEeCnrfzYY69gqg" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsYlbyEeCnrfzYY69gqg" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsY1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsZFbyEeCnrfzYY69gqg" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsZVbyEeCnrfzYY69gqg" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_COpsZlbyEeCnrfzYY69gqg" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsZ1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_COpsaFbyEeCnrfzYY69gqg" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsaVbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsalbyEeCnrfzYY69gqg" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsa1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsbFbyEeCnrfzYY69gqg" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsbVbyEeCnrfzYY69gqg" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsblbyEeCnrfzYY69gqg" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsb1byEeCnrfzYY69gqg" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpscFbyEeCnrfzYY69gqg" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpscVbyEeCnrfzYY69gqg" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsclbyEeCnrfzYY69gqg" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_COpsc1byEeCnrfzYY69gqg" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsdFbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsgVbyEeCnrfzYY69gqg" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsglbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsg1byEeCnrfzYY69gqg" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpshFbyEeCnrfzYY69gqg" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpshVbyEeCnrfzYY69gqg" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpshlbyEeCnrfzYY69gqg" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsh1byEeCnrfzYY69gqg" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COps2FbyEeCnrfzYY69gqg" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COps2VbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps2lbyEeCnrfzYY69gqg" name="Hz"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps21byEeCnrfzYY69gqg" name="KHz" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps3FbyEeCnrfzYY69gqg" name="MHz" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps3VbyEeCnrfzYY69gqg" name="GHz" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps3lbyEeCnrfzYY69gqg" name="rpm" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_COps31byEeCnrfzYY69gqg" name="CHRtPortSlot">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COps4FbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COps4VbyEeCnrfzYY69gqg" name="base_Slot" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COps41byEeCnrfzYY69gqg" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_COpr0VbyEeCnrfzYY69gqg"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CPGXwlbyEeCnrfzYY69gqg" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CPGXw1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CQllglbyEeCnrfzYY69gqg" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQllg1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CRx4UlbyEeCnrfzYY69gqg" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CRx4U1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUKd8lbyEeCnrfzYY69gqg" name="ArrivalPattern" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUKd81byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_3O6B0EApEeCgBsnPy5jVRQ" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_3OwQ0EApEeCgBsnPy5jVRQ/24" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3X_sYEApEeCgBsnPy5jVRQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sYUApEeCgBsnPy5jVRQ" key="Version" value="0.1.16"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sYkApEeCgBsnPy5jVRQ" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sY0ApEeCgBsnPy5jVRQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sZEApEeCgBsnPy5jVRQ" key="Date" value="2011-02-24"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sZUApEeCgBsnPy5jVRQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_3O6B0UApEeCgBsnPy5jVRQ" name="CHRtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6B0kApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6B00ApEeCgBsnPy5jVRQ" source="duplicates"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6B10ApEeCgBsnPy5jVRQ" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6B50ApEeCgBsnPy5jVRQ" name="slot" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6B6UApEeCgBsnPy5jVRQ" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3O6B7UApEeCgBsnPy5jVRQ" name="protection" ordered="false">
-                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6B8UApEeCgBsnPy5jVRQ" name="context" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehavioralFeature"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3PWtwEApEeCgBsnPy5jVRQ" name="WCET" ordered="false" eType="_3PWtwkApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3PzZsEApEeCgBsnPy5jVRQ" name="localWCET" ordered="false" eType="_3PWtwkApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3QZPkEApEeCgBsnPy5jVRQ" name="relativePriority" ordered="false" eType="_3QZPkkApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3Q17gEApEeCgBsnPy5jVRQ" name="ceiling" ordered="false" eType="_3QZPkkApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3RcYcEApEeCgBsnPy5jVRQ" name="memorySizeFootprint" ordered="false" eType="_3RcYckApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3SCOUEApEeCgBsnPy5jVRQ" name="stackSize" ordered="false" eType="_3RcYckApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3Se6QEApEeCgBsnPy5jVRQ" name="heapSize" ordered="false" eType="_3RcYckApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3TrNEEApEeCgBsnPy5jVRQ" name="occKind" ordered="false" eType="_3TrNEkApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3UH5AEApEeCgBsnPy5jVRQ" name="rlDl" ordered="false" eType="_3PWtwkApEeCgBsnPy5jVRQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3O6CU0ApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CVEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6CVUApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CVkApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CV0ApEeCgBsnPy5jVRQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CWEApEeCgBsnPy5jVRQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CWUApEeCgBsnPy5jVRQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CWkApEeCgBsnPy5jVRQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6CW0ApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CXEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CXUApEeCgBsnPy5jVRQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CXkApEeCgBsnPy5jVRQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CX0ApEeCgBsnPy5jVRQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CYEApEeCgBsnPy5jVRQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CYUApEeCgBsnPy5jVRQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CYkApEeCgBsnPy5jVRQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CY0ApEeCgBsnPy5jVRQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CZEApEeCgBsnPy5jVRQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CZUApEeCgBsnPy5jVRQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6CZkApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CZ0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CaEApEeCgBsnPy5jVRQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CaUApEeCgBsnPy5jVRQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3O6CakApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6Ca0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3O6CbEApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CbUApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6CbkApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6Cb0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CcEApEeCgBsnPy5jVRQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CcUApEeCgBsnPy5jVRQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CckApEeCgBsnPy5jVRQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6Cc0ApEeCgBsnPy5jVRQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CdEApEeCgBsnPy5jVRQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CdUApEeCgBsnPy5jVRQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CdkApEeCgBsnPy5jVRQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3O6Cd0ApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CeEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6ChUApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6ChkApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6Ch0ApEeCgBsnPy5jVRQ" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CiEApEeCgBsnPy5jVRQ" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CiUApEeCgBsnPy5jVRQ" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CikApEeCgBsnPy5jVRQ" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6Ci0ApEeCgBsnPy5jVRQ" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6C3EApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6C3UApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C3kApEeCgBsnPy5jVRQ" name="Hz"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C30ApEeCgBsnPy5jVRQ" name="KHz" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C4EApEeCgBsnPy5jVRQ" name="MHz" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C4UApEeCgBsnPy5jVRQ" name="GHz" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C4kApEeCgBsnPy5jVRQ" name="rpm" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_3O6C40ApEeCgBsnPy5jVRQ" name="CHRtPortSlot">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6C5EApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6C5UApEeCgBsnPy5jVRQ" name="base_Slot" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6C50ApEeCgBsnPy5jVRQ" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_3O6B0UApEeCgBsnPy5jVRQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3PWtwkApEeCgBsnPy5jVRQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PWtw0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3QZPkkApEeCgBsnPy5jVRQ" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3QZPk0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3RcYckApEeCgBsnPy5jVRQ" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3RcYc0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3TrNEkApEeCgBsnPy5jVRQ" name="ArrivalPattern" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3TrNE0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_0wp2sEApEeCgBsnPy5jVRQ" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_0wgFsEApEeCgBsnPy5jVRQ/23" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_05vhQEApEeCgBsnPy5jVRQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhQUApEeCgBsnPy5jVRQ" key="Version" value="0.1.15"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhQkApEeCgBsnPy5jVRQ" key="Comment" value="updated CHRtSpecification with new PIM attributes"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhQ0ApEeCgBsnPy5jVRQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhREApEeCgBsnPy5jVRQ" key="Date" value="2011-02-24"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhRUApEeCgBsnPy5jVRQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_0wp2sUApEeCgBsnPy5jVRQ" name="CHRtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp2skApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp2s0ApEeCgBsnPy5jVRQ" source="duplicates"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp2t0ApEeCgBsnPy5jVRQ" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp2x0ApEeCgBsnPy5jVRQ" name="slot" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp2yUApEeCgBsnPy5jVRQ" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0wp2zUApEeCgBsnPy5jVRQ" name="protection" ordered="false">
-                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp20UApEeCgBsnPy5jVRQ" name="context" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehavioralFeature"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0xGioEApEeCgBsnPy5jVRQ" name="WCET" ordered="false" eType="_0xGiokApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0xjOkEApEeCgBsnPy5jVRQ" name="localWCET" ordered="false" eType="_0xGiokApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0yJEcEApEeCgBsnPy5jVRQ" name="relativePriority" ordered="false" eType="_0yJEckApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0ylwYEApEeCgBsnPy5jVRQ" name="ceiling" ordered="false" eType="_0yJEckApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0zMNUEApEeCgBsnPy5jVRQ" name="memorySizeFootprint" ordered="false" eType="_0zMNUkApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0zoSMEApEeCgBsnPy5jVRQ" name="stackSize" ordered="false" eType="_0zMNUkApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_00OvIEApEeCgBsnPy5jVRQ" name="heapSize" ordered="false" eType="_0zMNUkApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_01RQ8EApEeCgBsnPy5jVRQ" name="occKind" ordered="false" eType="_01RQ8kApEeCgBsnPy5jVRQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_01t84EApEeCgBsnPy5jVRQ" name="rlDl" ordered="false" eType="_0xGiokApEeCgBsnPy5jVRQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0wp3M0ApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3NEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3NUApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3NkApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3N0ApEeCgBsnPy5jVRQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3OEApEeCgBsnPy5jVRQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3OUApEeCgBsnPy5jVRQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3OkApEeCgBsnPy5jVRQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3O0ApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3PEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3PUApEeCgBsnPy5jVRQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3PkApEeCgBsnPy5jVRQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3P0ApEeCgBsnPy5jVRQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3QEApEeCgBsnPy5jVRQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3QUApEeCgBsnPy5jVRQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3QkApEeCgBsnPy5jVRQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3Q0ApEeCgBsnPy5jVRQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3REApEeCgBsnPy5jVRQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3RUApEeCgBsnPy5jVRQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3RkApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3R0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3SEApEeCgBsnPy5jVRQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3SUApEeCgBsnPy5jVRQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0wp3SkApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3S0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0wp3TEApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3TUApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3TkApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3T0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3UEApEeCgBsnPy5jVRQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3UUApEeCgBsnPy5jVRQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3UkApEeCgBsnPy5jVRQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3U0ApEeCgBsnPy5jVRQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3VEApEeCgBsnPy5jVRQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3VUApEeCgBsnPy5jVRQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3VkApEeCgBsnPy5jVRQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0wp3V0ApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3WEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3ZUApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3ZkApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3Z0ApEeCgBsnPy5jVRQ" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3aEApEeCgBsnPy5jVRQ" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3aUApEeCgBsnPy5jVRQ" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3akApEeCgBsnPy5jVRQ" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3a0ApEeCgBsnPy5jVRQ" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3vEApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3vUApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3vkApEeCgBsnPy5jVRQ" name="Hz"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3v0ApEeCgBsnPy5jVRQ" name="KHz" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3wEApEeCgBsnPy5jVRQ" name="MHz" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3wUApEeCgBsnPy5jVRQ" name="GHz" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3wkApEeCgBsnPy5jVRQ" name="rpm" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_0wp3w0ApEeCgBsnPy5jVRQ" name="CHRtPortSlot">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3xEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp3xUApEeCgBsnPy5jVRQ" name="base_Slot" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp3x0ApEeCgBsnPy5jVRQ" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_0wp2sUApEeCgBsnPy5jVRQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0xGiokApEeCgBsnPy5jVRQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0xGio0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0yJEckApEeCgBsnPy5jVRQ" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0yJEc0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0zMNUkApEeCgBsnPy5jVRQ" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0zMNU0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_01RQ8kApEeCgBsnPy5jVRQ" name="ArrivalPattern" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_01RQ80ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_WLInQUAbEeCQKOeIf0epIQ" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_WLInQEAbEeCQKOeIf0epIQ/22" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WSSYIEAbEeCQKOeIf0epIQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYIUAbEeCQKOeIf0epIQ" key="Version" value="0.1.14"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYIkAbEeCQKOeIf0epIQ" key="Comment" value="removed generalization from CHRtSpecifation due to MARTE bug in RtSpecification implementation"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYI0AbEeCQKOeIf0epIQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYJEAbEeCQKOeIf0epIQ" key="Date" value="2011-02-24"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYJUAbEeCQKOeIf0epIQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_WLInQkAbEeCQKOeIf0epIQ" name="CHRtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInQ0AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLInREAbEeCQKOeIf0epIQ" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLInVEAbEeCQKOeIf0epIQ" name="slot" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLInVkAbEeCQKOeIf0epIQ" name="base_Comment" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WLlTMEAbEeCQKOeIf0epIQ" name="WCET" ordered="false" lowerBound="1" eType="_WLlTMkAbEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WMB_IEAbEeCQKOeIf0epIQ" name="localWCET" ordered="false" eType="_WLlTMkAbEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WMn1AEAbEeCQKOeIf0epIQ" name="relativePriority" ordered="false" eType="_WMn1AkAbEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WNEg8EAbEeCQKOeIf0epIQ" name="ceiling" ordered="false" eType="_WMn1AkAbEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WNq94EAbEeCQKOeIf0epIQ" name="memorySizeFootprint" ordered="false" eType="_WNq94kAbEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WOHp0EAbEeCQKOeIf0epIQ" name="stackSize" ordered="false" eType="_WNq94kAbEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WOtfsEAbEeCQKOeIf0epIQ" name="heapSize" ordered="false" eType="_WNq94kAbEeCQKOeIf0epIQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLInuEAbEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInuUAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLInukAbEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInu0AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInvEAbEeCQKOeIf0epIQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInvUAbEeCQKOeIf0epIQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInvkAbEeCQKOeIf0epIQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInv0AbEeCQKOeIf0epIQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLInwEAbEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInwUAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInwkAbEeCQKOeIf0epIQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInw0AbEeCQKOeIf0epIQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInxEAbEeCQKOeIf0epIQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInxUAbEeCQKOeIf0epIQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInxkAbEeCQKOeIf0epIQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInx0AbEeCQKOeIf0epIQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInyEAbEeCQKOeIf0epIQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInyUAbEeCQKOeIf0epIQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInykAbEeCQKOeIf0epIQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLIny0AbEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInzEAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInzUAbEeCQKOeIf0epIQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInzkAbEeCQKOeIf0epIQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLInz0AbEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn0EAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLIn0UAbEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn0kAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLIn00AbEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn1EAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn1UAbEeCQKOeIf0epIQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn1kAbEeCQKOeIf0epIQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn10AbEeCQKOeIf0epIQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn2EAbEeCQKOeIf0epIQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn2UAbEeCQKOeIf0epIQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn2kAbEeCQKOeIf0epIQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn20AbEeCQKOeIf0epIQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLIn3EAbEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn3UAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLIn6kAbEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn60AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn7EAbEeCQKOeIf0epIQ" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn7UAbEeCQKOeIf0epIQ" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn7kAbEeCQKOeIf0epIQ" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn70AbEeCQKOeIf0epIQ" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn8EAbEeCQKOeIf0epIQ" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_WLIn8UAbEeCQKOeIf0epIQ" name="CHRtPortSlot">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn8kAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLIn80AbEeCQKOeIf0epIQ" name="base_Slot" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLIn9UAbEeCQKOeIf0epIQ" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_WLInQkAbEeCQKOeIf0epIQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLlTMkAbEeCQKOeIf0epIQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLlTM0AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WMn1AkAbEeCQKOeIf0epIQ" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WMn1A0AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WNq94kAbEeCQKOeIf0epIQ" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WNq940AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_4g1jkEAEEeCQKOeIf0epIQ" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_4giBkEAEEeCQKOeIf0epIQ/21" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4n1jcEAEEeCQKOeIf0epIQ" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jcUAEEeCQKOeIf0epIQ" key="Version" value="0.1.13"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jckAEEeCQKOeIf0epIQ" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jc0AEEeCQKOeIf0epIQ" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jdEAEEeCQKOeIf0epIQ" key="Date" value="2011-02-24"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jdUAEEeCQKOeIf0epIQ" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_4g1jkUAEEeCQKOeIf0epIQ" name="CHRtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1jkkAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_4g1jk0AEEeCQKOeIf0epIQ" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_4g1jo0AEEeCQKOeIf0epIQ" name="slot" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4hbZcEAEEeCQKOeIf0epIQ" name="WCET" ordered="false" lowerBound="1" eType="_4hbZckAEEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4h4FYEAEEeCQKOeIf0epIQ" name="localWCET" ordered="false" eType="_4hbZckAEEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4insQEAEEeCQKOeIf0epIQ" name="relativePriority" ordered="false" eType="_4insQkAEEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4jEYMEAEEeCQKOeIf0epIQ" name="ceiling" ordered="false" eType="_4insQkAEEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4jqOEEAEEeCQKOeIf0epIQ" name="memorySizeFootprint" ordered="false" eType="_4jqOEkAEEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4kG6AEAEEeCQKOeIf0epIQ" name="stackSize" ordered="false" eType="_4jqOEkAEEeCQKOeIf0epIQ"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4ktW8EAEEeCQKOeIf0epIQ" name="heapSize" ordered="false" eType="_4jqOEkAEEeCQKOeIf0epIQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4g1kBkAEEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kB0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kCEAEEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kCUAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kCkAEEeCQKOeIf0epIQ" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kC0AEEeCQKOeIf0epIQ" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kDEAEEeCQKOeIf0epIQ" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kDUAEEeCQKOeIf0epIQ" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kDkAEEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kD0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kEEAEEeCQKOeIf0epIQ" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kEUAEEeCQKOeIf0epIQ" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kEkAEEeCQKOeIf0epIQ" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kE0AEEeCQKOeIf0epIQ" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kFEAEEeCQKOeIf0epIQ" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kFUAEEeCQKOeIf0epIQ" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kFkAEEeCQKOeIf0epIQ" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kF0AEEeCQKOeIf0epIQ" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kGEAEEeCQKOeIf0epIQ" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kGUAEEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kGkAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kG0AEEeCQKOeIf0epIQ" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kHEAEEeCQKOeIf0epIQ" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4g1kHUAEEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kHkAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4g1kH0AEEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kIEAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kIUAEEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kIkAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kI0AEEeCQKOeIf0epIQ" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kJEAEEeCQKOeIf0epIQ" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kJUAEEeCQKOeIf0epIQ" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kJkAEEeCQKOeIf0epIQ" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kJ0AEEeCQKOeIf0epIQ" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kKEAEEeCQKOeIf0epIQ" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kKUAEEeCQKOeIf0epIQ" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4g1kKkAEEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kK0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kOEAEEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kOUAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kOkAEEeCQKOeIf0epIQ" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kO0AEEeCQKOeIf0epIQ" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kPEAEEeCQKOeIf0epIQ" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kPUAEEeCQKOeIf0epIQ" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kPkAEEeCQKOeIf0epIQ" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_4g1kP0AEEeCQKOeIf0epIQ" name="CHRtPortSlot">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kQEAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_4g1kQUAEEeCQKOeIf0epIQ" name="base_Slot" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_4g1kQ0AEEeCQKOeIf0epIQ" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_4g1jkUAEEeCQKOeIf0epIQ"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4hbZckAEEeCQKOeIf0epIQ" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4hbZc0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4insQkAEEeCQKOeIf0epIQ" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4insQ0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4jqOEkAEEeCQKOeIf0epIQ" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4jqOE0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_5RCccDg4EeCE2sZUGxu35w" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_5Q4rcDg4EeCE2sZUGxu35w/20" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5WGioDg4EeCE2sZUGxu35w" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGioTg4EeCE2sZUGxu35w" key="Version" value="0.1.12"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGiojg4EeCE2sZUGxu35w" key="Comment" value="Temporary patch: removed extension from CHRtSpecification to RtSpecification due to a bug in MARTE."/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGiozg4EeCE2sZUGxu35w" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGipDg4EeCE2sZUGxu35w" key="Date" value="2011-02-14"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGipTg4EeCE2sZUGxu35w" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_5RCccTg4EeCE2sZUGxu35w" name="CHRtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCccjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_5RCcczg4EeCE2sZUGxu35w" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_5RCcgzg4EeCE2sZUGxu35w" name="slot" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5RehUDg4EeCE2sZUGxu35w" name="WCET" ordered="false" lowerBound="1" eType="_5RehUjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5RyDUDg4EeCE2sZUGxu35w" name="localWCET" ordered="false" eType="_5RehUjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5SE-QDg4EeCE2sZUGxu35w" name="relativePriority" ordered="false" eType="_5SE-Qjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5SX5MDg4EeCE2sZUGxu35w" name="ceiling" ordered="false" eType="_5SE-Qjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5S0lIDg4EeCE2sZUGxu35w" name="memorySizeFootprint" ordered="false" eType="_5S0lIjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5THgEDg4EeCE2sZUGxu35w" name="stackSize" ordered="false" eType="_5S0lIjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5T3G8Dg4EeCE2sZUGxu35w" name="heapSize" ordered="false" eType="_5S0lIjg4EeCE2sZUGxu35w"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RCc5jg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc5zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCc6Dg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc6Tg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc6jg4EeCE2sZUGxu35w" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc6zg4EeCE2sZUGxu35w" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc7Dg4EeCE2sZUGxu35w" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc7Tg4EeCE2sZUGxu35w" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCc7jg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc7zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc8Dg4EeCE2sZUGxu35w" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc8Tg4EeCE2sZUGxu35w" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc8jg4EeCE2sZUGxu35w" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc8zg4EeCE2sZUGxu35w" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc9Dg4EeCE2sZUGxu35w" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc9Tg4EeCE2sZUGxu35w" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc9jg4EeCE2sZUGxu35w" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc9zg4EeCE2sZUGxu35w" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc-Dg4EeCE2sZUGxu35w" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCc-Tg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc-jg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc-zg4EeCE2sZUGxu35w" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc_Dg4EeCE2sZUGxu35w" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RCc_Tg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc_jg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RCc_zg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdADg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCdATg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdAjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdAzg4EeCE2sZUGxu35w" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdBDg4EeCE2sZUGxu35w" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdBTg4EeCE2sZUGxu35w" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdBjg4EeCE2sZUGxu35w" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdBzg4EeCE2sZUGxu35w" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdCDg4EeCE2sZUGxu35w" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdCTg4EeCE2sZUGxu35w" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RCdCjg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdCzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCdGDg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdGTg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdGjg4EeCE2sZUGxu35w" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdGzg4EeCE2sZUGxu35w" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdHDg4EeCE2sZUGxu35w" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdHTg4EeCE2sZUGxu35w" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdHjg4EeCE2sZUGxu35w" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_5RCdHzg4EeCE2sZUGxu35w" name="CHRtPortSlot">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdIDg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_5RCdITg4EeCE2sZUGxu35w" name="base_Slot" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_5RCdIzg4EeCE2sZUGxu35w" name="rtSpecification" ordered="false" upperBound="-1" eType="_5RCccTg4EeCE2sZUGxu35w"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RehUjg4EeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RehUzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5SE-Qjg4EeCE2sZUGxu35w" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5SE-Qzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5S0lIjg4EeCE2sZUGxu35w" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5S0lIzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_meUkUTg4EeCE2sZUGxu35w" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_meUkUDg4EeCE2sZUGxu35w/19" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mjrlcDg4EeCE2sZUGxu35w" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrlcTg4EeCE2sZUGxu35w" key="Version" value="0.1.11"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrlcjg4EeCE2sZUGxu35w" key="Comment" value="Renamed CHRtSpecification, removed concurrencyKind"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrlczg4EeCE2sZUGxu35w" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrldDg4EeCE2sZUGxu35w" key="Date" value="2011-02-14"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrldTg4EeCE2sZUGxu35w" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_meUkUjg4EeCE2sZUGxu35w" name="CHRtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUkUzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_meUkVDg4EeCE2sZUGxu35w" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_meUkZDg4EeCE2sZUGxu35w" name="slot" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mfELMDg4EeCE2sZUGxu35w" name="WCET" ordered="false" lowerBound="1" eType="_mfELMjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mfXGIDg4EeCE2sZUGxu35w" name="localWCET" ordered="false" eType="_mfELMjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mfqBEDg4EeCE2sZUGxu35w" name="relativePriority" ordered="false" eType="_mfqBEjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mgGtADg4EeCE2sZUGxu35w" name="ceiling" ordered="false" eType="_mfqBEjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mgaPADg4EeCE2sZUGxu35w" name="memorySizeFootprint" ordered="false" eType="_mgaPAjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mg2T4Dg4EeCE2sZUGxu35w" name="stackSize" ordered="false" eType="_mgaPAjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mhJ14Dg4EeCE2sZUGxu35w" name="heapSize" ordered="false" eType="_mgaPAjg4EeCE2sZUGxu35w"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_meUkxzg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUkyDg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUkyTg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUkyjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUkyzg4EeCE2sZUGxu35w" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUkzDg4EeCE2sZUGxu35w" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUkzTg4EeCE2sZUGxu35w" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUkzjg4EeCE2sZUGxu35w" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUkzzg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk0Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk0Tg4EeCE2sZUGxu35w" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk0jg4EeCE2sZUGxu35w" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk0zg4EeCE2sZUGxu35w" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk1Dg4EeCE2sZUGxu35w" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk1Tg4EeCE2sZUGxu35w" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk1jg4EeCE2sZUGxu35w" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk1zg4EeCE2sZUGxu35w" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk2Dg4EeCE2sZUGxu35w" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk2Tg4EeCE2sZUGxu35w" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUk2jg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk2zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk3Dg4EeCE2sZUGxu35w" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk3Tg4EeCE2sZUGxu35w" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_meUk3jg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk3zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_meUk4Dg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk4Tg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUk4jg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk4zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk5Dg4EeCE2sZUGxu35w" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk5Tg4EeCE2sZUGxu35w" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk5jg4EeCE2sZUGxu35w" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk5zg4EeCE2sZUGxu35w" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk6Dg4EeCE2sZUGxu35w" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk6Tg4EeCE2sZUGxu35w" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk6jg4EeCE2sZUGxu35w" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_meUk6zg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk7Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUk-Tg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk-jg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk-zg4EeCE2sZUGxu35w" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk_Dg4EeCE2sZUGxu35w" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk_Tg4EeCE2sZUGxu35w" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk_jg4EeCE2sZUGxu35w" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk_zg4EeCE2sZUGxu35w" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_meUlADg4EeCE2sZUGxu35w" name="CHRtPortSlot">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUlATg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_meUlAjg4EeCE2sZUGxu35w" name="base_Slot" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_meUlBDg4EeCE2sZUGxu35w" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_meUkUjg4EeCE2sZUGxu35w"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_mfELMjg4EeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mfELMzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_mfqBEjg4EeCE2sZUGxu35w" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mfqBEzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_mgaPAjg4EeCE2sZUGxu35w" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mgaPAzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_G7lWUDg4EeCE2sZUGxu35w" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_G7blUDg4EeCE2sZUGxu35w/18" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HAWhkDg4EeCE2sZUGxu35w" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhkTg4EeCE2sZUGxu35w" key="Version" value="0.1.10"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhkjg4EeCE2sZUGxu35w" key="Comment" value="AddedCHRtPortSlot"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhkzg4EeCE2sZUGxu35w" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhlDg4EeCE2sZUGxu35w" key="Date" value="2011-02-14"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhlTg4EeCE2sZUGxu35w" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G7lWUTg4EeCE2sZUGxu35w" name="CH_RtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lWUjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G7lWUzg4EeCE2sZUGxu35w" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G7lWXTg4EeCE2sZUGxu35w" name="concPolicy" ordered="false">
-                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G7lWZTg4EeCE2sZUGxu35w" name="slot" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G8CCQDg4EeCE2sZUGxu35w" name="WCET" ordered="false" lowerBound="1" eType="_G8CCQjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G8U9MDg4EeCE2sZUGxu35w" name="localWCET" ordered="false" eType="_G8CCQjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G8xpIDg4EeCE2sZUGxu35w" name="relativePriority" ordered="false" eType="_G8xpIjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G9EkEDg4EeCE2sZUGxu35w" name="ceiling" ordered="false" eType="_G8xpIjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G9XfADg4EeCE2sZUGxu35w" name="memorySizeFootprint" ordered="false" eType="_G9XfAjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G9rBADg4EeCE2sZUGxu35w" name="stackSize" ordered="false" eType="_G9XfAjg4EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G-HF4Dg4EeCE2sZUGxu35w" name="heapSize" ordered="false" eType="_G9XfAjg4EeCE2sZUGxu35w"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7lWyDg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lWyTg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lWyjg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lWyzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lWzDg4EeCE2sZUGxu35w" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lWzTg4EeCE2sZUGxu35w" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lWzjg4EeCE2sZUGxu35w" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lWzzg4EeCE2sZUGxu35w" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lW0Dg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW0Tg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW0jg4EeCE2sZUGxu35w" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW0zg4EeCE2sZUGxu35w" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW1Dg4EeCE2sZUGxu35w" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW1Tg4EeCE2sZUGxu35w" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW1jg4EeCE2sZUGxu35w" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW1zg4EeCE2sZUGxu35w" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW2Dg4EeCE2sZUGxu35w" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW2Tg4EeCE2sZUGxu35w" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW2jg4EeCE2sZUGxu35w" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lW2zg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW3Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW3Tg4EeCE2sZUGxu35w" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW3jg4EeCE2sZUGxu35w" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7lW3zg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW4Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7lW4Tg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW4jg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lW4zg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW5Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW5Tg4EeCE2sZUGxu35w" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW5jg4EeCE2sZUGxu35w" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW5zg4EeCE2sZUGxu35w" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW6Dg4EeCE2sZUGxu35w" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW6Tg4EeCE2sZUGxu35w" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW6jg4EeCE2sZUGxu35w" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW6zg4EeCE2sZUGxu35w" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7lW7Dg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW7Tg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lW-jg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW-zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW_Dg4EeCE2sZUGxu35w" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW_Tg4EeCE2sZUGxu35w" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW_jg4EeCE2sZUGxu35w" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW_zg4EeCE2sZUGxu35w" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lXADg4EeCE2sZUGxu35w" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G7lXATg4EeCE2sZUGxu35w" name="CHRtPortSlot">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lXAjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G7lXAzg4EeCE2sZUGxu35w" name="base_Slot" ordered="false" lowerBound="1">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G7lXBTg4EeCE2sZUGxu35w" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_G7lWUTg4EeCE2sZUGxu35w"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G8CCQjg4EeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G8CCQzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G8xpIjg4EeCE2sZUGxu35w" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G8xpIzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G9XfAjg4EeCE2sZUGxu35w" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G9XfAzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_xO8yIDg0EeCE2sZUGxu35w" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_xOzBIDg0EeCE2sZUGxu35w/17" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xTRRcTg0EeCE2sZUGxu35w" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRcjg0EeCE2sZUGxu35w" key="Version" value="0.1.9"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRczg0EeCE2sZUGxu35w" key="Comment" value="Updated CH_RtSpecification"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRdDg0EeCE2sZUGxu35w" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRdTg0EeCE2sZUGxu35w" key="Date" value="2011-02-14"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRdjg0EeCE2sZUGxu35w" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_xO8yITg0EeCE2sZUGxu35w" name="CH_RtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yIjg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xO8yIzg0EeCE2sZUGxu35w" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xO8yLTg0EeCE2sZUGxu35w" name="concPolicy" ordered="false">
-                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xO8yNTg0EeCE2sZUGxu35w" name="slot" ordered="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xPPtEDg0EeCE2sZUGxu35w" name="WCET" ordered="false" lowerBound="1" eType="_xPPtEjg0EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xPioADg0EeCE2sZUGxu35w" name="localWCET" ordered="false" eType="_xPPtEjg0EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xP_T8Dg0EeCE2sZUGxu35w" name="relativePriority" ordered="false" eType="_xP_T8jg0EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xQSO4Dg0EeCE2sZUGxu35w" name="ceiling" ordered="false" eType="_xP_T8jg0EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xQu60Dg0EeCE2sZUGxu35w" name="memorySizeFootprint" ordered="false" eType="_xQu60jg0EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xRB1wDg0EeCE2sZUGxu35w" name="stackSize" ordered="false" eType="_xQu60jg0EeCE2sZUGxu35w"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xRehsDg0EeCE2sZUGxu35w" name="heapSize" ordered="false" eType="_xQu60jg0EeCE2sZUGxu35w"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xO8ymDg0EeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ymTg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8ymjg0EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ymzg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ynDg0EeCE2sZUGxu35w" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ynTg0EeCE2sZUGxu35w" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ynjg0EeCE2sZUGxu35w" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ynzg0EeCE2sZUGxu35w" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8yoDg0EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yoTg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yojg0EeCE2sZUGxu35w" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yozg0EeCE2sZUGxu35w" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ypDg0EeCE2sZUGxu35w" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ypTg0EeCE2sZUGxu35w" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ypjg0EeCE2sZUGxu35w" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ypzg0EeCE2sZUGxu35w" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yqDg0EeCE2sZUGxu35w" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yqTg0EeCE2sZUGxu35w" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yqjg0EeCE2sZUGxu35w" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8yqzg0EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yrDg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yrTg0EeCE2sZUGxu35w" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yrjg0EeCE2sZUGxu35w" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xO8yrzg0EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ysDg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xO8ysTg0EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ysjg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8yszg0EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ytDg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ytTg0EeCE2sZUGxu35w" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ytjg0EeCE2sZUGxu35w" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ytzg0EeCE2sZUGxu35w" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yuDg0EeCE2sZUGxu35w" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yuTg0EeCE2sZUGxu35w" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yujg0EeCE2sZUGxu35w" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yuzg0EeCE2sZUGxu35w" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xO8yvDg0EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yvTg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8yyjg0EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yyzg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yzDg0EeCE2sZUGxu35w" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yzTg0EeCE2sZUGxu35w" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yzjg0EeCE2sZUGxu35w" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yzzg0EeCE2sZUGxu35w" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8y0Dg0EeCE2sZUGxu35w" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xPPtEjg0EeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xPPtEzg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xP_T8jg0EeCE2sZUGxu35w" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xP_T8zg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xQu60jg0EeCE2sZUGxu35w" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xQu60zg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-          <contents xmi:type="ecore:EPackage" xmi:id="_UVZQ4Me6Ed-7etIj5eTw0Q" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_T3cwoMe6Ed-7etIj5eTw0Q/16" nsPrefix="RTComponentModel">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a02noMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02noce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02nose6Ed-7etIj5eTw0Q" key="Comment" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02no8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02npMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>
-              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02npce6Ed-7etIj5eTw0Q" key="Author" value=""/>
-            </eAnnotations>
-            <eClassifiers xmi:type="ecore:EClass" xmi:id="_UVZQ4ce6Ed-7etIj5eTw0Q" name="CH_RtSpecification">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZQ4se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>
-              <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_1R2sA5i4Ed-m0Oaexd_lJA"/>
-              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UVZQ48e6Ed-7etIj5eTw0Q" name="partWithPort" ordered="false" unique="false">
-                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-              </eStructuralFeatures>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UVZQ78e6Ed-7etIj5eTw0Q" name="concPolicy" ordered="false" eType="_UVZSb8e6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aSb3EMe6Ed-7etIj5eTw0Q" name="WCET" ordered="false" lowerBound="1" eType="_aSb3Ese6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aU9moMe6Ed-7etIj5eTw0Q" name="localWCET" ordered="false" eType="_aSb3Ese6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aYFzIMe6Ed-7etIj5eTw0Q" name="relativePriority" ordered="false" eType="_aYFzIse6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aaeYwMe6Ed-7etIj5eTw0Q" name="ceiling" ordered="false" eType="_aYFzIse6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_adnMUMe6Ed-7etIj5eTw0Q" name="memorySizeFootprint" ordered="false" eType="_adnMUse6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_agI74Me6Ed-7etIj5eTw0Q" name="stackSize" ordered="false" eType="_adnMUse6Ed-7etIj5eTw0Q"/>
-              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ajRIYMe6Ed-7etIj5eTw0Q" name="heapSize" ordered="false" eType="_adnMUse6Ed-7etIj5eTw0Q"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRKMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRKce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRqce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRqse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZRq8e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRrMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRrce6Ed-7etIj5eTw0Q" name="est"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRrse6Ed-7etIj5eTw0Q" name="meas" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRr8e6Ed-7etIj5eTw0Q" name="calc" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRsMe6Ed-7etIj5eTw0Q" name="req" value="3"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZRsce6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRsse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRs8e6Ed-7etIj5eTw0Q" name="max"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRtMe6Ed-7etIj5eTw0Q" name="min" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRtce6Ed-7etIj5eTw0Q" name="mean" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRtse6Ed-7etIj5eTw0Q" name="range" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRt8e6Ed-7etIj5eTw0Q" name="percent" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRuMe6Ed-7etIj5eTw0Q" name="distrib" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRuce6Ed-7etIj5eTw0Q" name="determ" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRuse6Ed-7etIj5eTw0Q" name="other" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRu8e6Ed-7etIj5eTw0Q" name="variance" value="8"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZRvMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRvce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRvse6Ed-7etIj5eTw0Q" name="incr"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRv8e6Ed-7etIj5eTw0Q" name="decr" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRwMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRwce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRwse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRw8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZRxMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRxce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRxse6Ed-7etIj5eTw0Q" name="s"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRx8e6Ed-7etIj5eTw0Q" name="tick" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRyMe6Ed-7etIj5eTw0Q" name="ms" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRyce6Ed-7etIj5eTw0Q" name="us" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRyse6Ed-7etIj5eTw0Q" name="min" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRy8e6Ed-7etIj5eTw0Q" name="hrs" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRzMe6Ed-7etIj5eTw0Q" name="day" value="6"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRzce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRzse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSCse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSC8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSDMe6Ed-7etIj5eTw0Q" name="Hz"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSDce6Ed-7etIj5eTw0Q" name="KHz" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSDse6Ed-7etIj5eTw0Q" name="MHz" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSD8e6Ed-7etIj5eTw0Q" name="GHz" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSEMe6Ed-7etIj5eTw0Q" name="rpm" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSK8e6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeStandardKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSLMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_MDyyoA-KEdyNj8xzjk-DoA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSLce6Ed-7etIj5eTw0Q" name="TAI"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSLse6Ed-7etIj5eTw0Q" name="UT0" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSL8e6Ed-7etIj5eTw0Q" name="UT1" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSMMe6Ed-7etIj5eTw0Q" name="UTC" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSMce6Ed-7etIj5eTw0Q" name="Local" value="4"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSMse6Ed-7etIj5eTw0Q" name="TT" value="5"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSM8e6Ed-7etIj5eTw0Q" name="TBD" value="6"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSNMe6Ed-7etIj5eTw0Q" name="TCG" value="7"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSNce6Ed-7etIj5eTw0Q" name="TCB" value="8"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSNse6Ed-7etIj5eTw0Q" name="Sidereal" value="9"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSN8e6Ed-7etIj5eTw0Q" name="GPS" value="10"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSTse6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeNatureKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZST8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_WAvb0A75EdyML4mHwjNDrw"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSUMe6Ed-7etIj5eTw0Q" name="discrete"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSUce6Ed-7etIj5eTw0Q" name="dense" value="1"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSXMe6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_EventKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSXce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_eMs4wA-KEdyNj8xzjk-DoA"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSXse6Ed-7etIj5eTw0Q" name="start"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSX8e6Ed-7etIj5eTw0Q" name="finish" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSYMe6Ed-7etIj5eTw0Q" name="send" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSYce6Ed-7etIj5eTw0Q" name="receive" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSYse6Ed-7etIj5eTw0Q" name="consume" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZSaMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_DateTime" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_DateTime">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSace6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_sexkYAnxEdy9WM11hWri2g"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSb8e6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HLAM_CallConcurrencyKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZScMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9CDJMBHjEdy7mJMaejUq5Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZScce6Ed-7etIj5eTw0Q" name="sequential"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZScse6Ed-7etIj5eTw0Q" name="guarded" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSc8e6Ed-7etIj5eTw0Q" name="concurrent" value="2"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSe8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSfMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>
-              </eAnnotations>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSfce6Ed-7etIj5eTw0Q" name="bit"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSfse6Ed-7etIj5eTw0Q" name="Byte" value="1"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSf8e6Ed-7etIj5eTw0Q" name="KB" value="2"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSgMe6Ed-7etIj5eTw0Q" name="MB" value="3"/>
-              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSgce6Ed-7etIj5eTw0Q" name="GB" value="4"/>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aSb3Ese6Ed-7etIj5eTw0Q" name="NFP_Duration" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aSb3E8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aYFzIse6Ed-7etIj5eTw0Q" name="NFP_Integer" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aYFzI8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_adnMUse6Ed-7etIj5eTw0Q" name="NFP_DataSize" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_adnMU8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_amGZ8Me6Ed-7etIj5eTw0Q" name="UtilityType" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_amGZ8ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_4TENQBEBEdyx6M3BlUjlCQ"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_amGZ88e6Ed-7etIj5eTw0Q" name="ArrivalPattern" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_amGZ9Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_am_x0ce6Ed-7etIj5eTw0Q" name="NFP_DateTime" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_am_x0se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_NIDGMBFREdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aoowkce6Ed-7etIj5eTw0Q" name="NFP_Percentage" instanceClassName="java.lang.String">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aoowkse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
-                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ZPC-IBFaEdyUJeMeN__D-A"/>
-              </eAnnotations>
-            </eClassifiers>
-          </contents>
-        </eAnnotations>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_a1ASIHD7EeWsMJjT42u20Q" annotatedElement="_Y4GZwDcwEd-mWLzcI61s7Q">
-          <body>The following attributes are deprecated:&#xD;
--respT&#xD;
--blockT</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_gAqz0HD9EeWsMJjT42u20Q" annotatedElement="_hMroYzg0EeCE2sZUGxu35w">
-          <body>deprecated</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_UbCWwHGoEeWnWZfsnDCUoA" annotatedElement="_Y4GZwDcwEd-mWLzcI61s7Q">
-          <body>operationReqForSporadicOcc: the list of operations that need to be invoked to allow the sporadic occurrence of the &quot;context&quot; operation.&#xD;
-&#xD;
-Constraints:&#xD;
-Only for sporadic occurrence kind.&#xD;
-The operations in the list must be owned by the Component which owns the 'context' operation.&#xD;
-If the list is not empty the &quot;context&quot; operation must have private visibility and it cannot be invoked directly by other operations.&#xD;
-If the list is empty the &quot;context&quot; operation must be invoked directly by other operations.&#xD;
-</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_AuLR4HJpEeWA88Dv12-yjw" annotatedElement="__uhSsDg3EeCE2sZUGxu35w">
-          <body>To be renamed with CHRtFeature, as extension of the MARTE RtFeature&#xD;
-</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_nCtD8OniEeWA_dLIUfgPeA" annotatedElement="_gmfo0DcwEd-mWLzcI61s7Q">
-          <body>allows to use CHRTSpecification in composite diagrams, where Properties are instances</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_rXQCUOniEeWA_dLIUfgPeA" annotatedElement="_AWhm4XJpEeWA88Dv12-yjw">
-          <body>allows to decorate private operations for component istances, i.e. operations which are not provided by any port instance (i.e. slot)</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_yuANcOniEeWA_dLIUfgPeA" annotatedElement="_BXSAQTg4EeCE2sZUGxu35w">
-          <body>allows to decorate public operations for component instances, i.e. operations which are provided by port instances (i.e. slot)</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_9XR5QOniEeWA_dLIUfgPeA" annotatedElement="_Y4GZwDcwEd-mWLzcI61s7Q">
-          <body>CHRtSpecification extends MARTE RtSpecification</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_5GHwoOnjEeWA_dLIUfgPeA" annotatedElement="_gDlVseniEeWA_dLIUfgPeA">
-          <body>To extend CHRtSpecification Comments&#xD;
-</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_RysYEOnkEeWA_dLIUfgPeA" annotatedElement="_kN5PAEApEeCgBsnPy5jVRQ">
-          <body>The operation to be decorated</body>
-        </ownedComment>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_WP3MMDcwEd-mWLzcI61s7Q" alias="RtSpecification">
-          <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_AZ8eMEFeEd6UW4qJC-Vahw"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_eScikDcwEd-mWLzcI61s7Q" alias="Property">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_KH7CgDi7Ed-BkomQ9Pp_0A" alias="BehavioralFeature">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#BehavioralFeature"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_d-TA0Dg0EeCE2sZUGxu35w" alias="Slot">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_QvznAEAbEeCQKOeIf0epIQ" alias="Comment">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_6dTt4NqwEeCgKdScvhOcyQ" alias="InstanceSpecification">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_T9iikDzbEeW-QPagynd_rQ" alias="Operation">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-        </elementImport>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_SwSXIG5xEeWR-9VJ87ZvRA" alias="Component">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-        </elementImport>
-        <packagedElement xmi:type="uml:Association" xmi:id="_gmfo0DcwEd-mWLzcI61s7Q" name="A_Stereotype_0_Property" memberEnd="_gnE3oDcwEd-mWLzcI61s7Q _gnGFwjcwEd-mWLzcI61s7Q">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_gnGFwjcwEd-mWLzcI61s7Q" name="stereotype_0" type="_Y4GZwDcwEd-mWLzcI61s7Q" isUnique="false" association="_gmfo0DcwEd-mWLzcI61s7Q">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gnHT4TcwEd-mWLzcI61s7Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gnHT4DcwEd-mWLzcI61s7Q" value="*"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Y4GZwDcwEd-mWLzcI61s7Q" name="CHRtSpecification">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_gnE3oDcwEd-mWLzcI61s7Q" name="partWithPort" isUnique="false" association="_gmfo0DcwEd-mWLzcI61s7Q">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gnGFwDcwEd-mWLzcI61s7Q"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gnGFwTcwEd-mWLzcI61s7Q" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_krv04MASEd-Dn5_MBIs5Vw" name="WCET" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l7BrcMASEd-Dn5_MBIs5Vw" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l7K1YMASEd-Dn5_MBIs5Vw" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_l7K1YcASEd-Dn5_MBIs5Vw">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_7t0z8MATEd-Dn5_MBIs5Vw" name="localWCET" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9PR_oMATEd-Dn5_MBIs5Vw"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9PbwoMATEd-Dn5_MBIs5Vw" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_9PbwocATEd-Dn5_MBIs5Vw">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_GLIWsMDMEd-RT45s8cwWMg" name="relativePriority" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JTtRMMDMEd-RT45s8cwWMg"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JT3CMMDMEd-RT45s8cwWMg" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_JT3CMcDMEd-RT45s8cwWMg">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_AzLIoMDOEd-RT45s8cwWMg" name="ceiling" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C8RjIMDOEd-RT45s8cwWMg"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C8atEMDOEd-RT45s8cwWMg" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_C8atEcDOEd-RT45s8cwWMg">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_p-hwQMGKEd--atLXXafOiQ" name="memorySizeFootprint" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zESa4MGKEd--atLXXafOiQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zEcL4MGKEd--atLXXafOiQ" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_zEcL4cGKEd--atLXXafOiQ">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_Fv3wQMGLEd--atLXXafOiQ" name="stackSize" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hm8moMGLEd--atLXXafOiQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HnFwkMGLEd--atLXXafOiQ" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_HnFwkcGLEd--atLXXafOiQ">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_IjvmEMGLEd--atLXXafOiQ" name="heapSize" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LB3OUMGLEd--atLXXafOiQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LCAYQMGLEd--atLXXafOiQ" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_LCKJQMGLEd--atLXXafOiQ">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_hMroYDg0EeCE2sZUGxu35w" name="slot" association="_hMroYzg0EeCE2sZUGxu35w">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hMroYjg0EeCE2sZUGxu35w"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hMroYTg0EeCE2sZUGxu35w" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_RtpIQEAbEeCQKOeIf0epIQ" name="base_Comment" association="_RtpIQUAbEeCQKOeIf0epIQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_voeRYEAoEeCgBsnPy5jVRQ" name="occKind" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y0orYEAoEeCgBsnPy5jVRQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y0x1UEAoEeCgBsnPy5jVRQ" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_y07mUEAoEeCgBsnPy5jVRQ">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_GcHoUEApEeCgBsnPy5jVRQ" name="protection" visibility="public">
-            <type xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9CDJMBHjEdy7mJMaejUq5Q"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ib02QEApEeCgBsnPy5jVRQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ib-nQEApEeCgBsnPy5jVRQ" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_IcIYQEApEeCgBsnPy5jVRQ">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_XJT-YEApEeCgBsnPy5jVRQ" name="rlDl" visibility="public">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZXBzIEApEeCgBsnPy5jVRQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZXLkIEApEeCgBsnPy5jVRQ" value="1"/>
-            <defaultValue xmi:type="uml:LiteralString" xmi:id="_ZXefEEApEeCgBsnPy5jVRQ">
-              <value xsi:nil="true"/>
-            </defaultValue>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_kNveAEApEeCgBsnPy5jVRQ" name="context" association="_kN5PAEApEeCgBsnPy5jVRQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#BehavioralFeature"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kNveAkApEeCgBsnPy5jVRQ" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kNveAUApEeCgBsnPy5jVRQ" value="1"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_4RoA0NqtEeCgKdScvhOcyQ" name="respT">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AtvRgNquEeCgKdScvhOcyQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_At4bcNquEeCgKdScvhOcyQ" value="*"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_jGsCMNqvEeCgKdScvhOcyQ" name="blockT">
-            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ox1AENqvEeCgKdScvhOcyQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ox-xENqvEeCgKdScvhOcyQ" value="*"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_8GvscHGnEeWnWZfsnDCUoA" name="operationReqForSporadicOcc" association="_8Gvsc3GnEeWnWZfsnDCUoA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8GvscXGnEeWnWZfsnDCUoA"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8GvscnGnEeWnWZfsnDCUoA" value="*"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_hMroYzg0EeCE2sZUGxu35w" name="cH_RtSpecification_slot_0" memberEnd="_hMroZDg0EeCE2sZUGxu35w _hMroYDg0EeCE2sZUGxu35w">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_hMroZDg0EeCE2sZUGxu35w" name="cH_RtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" association="_hMroYzg0EeCE2sZUGxu35w">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hMroZjg0EeCE2sZUGxu35w" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hMroZTg0EeCE2sZUGxu35w" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="__uhSsDg3EeCE2sZUGxu35w" name="CHRtPortSlot">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_BXSAQDg4EeCE2sZUGxu35w" name="base_Slot" association="_BXSAQTg4EeCE2sZUGxu35w">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_CNOJwDg4EeCE2sZUGxu35w" name="cH_RtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" association="_CNOJwzg4EeCE2sZUGxu35w">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CNOJwjg4EeCE2sZUGxu35w"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CNOJwTg4EeCE2sZUGxu35w" value="*"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_AWhm4HJpEeWA88Dv12-yjw" name="base_InstanceSpecification" association="_AWhm4XJpEeWA88Dv12-yjw">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_BXSAQTg4EeCE2sZUGxu35w" name="E_CHRtPortSlot_Slot0" memberEnd="_BXSAQjg4EeCE2sZUGxu35w _BXSAQDg4EeCE2sZUGxu35w">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_BXSAQjg4EeCE2sZUGxu35w" name="extension_CHRtPortSlot" type="__uhSsDg3EeCE2sZUGxu35w" aggregation="composite" association="_BXSAQTg4EeCE2sZUGxu35w"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_CNOJwzg4EeCE2sZUGxu35w" name="cHRtPortSlot_cH_RtSpecification_0" memberEnd="_CNOJxDg4EeCE2sZUGxu35w _CNOJwDg4EeCE2sZUGxu35w">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_CNOJxDg4EeCE2sZUGxu35w" name="cHRtPortSlot" type="__uhSsDg3EeCE2sZUGxu35w" association="_CNOJwzg4EeCE2sZUGxu35w">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CNOJxjg4EeCE2sZUGxu35w" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CNOJxTg4EeCE2sZUGxu35w" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_RtpIQUAbEeCQKOeIf0epIQ" name="E_CHRtSpecification_Comment0" memberEnd="_RtpIQkAbEeCQKOeIf0epIQ _RtpIQEAbEeCQKOeIf0epIQ">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_RtpIQkAbEeCQKOeIf0epIQ" name="extension_CHRtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" aggregation="composite" association="_RtpIQUAbEeCQKOeIf0epIQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_kN5PAEApEeCgBsnPy5jVRQ" name="cHRtSpecification_behavioralFeature_0" memberEnd="_kN5PAUApEeCgBsnPy5jVRQ _kNveAEApEeCgBsnPy5jVRQ">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_kN5PAUApEeCgBsnPy5jVRQ" name="cHRtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" association="_kN5PAEApEeCgBsnPy5jVRQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kN5PA0ApEeCgBsnPy5jVRQ" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kN5PAkApEeCgBsnPy5jVRQ" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_8Gvsc3GnEeWnWZfsnDCUoA" name="cHRtSpecification_operation_1" memberEnd="_8GvsdHGnEeWnWZfsnDCUoA _8GvscHGnEeWnWZfsnDCUoA">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_8GvsdHGnEeWnWZfsnDCUoA" name="cHRtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" association="_8Gvsc3GnEeWnWZfsnDCUoA">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8GvsdXGnEeWnWZfsnDCUoA" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8GvsdnGnEeWnWZfsnDCUoA" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_AWhm4XJpEeWA88Dv12-yjw" name="E_CHRtPortSlot_InstanceSpecification1" memberEnd="_AWhm4nJpEeWA88Dv12-yjw _AWhm4HJpEeWA88Dv12-yjw">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_AWhm4nJpEeWA88Dv12-yjw" name="extension_CHRtPortSlot" type="__uhSsDg3EeCE2sZUGxu35w" aggregation="composite" association="_AWhm4XJpEeWA88Dv12-yjw"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_PfAJEOniEeWA_dLIUfgPeA" name="RunTimeSupport">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_U2KbAOniEeWA_dLIUfgPeA" name="monitoring">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_cspPEOniEeWA_dLIUfgPeA" name="verification">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_gDlVsOniEeWA_dLIUfgPeA" name="base_Comment" association="_gDlVseniEeWA_dLIUfgPeA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_gDlVseniEeWA_dLIUfgPeA" name="E_RunTimeSupport_Comment1" memberEnd="_gDlVsuniEeWA_dLIUfgPeA _gDlVsOniEeWA_dLIUfgPeA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gDlVsuniEeWA_dLIUfgPeA" name="extension_RunTimeSupport" type="_PfAJEOniEeWA_dLIUfgPeA" aggregation="composite" association="_gDlVseniEeWA_dLIUfgPeA"/>
-        </packagedElement>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Profile" xmi:id="_GMlQEGwuEeWvYIaEJT1qow" name="ARINCComponentModel">
-        <ownedComment xmi:type="uml:Comment" xmi:id="_WVeDQDzbEeW-QPagynd_rQ" annotatedElement="_VhoykDzbEeW-QPagynd_rQ _f6fK0TzdEeW-QPagynd_rQ">
-          <body>to be applied together with CHRtSpecification to set ARINC properties at Component instance level</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_dQVjoDzbEeW-QPagynd_rQ" annotatedElement="_VKW7ATzbEeW-QPagynd_rQ _fCRJYTzdEeW-QPagynd_rQ">
-          <body>used to set ARINC properties at Component level</body>
-        </ownedComment>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_KGFdEDxeEeWGMtwulVMCiA" name="ARINCComponentImpl">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_WKYfcG5xEeWR-9VJ87ZvRA" name="base_Component" association="_WKYfcW5xEeWR-9VJ87ZvRA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_PQwyMDxeEeWGMtwulVMCiA" name="ARINCProcess">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_VKW7ADzbEeW-QPagynd_rQ" name="base_Operation" association="_VKW7ATzbEeW-QPagynd_rQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_VhlvQDzbEeW-QPagynd_rQ" name="base_Comment" association="_VhoykDzbEeW-QPagynd_rQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_fi-fMDzcEeW-QPagynd_rQ" name="operationsGroups">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T2bjEDzdEeW-QPagynd_rQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T2emYDzdEeW-QPagynd_rQ" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_QtSakDxeEeWGMtwulVMCiA" name="ARINCFunction">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_fCRJYDzdEeW-QPagynd_rQ" name="base_Operation" association="_fCRJYTzdEeW-QPagynd_rQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_f6fK0DzdEeW-QPagynd_rQ" name="base_Comment" association="_f6fK0TzdEeW-QPagynd_rQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_oMJfADzdEeW-QPagynd_rQ" name="followedBy" association="_oMJfAzzdEeW-QPagynd_rQ">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oMJfATzdEeW-QPagynd_rQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oMJfAjzdEeW-QPagynd_rQ" value="*"/>
-          </ownedAttribute>
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_yIfzYDzdEeW-QPagynd_rQ" name="rateDivider">
-            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0kBaoDzdEeW-QPagynd_rQ"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0kBaoTzdEeW-QPagynd_rQ" value="1"/>
-            <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_CWOWMIoBEeWJR8K6BvHC5w" value="1"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_VKW7ATzbEeW-QPagynd_rQ" name="E_ARINCProcess_Operation1" memberEnd="_VKW7AjzbEeW-QPagynd_rQ _VKW7ADzbEeW-QPagynd_rQ">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_VKW7AjzbEeW-QPagynd_rQ" name="extension_ARINCProcess" type="_PQwyMDxeEeWGMtwulVMCiA" aggregation="composite" association="_VKW7ATzbEeW-QPagynd_rQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_VhoykDzbEeW-QPagynd_rQ" name="E_ARINCProcess_Comment1" memberEnd="_VhoykTzbEeW-QPagynd_rQ _VhlvQDzbEeW-QPagynd_rQ">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_VhoykTzbEeW-QPagynd_rQ" name="extension_ARINCProcess" type="_PQwyMDxeEeWGMtwulVMCiA" aggregation="composite" association="_VhoykDzbEeW-QPagynd_rQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_fCRJYTzdEeW-QPagynd_rQ" name="E_ARINCFunction_Operation1" memberEnd="_fCRJYjzdEeW-QPagynd_rQ _fCRJYDzdEeW-QPagynd_rQ">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_fCRJYjzdEeW-QPagynd_rQ" name="extension_ARINCFunction" type="_QtSakDxeEeWGMtwulVMCiA" aggregation="composite" association="_fCRJYTzdEeW-QPagynd_rQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_f6fK0TzdEeW-QPagynd_rQ" name="E_ARINCFunction_Comment1" memberEnd="_f6fK0jzdEeW-QPagynd_rQ _f6fK0DzdEeW-QPagynd_rQ">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_f6fK0jzdEeW-QPagynd_rQ" name="extension_ARINCFunction" type="_QtSakDxeEeWGMtwulVMCiA" aggregation="composite" association="_f6fK0TzdEeW-QPagynd_rQ"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Association" xmi:id="_oMJfAzzdEeW-QPagynd_rQ" name="" memberEnd="_oMJfBDzdEeW-QPagynd_rQ _oMJfADzdEeW-QPagynd_rQ">
-          <ownedEnd xmi:type="uml:Property" xmi:id="_oMJfBDzdEeW-QPagynd_rQ" name="aRINCFunction" type="_QtSakDxeEeWGMtwulVMCiA" association="_oMJfAzzdEeW-QPagynd_rQ">
-            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oMJfBTzdEeW-QPagynd_rQ" value="1"/>
-            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oMJfBjzdEeW-QPagynd_rQ" value="1"/>
-          </ownedEnd>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_WKYfcW5xEeWR-9VJ87ZvRA" name="E_ARINCComponentImpl_Component1" memberEnd="_WKYfcm5xEeWR-9VJ87ZvRA _WKYfcG5xEeWR-9VJ87ZvRA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_WKYfcm5xEeWR-9VJ87ZvRA" name="extension_ARINCComponentImpl" type="_KGFdEDxeEeWGMtwulVMCiA" aggregation="composite" association="_WKYfcW5xEeWR-9VJ87ZvRA"/>
-        </packagedElement>
-      </packagedElement>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Profile" xmi:id="_MftccDQ2EeC0ueejuetpgA" name="ComponentModel" URI="http://CHESS/ComponentModel" metaclassReference="_akN5ADQ2EeC0ueejuetpgA">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GzlGcTQ-EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-        <contents xmi:type="ecore:EPackage" xmi:id="_xt9poDUkEeC3rNpnAhYo0w" name="ComponentModel" nsURI="http://CHESS/ComponentModel" nsPrefix="ComponentModel">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xuQkkDUkEeC3rNpnAhYo0w" source="PapyrusVersion">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQkkTUkEeC3rNpnAhYo0w" key="Version" value="0.0.3"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQkkjUkEeC3rNpnAhYo0w" key="Comment" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQkkzUkEeC3rNpnAhYo0w" key="Copyright" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQklDUkEeC3rNpnAhYo0w" key="Date" value="2011-02-10"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQklTUkEeC3rNpnAhYo0w" key="Author" value=""/>
-          </eAnnotations>
-          <eClassifiers xmi:type="ecore:EClass" xmi:id="_xt9poTUkEeC3rNpnAhYo0w" name="ComponentType">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xt9pojUkEeC3rNpnAhYo0w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EfKMwDQ-EeC0ueejuetpgA"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xt9pozUkEeC3rNpnAhYo0w" name="base_Component" ordered="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-            </eStructuralFeatures>
-          </eClassifiers>
-          <eClassifiers xmi:type="ecore:EClass" xmi:id="_xt9ppTUkEeC3rNpnAhYo0w" name="ComponentImplementation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xt9ppjUkEeC3rNpnAhYo0w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CuRAcDRKEeChqekVLFmSjQ"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xt9ppzUkEeC3rNpnAhYo0w" name="base_Component" ordered="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-            </eStructuralFeatures>
-            <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xt9pqTUkEeC3rNpnAhYo0w" name="language" ordered="false">
-              <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-            </eStructuralFeatures>
-            <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xt9pqzUkEeC3rNpnAhYo0w" name="OS" ordered="false">
-              <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-            </eStructuralFeatures>
-          </eClassifiers>
-        </contents>
-        <contents xmi:type="ecore:EPackage" xmi:id="_OopHwDRKEeChqekVLFmSjQ" name="ComponentModel" nsURI="http://CHESS/schemas/ComponentModel/_OofWwDRKEeChqekVLFmSjQ/1" nsPrefix="ComponentModel">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oo8CsDRKEeChqekVLFmSjQ" source="PapyrusVersion">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CsTRKEeChqekVLFmSjQ" key="Version" value="0.0.2"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CsjRKEeChqekVLFmSjQ" key="Comment" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CszRKEeChqekVLFmSjQ" key="Copyright" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CtDRKEeChqekVLFmSjQ" key="Date" value="2011-02-09"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CtTRKEeChqekVLFmSjQ" key="Author" value=""/>
-          </eAnnotations>
-          <eClassifiers xmi:type="ecore:EClass" xmi:id="_OopHwTRKEeChqekVLFmSjQ" name="ComponentType">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OopHwjRKEeChqekVLFmSjQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EfKMwDQ-EeC0ueejuetpgA"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OopHwzRKEeChqekVLFmSjQ" name="base_Component" ordered="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-            </eStructuralFeatures>
-          </eClassifiers>
-          <eClassifiers xmi:type="ecore:EClass" xmi:id="_OopHxTRKEeChqekVLFmSjQ" name="ComponentImplementation">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OopHxjRKEeChqekVLFmSjQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CuRAcDRKEeChqekVLFmSjQ"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OopHxzRKEeChqekVLFmSjQ" name="base_Component" ordered="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-            </eStructuralFeatures>
-            <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OopHyTRKEeChqekVLFmSjQ" name="language" ordered="false">
-              <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-            </eStructuralFeatures>
-            <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OopHyzRKEeChqekVLFmSjQ" name="OS" ordered="false">
-              <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-            </eStructuralFeatures>
-          </eClassifiers>
-        </contents>
-        <contents xmi:type="ecore:EPackage" xmi:id="_GzlGcjQ-EeC0ueejuetpgA" name="ComponentModel" nsURI="http://CHESS/schemas/ComponentModel/_GzlGcDQ-EeC0ueejuetpgA/0" nsPrefix="ComponentModel">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gzu3cTQ-EeC0ueejuetpgA" source="PapyrusVersion">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3cjQ-EeC0ueejuetpgA" key="Version" value="0.0.1"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3czQ-EeC0ueejuetpgA" key="Comment" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3dDQ-EeC0ueejuetpgA" key="Copyright" value=""/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3dTQ-EeC0ueejuetpgA" key="Date" value="2011-02-09"/>
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3djQ-EeC0ueejuetpgA" key="Author" value=""/>
-          </eAnnotations>
-          <eClassifiers xmi:type="ecore:EClass" xmi:id="_GzlGczQ-EeC0ueejuetpgA" name="ComponentType">
-            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GzlGdDQ-EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EfKMwDQ-EeC0ueejuetpgA"/>
-            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GzlGdTQ-EeC0ueejuetpgA" name="base_Component" ordered="false" lowerBound="1">
-              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
-            </eStructuralFeatures>
-          </eClassifiers>
-        </contents>
-      </eAnnotations>
-      <ownedComment xmi:type="uml:Comment" xmi:id="_w1_6sPDMEeWB2dX6SBTUpA" annotatedElement="_PYtcIKrFEeSm_c79BO815Q">
-        <body>Avioncs IMA concept</body>
-      </ownedComment>
-      <ownedComment xmi:type="uml:Comment" xmi:id="_0sNXQPDMEeWB2dX6SBTUpA" annotatedElement="_ONO1kPQFEeSYU563tLwCJg">
-        <body>represents a SW interface for a given HW component; to hide hardware properties from higher software layers</body>
-      </ownedComment>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_akN5ADQ2EeC0ueejuetpgA" alias="Component">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-      </elementImport>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_EfKMwDQ-EeC0ueejuetpgA" name="ComponentType">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_FrKF0DQ-EeC0ueejuetpgA" name="base_Component" association="_FrT20DQ-EeC0ueejuetpgA">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_FrT20DQ-EeC0ueejuetpgA" name="E_ComponentType_Component0" memberEnd="_FrT20TQ-EeC0ueejuetpgA _FrKF0DQ-EeC0ueejuetpgA">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_FrT20TQ-EeC0ueejuetpgA" name="extension_ComponentType" type="_EfKMwDQ-EeC0ueejuetpgA" aggregation="composite" association="_FrT20DQ-EeC0ueejuetpgA"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_CuRAcDRKEeChqekVLFmSjQ" name="ComponentImplementation">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_D0clYDRKEeChqekVLFmSjQ" name="base_Component" association="_D0clYTRKEeChqekVLFmSjQ">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_E_QLoDRKEeChqekVLFmSjQ" name="language" visibility="public">
-          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GhmvMDRKEeChqekVLFmSjQ"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GhmvMTRKEeChqekVLFmSjQ" value="1"/>
-          <defaultValue xmi:type="uml:LiteralString" xmi:id="_GhwgMDRKEeChqekVLFmSjQ">
-            <value xsi:nil="true"/>
-          </defaultValue>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_G55TYDRKEeChqekVLFmSjQ" name="OS" visibility="public">
-          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_H5hkYDRKEeChqekVLFmSjQ"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_H5rVYDRKEeChqekVLFmSjQ" value="1"/>
-          <defaultValue xmi:type="uml:LiteralString" xmi:id="_H51GYDRKEeChqekVLFmSjQ">
-            <value xsi:nil="true"/>
-          </defaultValue>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_qDnbgL85EeCLOv-_yLVzGQ" name="sourceCodeLocation" visibility="public">
-          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qDnbgr85EeCLOv-_yLVzGQ"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qDnbgb85EeCLOv-_yLVzGQ" value="*"/>
-          <defaultValue xmi:type="uml:LiteralString" xmi:id="_qDnbg785EeCLOv-_yLVzGQ">
-            <value xsi:nil="true"/>
-          </defaultValue>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_D0clYTRKEeChqekVLFmSjQ" name="E_ComponentImplementation_Component0" memberEnd="_D0clYjRKEeChqekVLFmSjQ _D0clYDRKEeChqekVLFmSjQ">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_D0clYjRKEeChqekVLFmSjQ" name="extension_ComponentImplementation" type="_CuRAcDRKEeChqekVLFmSjQ" aggregation="composite" association="_D0clYTRKEeChqekVLFmSjQ"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_PYtcIKrFEeSm_c79BO815Q" name="FunctionalPartition">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcIarFEeSm_c79BO815Q" name="utilization">
-          <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PYtcIqrFEeSm_c79BO815Q"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PYtcI6rFEeSm_c79BO815Q" value="1"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcJKrFEeSm_c79BO815Q" name="base_Component">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcJarFEeSm_c79BO815Q" name="MAF">
-          <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcJqrFEeSm_c79BO815Q" name="MIF">
-          <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcJ6rFEeSm_c79BO815Q" name="SchedulingTable">
-          <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_SfEJEKrFEeSm_c79BO815Q" name="base_Component" association="_SfEwIKrFEeSm_c79BO815Q">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_SfEwIKrFEeSm_c79BO815Q" name="E_FunctionalPartition_Component1" memberEnd="_SfEwIarFEeSm_c79BO815Q _SfEJEKrFEeSm_c79BO815Q">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_SfEwIarFEeSm_c79BO815Q" name="extension_FunctionalPartition" type="_PYtcIKrFEeSm_c79BO815Q" aggregation="composite" association="_SfEwIKrFEeSm_c79BO815Q"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_ONO1kPQFEeSYU563tLwCJg" name="HwAbstractionComponentImpl">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_QpZ9EPQFEeSYU563tLwCJg" name="hwRes">
-          <type xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_LDER0BJxEdygQ5HMNSpiZw"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_UqPN0PTMEeS54qNpVReixA" name="base_Component" association="_UqhhsPTMEeS54qNpVReixA">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_UqhhsPTMEeS54qNpVReixA" name="E_HwAbstractionComponentImpl_Component1" memberEnd="_UqhhsfTMEeS54qNpVReixA _UqPN0PTMEeS54qNpVReixA">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_UqhhsfTMEeS54qNpVReixA" name="extension_HwAbstractionComponentImpl" type="_ONO1kPQFEeSYU563tLwCJg" aggregation="composite" association="_UqhhsPTMEeS54qNpVReixA"/>
-      </packagedElement>
-    </packagedElement>
-    <packagedElement xmi:type="uml:DataType" xmi:id="__Ya2gGviEeCFqs3XUsvipQ" name="dummy"/>
-    <packagedElement xmi:type="uml:Package" xmi:id="_4NqqQKbREeSHP5PnCeTneg" name="SystemModel">
-      <packagedElement xmi:type="uml:Profile" xmi:id="_-aQIUKbREeSHP5PnCeTneg" name="STS" metaclassReference="_b8XiYKbSEeSHP5PnCeTneg">
-        <ownedComment xmi:type="uml:Comment" xmi:id="_iQ5AQCxwEeWjv8DLIIHdmA" annotatedElement="_RSRXMKbSEeSHP5PnCeTneg">
-          <body>Human structured classes can be decomposed in HumanActuatorUnits</body>
-        </ownedComment>
-        <ownedComment xmi:type="uml:Comment" xmi:id="_nHQSQCxwEeWjv8DLIIHdmA" annotatedElement="_GJ0A0CxwEeWjv8DLIIHdmA">
-          <body>Organization structured classes can be decompsosed in OrganizationUnits</body>
-        </ownedComment>
-        <elementImport xmi:type="uml:ElementImport" xmi:id="_b8XiYKbSEeSHP5PnCeTneg" alias="Class">
-          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-        </elementImport>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_RSRXMKbSEeSHP5PnCeTneg" name="Human">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_c_OGgKbSEeSHP5PnCeTneg" name="base_Class" association="_c_PUoKbSEeSHP5PnCeTneg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_SUV4MKbSEeSHP5PnCeTneg" name="OrganizationUnit" isAbstract="true">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_dW_tUKbSEeSHP5PnCeTneg" name="base_Class" association="_dXAUYKbSEeSHP5PnCeTneg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_VU1NsKbSEeSHP5PnCeTneg" name="Technological">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_dsomIKbSEeSHP5PnCeTneg" name="base_Class" association="_dsomIabSEeSHP5PnCeTneg">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_c_PUoKbSEeSHP5PnCeTneg" name="E_Human_Class1" memberEnd="_c_PUoabSEeSHP5PnCeTneg _c_OGgKbSEeSHP5PnCeTneg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_c_PUoabSEeSHP5PnCeTneg" name="extension_Human" type="_RSRXMKbSEeSHP5PnCeTneg" aggregation="composite" association="_c_PUoKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_dXAUYKbSEeSHP5PnCeTneg" name="E_OrganizationUnit_Class1" memberEnd="_dXAUYabSEeSHP5PnCeTneg _dW_tUKbSEeSHP5PnCeTneg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_dXAUYabSEeSHP5PnCeTneg" name="extension_OrganizationUnit" type="_SUV4MKbSEeSHP5PnCeTneg" aggregation="composite" association="_dXAUYKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_dsomIabSEeSHP5PnCeTneg" name="E_Technological_Class1" memberEnd="_dsomIqbSEeSHP5PnCeTneg _dsomIKbSEeSHP5PnCeTneg">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_dsomIqbSEeSHP5PnCeTneg" name="extension_Technological" type="_VU1NsKbSEeSHP5PnCeTneg" aggregation="composite" association="_dsomIabSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6RizgM1SEeSrt5YehnIlig" name="TimePressure">
-          <generalization xmi:type="uml:Generalization" xmi:id="_92drwM1SEeSrt5YehnIlig" general="_SUV4MKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_4OEDMCxlEeWjv8DLIIHdmA" name="OUMissionManagement">
-          <generalization xmi:type="uml:Generalization" xmi:id="_InRhwCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Eg1cYCxmEeWjv8DLIIHdmA" name="OURulesRegulationManagement">
-          <generalization xmi:type="uml:Generalization" xmi:id="_JXKtoCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_McNXgCxmEeWjv8DLIIHdmA" name="OUClimateManagement">
-          <generalization xmi:type="uml:Generalization" xmi:id="_I8oGsCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Pmh-cCxmEeWjv8DLIIHdmA" name="OUOversightManagement">
-          <generalization xmi:type="uml:Generalization" xmi:id="_JtwosCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_S1cxgCxmEeWjv8DLIIHdmA" name="OUProcessManagement">
-          <generalization xmi:type="uml:Generalization" xmi:id="_KuY_QCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_bYX_YCxnEeWjv8DLIIHdmA" name="OUResourceManagement">
-          <generalization xmi:type="uml:Generalization" xmi:id="_LJF-QCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_00-qsCxpEeWjv8DLIIHdmA" name="HSAttention">
-          <generalization xmi:type="uml:Generalization" xmi:id="_85r5QCxvEeWjv8DLIIHdmA" general="_6uraQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6pJowCxpEeWjv8DLIIHdmA" name="HSPerception">
-          <generalization xmi:type="uml:Generalization" xmi:id="_9UoI0CxvEeWjv8DLIIHdmA" general="_6uraQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_AGMgQCxqEeWjv8DLIIHdmA" name="HSKnowledgePerception">
-          <generalization xmi:type="uml:Generalization" xmi:id="_9vUgwCxvEeWjv8DLIIHdmA" general="_6uraQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_3mW7QCxrEeWjv8DLIIHdmA" name="HSSensory">
-          <generalization xmi:type="uml:Generalization" xmi:id="_-HWmQCxvEeWjv8DLIIHdmA" general="_6uraQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_CvekwCxsEeWjv8DLIIHdmA" name="HAFeedback">
-          <generalization xmi:type="uml:Generalization" xmi:id="_wRSOUCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_FmvFwCxsEeWjv8DLIIHdmA" name="HAIntent">
-          <generalization xmi:type="uml:Generalization" xmi:id="_xZ1x0CxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_KACBQCxsEeWjv8DLIIHdmA" name="HACommunication">
-          <generalization xmi:type="uml:Generalization" xmi:id="_yOtkUCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Nn4RsCxsEeWjv8DLIIHdmA" name="HATimeManagement">
-          <generalization xmi:type="uml:Generalization" xmi:id="_w_lewCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Q3XsgCxsEeWjv8DLIIHdmA" name="HASelection">
-          <generalization xmi:type="uml:Generalization" xmi:id="_xztDUCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_UdqdwCxsEeWjv8DLIIHdmA" name="HAResponse">
-          <generalization xmi:type="uml:Generalization" xmi:id="_yt-6QCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_YPlQMCxsEeWjv8DLIIHdmA" name="HAKnowledgeDecision">
-          <generalization xmi:type="uml:Generalization" xmi:id="_zL0FwCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_kV4MQCxvEeWjv8DLIIHdmA" name="HumanActuatorUnit" isAbstract="true">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_0kkBYCxvEeWjv8DLIIHdmA" name="base_Class" association="_0klPgCxvEeWjv8DLIIHdmA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_0klPgCxvEeWjv8DLIIHdmA" name="E_HumanActuatorUnit_Class1" memberEnd="_0klPgSxvEeWjv8DLIIHdmA _0kkBYCxvEeWjv8DLIIHdmA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_0klPgSxvEeWjv8DLIIHdmA" name="extension_HumanActuatorUnit" type="_kV4MQCxvEeWjv8DLIIHdmA" aggregation="composite" association="_0klPgCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6uraQCxvEeWjv8DLIIHdmA" name="HumanSensorUnit">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_-qnEUCxvEeWjv8DLIIHdmA" name="base_Class" association="_-qnrYCxvEeWjv8DLIIHdmA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_-qnrYCxvEeWjv8DLIIHdmA" name="E_HumanSensorUnit_Class1" memberEnd="_-qnrYSxvEeWjv8DLIIHdmA _-qnEUCxvEeWjv8DLIIHdmA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_-qnrYSxvEeWjv8DLIIHdmA" name="extension_HumanSensorUnit" type="_6uraQCxvEeWjv8DLIIHdmA" aggregation="composite" association="_-qnrYCxvEeWjv8DLIIHdmA"/>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Stereotype" xmi:id="_GJ0A0CxwEeWjv8DLIIHdmA" name="Organization">
-          <ownedAttribute xmi:type="uml:Property" xmi:id="_HQTu0CxwEeWjv8DLIIHdmA" name="base_Class" association="_HQUV4CxwEeWjv8DLIIHdmA">
-            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          </ownedAttribute>
-        </packagedElement>
-        <packagedElement xmi:type="uml:Extension" xmi:id="_HQUV4CxwEeWjv8DLIIHdmA" name="E_Organization_Class1" memberEnd="_HQUV4SxwEeWjv8DLIIHdmA _HQTu0CxwEeWjv8DLIIHdmA">
-          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_HQUV4SxwEeWjv8DLIIHdmA" name="extension_Organization" type="_GJ0A0CxwEeWjv8DLIIHdmA" aggregation="composite" association="_HQUV4CxwEeWjv8DLIIHdmA"/>
-        </packagedElement>
-      </packagedElement>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Profile" xmi:id="_f-f6oMvrEeSajLw6mg2A8Q" name="Safety" metaclassReference="_l5GQ0MvrEeSajLw6mg2A8Q _ekTGIMvuEeSajLw6mg2A8Q _-EGK8I_zEei_FpVxgbKIWA">
-      <ownedComment xmi:type="uml:Comment" xmi:id="_OibvkMvvEeSajLw6mg2A8Q" annotatedElement="_cUQWIMvuEeSajLw6mg2A8Q">
-        <body>Allows for a given provided port of a component instance to constrains the criticality level that a given component isntance must have in order to be able to access the port.&#xD;
-In case of base Constraint, the constrained element must refer a provided port+ instance or a slot, the latter as instance of a provided port.&#xD;
-In case of base Comment, its usage is the same of the CHRTSpecification.</body>
-      </ownedComment>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_l5GQ0MvrEeSajLw6mg2A8Q" alias="Constraint">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-      </elementImport>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_ekTGIMvuEeSajLw6mg2A8Q" alias="Comment">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
-      </elementImport>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_-EGK8I_zEei_FpVxgbKIWA" alias="Class">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      </elementImport>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_0pf5IMviEeSajLw6mg2A8Q" name="CriticalityLevel">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_m5evwMvrEeSajLw6mg2A8Q" name="base_Constraint" association="_m5evwcvrEeSajLw6mg2A8Q">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_tydZwMvrEeSajLw6mg2A8Q" name="isHigherThan" type="_0pf5IMviEeSajLw6mg2A8Q" association="_tydZw8vrEeSajLw6mg2A8Q">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tydZwcvrEeSajLw6mg2A8Q"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tydZwsvrEeSajLw6mg2A8Q" value="*"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_AM7xAMvsEeSajLw6mg2A8Q" name="mapsTo" type="_0pf5IMviEeSajLw6mg2A8Q" association="_AM-0UMvsEeSajLw6mg2A8Q">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AM7xAcvsEeSajLw6mg2A8Q"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AM7xAsvsEeSajLw6mg2A8Q" value="*"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_m5evwcvrEeSajLw6mg2A8Q" name="E_CriticalityLevel_Constraint1" memberEnd="_m5evwsvrEeSajLw6mg2A8Q _m5evwMvrEeSajLw6mg2A8Q">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_m5evwsvrEeSajLw6mg2A8Q" name="extension_CriticalityLevel" type="_0pf5IMviEeSajLw6mg2A8Q" aggregation="composite" association="_m5evwcvrEeSajLw6mg2A8Q"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Association" xmi:id="_tydZw8vrEeSajLw6mg2A8Q" name="" memberEnd="_tydZxMvrEeSajLw6mg2A8Q _tydZwMvrEeSajLw6mg2A8Q">
-        <ownedEnd xmi:type="uml:Property" xmi:id="_tydZxMvrEeSajLw6mg2A8Q" name="criticalityLevel" type="_0pf5IMviEeSajLw6mg2A8Q" association="_tydZw8vrEeSajLw6mg2A8Q">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tydZxcvrEeSajLw6mg2A8Q" value="1"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tydZxsvrEeSajLw6mg2A8Q" value="1"/>
-        </ownedEnd>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Association" xmi:id="_AM-0UMvsEeSajLw6mg2A8Q" name="" memberEnd="_AM-0UcvsEeSajLw6mg2A8Q _AM7xAMvsEeSajLw6mg2A8Q">
-        <ownedEnd xmi:type="uml:Property" xmi:id="_AM-0UcvsEeSajLw6mg2A8Q" name="criticalityLevel" type="_0pf5IMviEeSajLw6mg2A8Q" association="_AM-0UMvsEeSajLw6mg2A8Q">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AM-0UsvsEeSajLw6mg2A8Q" value="1"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AM-0U8vsEeSajLw6mg2A8Q" value="1"/>
-        </ownedEnd>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_cUQWIMvuEeSajLw6mg2A8Q" name="CriticalityInterfaceSpecification">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_dBHcIMvuEeSajLw6mg2A8Q" name="base_Constraint" association="_dBIDMMvuEeSajLw6mg2A8Q">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_4NKWsMvuEeSajLw6mg2A8Q" name="acceptedCriticalityForClients" type="_0pf5IMviEeSajLw6mg2A8Q" association="_4NK9wMvuEeSajLw6mg2A8Q">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4NKWscvuEeSajLw6mg2A8Q"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4NKWssvuEeSajLw6mg2A8Q" value="*"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_dBIDMMvuEeSajLw6mg2A8Q" name="E_CriticalityInterfaceSpecification_Constraint1" memberEnd="_dBIDMcvuEeSajLw6mg2A8Q _dBHcIMvuEeSajLw6mg2A8Q">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_dBIDMcvuEeSajLw6mg2A8Q" name="extension_CriticalityInterfaceSpecification" type="_cUQWIMvuEeSajLw6mg2A8Q" aggregation="composite" association="_dBIDMMvuEeSajLw6mg2A8Q"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Association" xmi:id="_4NK9wMvuEeSajLw6mg2A8Q" name="" memberEnd="_4NK9wcvuEeSajLw6mg2A8Q _4NKWsMvuEeSajLw6mg2A8Q">
-        <ownedEnd xmi:type="uml:Property" xmi:id="_4NK9wcvuEeSajLw6mg2A8Q" name="criticalitySpecification" type="_cUQWIMvuEeSajLw6mg2A8Q" association="_4NK9wMvuEeSajLw6mg2A8Q">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4NK9wsvuEeSajLw6mg2A8Q" value="1"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4NK9w8vuEeSajLw6mg2A8Q" value="1"/>
-        </ownedEnd>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_C408QMv8EeSEo9BsJH4uuw" name="CriticalitySpecification">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_Glbw4Mv8EeSEo9BsJH4uuw" name="base_Constraint" association="_Glc_AMv8EeSEo9BsJH4uuw">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_HR4AIMv8EeSEo9BsJH4uuw" name="criticalityLevel" type="_0pf5IMviEeSajLw6mg2A8Q" association="_HR5OQMv8EeSEo9BsJH4uuw">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HR4AIcv8EeSEo9BsJH4uuw" value="1"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HR4AIsv8EeSEo9BsJH4uuw" value="1"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_Glc_AMv8EeSEo9BsJH4uuw" name="E_CriticalitySpecification_Constraint1" memberEnd="_Glc_Acv8EeSEo9BsJH4uuw _Glbw4Mv8EeSEo9BsJH4uuw">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Glc_Acv8EeSEo9BsJH4uuw" name="extension_CriticalitySpecification" type="_C408QMv8EeSEo9BsJH4uuw" aggregation="composite" association="_Glc_AMv8EeSEo9BsJH4uuw"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Association" xmi:id="_HR5OQMv8EeSEo9BsJH4uuw" name="" memberEnd="_HR5OQcv8EeSEo9BsJH4uuw _HR4AIMv8EeSEo9BsJH4uuw">
-        <ownedEnd xmi:type="uml:Property" xmi:id="_HR5OQcv8EeSEo9BsJH4uuw" name="criticalitySpecification" type="_C408QMv8EeSEo9BsJH4uuw" association="_HR5OQMv8EeSEo9BsJH4uuw">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HR5OQsv8EeSEo9BsJH4uuw" value="1"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HR5OQ8v8EeSEo9BsJH4uuw" value="1"/>
-        </ownedEnd>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_4exhMI_zEei_FpVxgbKIWA" name="Hazard">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_SG2HkY_0Eei_FpVxgbKIWA" name="base_Class" association="_SGYNgI_0Eei_FpVxgbKIWA">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_SGYNgI_0Eei_FpVxgbKIWA" name="E_Hazard_Class1" memberEnd="_SG2HkI_0Eei_FpVxgbKIWA _SG2HkY_0Eei_FpVxgbKIWA">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_SG2HkI_0Eei_FpVxgbKIWA" name="extension_Hazard" type="_4exhMI_zEei_FpVxgbKIWA" aggregation="composite" association="_SGYNgI_0Eei_FpVxgbKIWA"/>
-      </packagedElement>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Package" xmi:id="_RL274MyCEeikFNSMhHHwbQ" name="ParameterizedArchitecture">
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_RL274cyCEeikFNSMhHHwbQ" name="InstantiatedArchitectureConfiguration">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_RL274syCEeikFNSMhHHwbQ" name="ParameterList">
-          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RL2748yCEeikFNSMhHHwbQ"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RL275MyCEeikFNSMhHHwbQ" value="*"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_RL275cyCEeikFNSMhHHwbQ" name="base_Property" association="_RL276cyCEeikFNSMhHHwbQ">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_RL275syCEeikFNSMhHHwbQ" name="InstantiatedRootComponent">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RL2758yCEeikFNSMhHHwbQ"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RL276MyCEeikFNSMhHHwbQ" value="1"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_RL276cyCEeikFNSMhHHwbQ" name="E_InstantiatedArchitectureConfiguration_Property1" memberEnd="_RL276syCEeikFNSMhHHwbQ _RL275cyCEeikFNSMhHHwbQ">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_RL276syCEeikFNSMhHHwbQ" name="extension_InstantiatedArchitectureConfiguration" type="_RL274cyCEeikFNSMhHHwbQ" aggregation="composite" association="_RL276cyCEeikFNSMhHHwbQ"/>
-      </packagedElement>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Profile" xmi:id="_wx4LQOi5EeiVjJ5o5etgeg" name="Expressions" metaclassReference="_ELIe8Oi6EeiVjJ5o5etgeg">
-      <ownedComment xmi:type="uml:Comment" xmi:id="_TprFAOjEEeiFtYjQlD0MEA" annotatedElement="_FDEMgOi6EeiVjJ5o5etgeg">
-        <body>A special type of Constraint
-used to store macros.</body>
-      </ownedComment>
-      <ownedComment xmi:type="uml:Comment" xmi:id="_dRVi0OjEEeiFtYjQlD0MEA" annotatedElement="_HB53wOi6EeiVjJ5o5etgeg">
-        <body>A special type of Constraint
-used to store assumptions.</body>
-      </ownedComment>
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_ELIe8Oi6EeiVjJ5o5etgeg" alias="Constraint">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-      </elementImport>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_FDEMgOi6EeiVjJ5o5etgeg" name="MacroDefinition">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_IbI7kei6EeiVjJ5o5etgeg" name="base_Constraint" association="_IbHGYOi6EeiVjJ5o5etgeg">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_HB53wOi6EeiVjJ5o5etgeg" name="ParameterAssumptions">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_I8eHAei6EeiVjJ5o5etgeg" name="base_Constraint" association="_I8df8Oi6EeiVjJ5o5etgeg">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_IbHGYOi6EeiVjJ5o5etgeg" name="E_MacroDefinition_Constraint1" memberEnd="_IbI7kOi6EeiVjJ5o5etgeg _IbI7kei6EeiVjJ5o5etgeg">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_IbI7kOi6EeiVjJ5o5etgeg" name="extension_MacroDefinition" type="_FDEMgOi6EeiVjJ5o5etgeg" aggregation="composite" association="_IbHGYOi6EeiVjJ5o5etgeg"/>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_I8df8Oi6EeiVjJ5o5etgeg" name="E_ParameterAssumptions_Constraint1" memberEnd="_I8eHAOi6EeiVjJ5o5etgeg _I8eHAei6EeiVjJ5o5etgeg">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_I8eHAOi6EeiVjJ5o5etgeg" name="extension_ParameterAssumptions" type="_HB53wOi6EeiVjJ5o5etgeg" aggregation="composite" association="_I8df8Oi6EeiVjJ5o5etgeg"/>
-      </packagedElement>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Profile" xmi:id="_uzJoEAUxEemysu13G3QsXA" name="StateMachines" metaclassReference="_AjJe8AUyEemysu13G3QsXA">
-      <elementImport xmi:type="uml:ElementImport" xmi:id="_AjJe8AUyEemysu13G3QsXA" alias="Transition">
-        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-      </elementImport>
-      <packagedElement xmi:type="uml:Stereotype" xmi:id="_BGUdcAUyEemysu13G3QsXA" name="PrioritizedTransition">
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_EYicIAUyEemysu13G3QsXA" name="priority">
-          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-        </ownedAttribute>
-        <ownedAttribute xmi:type="uml:Property" xmi:id="_HuGCsAUyEemysu13G3QsXA" name="base_Transition" association="_HuC_YAUyEemysu13G3QsXA">
-          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>
-        </ownedAttribute>
-      </packagedElement>
-      <packagedElement xmi:type="uml:Extension" xmi:id="_HuC_YAUyEemysu13G3QsXA" name="E_PrioritizedTransition_Transition1" memberEnd="_HuFboAUyEemysu13G3QsXA _HuGCsAUyEemysu13G3QsXA">
-        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_HuFboAUyEemysu13G3QsXA" name="extension_PrioritizedTransition" type="_BGUdcAUyEemysu13G3QsXA" aggregation="composite" association="_HuC_YAUyEemysu13G3QsXA"/>
-      </packagedElement>
-    </packagedElement>
-    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_4nGdAFt2EeCB9JyGkIbTqQ">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4nHEEFt2EeCB9JyGkIbTqQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
-        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
-      </eAnnotations>
-      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
-    </profileApplication>
-    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_zP9FcP3gEeOmz-4FDV-1Kw">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zT38IP3gEeOmz-4FDV-1Kw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//VSL/DataTypes"/>
-      </eAnnotations>
-      <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9FdqwA-MEdyLh7muGbCqMw"/>
-    </profileApplication>
-    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GPBYEDbQEeW5DJdhCjCHFw">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GSvswJAHEeivwecyB74dKw" source="PapyrusVersion">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvswZAHEeivwecyB74dKw" key="Version" value="0.1.1"/>
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvswpAHEeivwecyB74dKw" key="Comment" value=""/>
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvsw5AHEeivwecyB74dKw" key="Copyright" value=""/>
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvsxJAHEeivwecyB74dKw" key="Date" value="2015-01-21"/>
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvsxZAHEeivwecyB74dKw" key="Author" value=""/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVgakDbQEeW5DJdhCjCHFw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
-      </eAnnotations>
-      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
-    </profileApplication>
-  </uml:Profile>
-  <Ecore:EPackage xmi:id="_5bIiAFt2EeCB9JyGkIbTqQ" base_Package="_EA6IcDcwEd-mWLzcI61s7Q" packageName="chessmlprofile" nsPrefix="CHESS" nsURI="http://CHESS" basePackage="org.polarsys.chess" prefix="chessmlprofile"/>
-  <Ecore:EPackage xmi:id="_rb2uQFt3EeCB9JyGkIbTqQ" base_Package="_ad4owDgVEd-68Z_bhNRGsA" packageName="Core" nsPrefix="Core" nsURI="http://CHESS/Core" prefix="Core"/>
-  <Ecore:EPackage xmi:id="_tNFbUFt3EeCB9JyGkIbTqQ" base_Package="_FttqgMJDEd-0jpzjleFnug" packageName="CHESSViews" nsPrefix="CHESSViews" nsURI="http://CHESS/Core/Views" prefix="CHESSViews"/>
-  <Ecore:EPackage xmi:id="_2MAeIFt3EeCB9JyGkIbTqQ" base_Package="_hdOrwLwzEd-CDNLmLgazUQ" packageName="FailurePropagation" nsPrefix="FailurePropagation" nsURI="http://CHESS/Dependability/FailurePropagation" prefix="FailurePropagation"/>
-  <Ecore:EPackage xmi:id="_GS96oFt4EeCB9JyGkIbTqQ" base_Package="_cE_bwLwzEd-CDNLmLgazUQ" packageName="StateBased" nsPrefix="StateBased" nsURI="http://CHESS/Dependability/StateBased" prefix="StateBased"/>
-  <Ecore:EPackage xmi:id="_IC9RkFt4EeCB9JyGkIbTqQ" base_Package="_d50lQL86Ed-TL8tpOyViyA" packageName="StateBasedComponents" nsPrefix="StateBasedComponents" nsURI="http://CHESS/Dependability/StateBased/StateBasedComponents" prefix="StateBasedComponents"/>
-  <Ecore:EPackage xmi:id="_KsQ2IFt4EeCB9JyGkIbTqQ" base_Package="_mbqqgL86Ed-TL8tpOyViyA" packageName="FaultTolerance" nsPrefix="FaultTolerance" nsURI="http://CHESS/Dependability/StateBased/FaultTolerance" prefix="FaultTolerance"/>
-  <Ecore:EPackage xmi:id="_LicQMFt4EeCB9JyGkIbTqQ" base_Package="_oUVxcL88Ed-TL8tpOyViyA" packageName="MaintenanceMonitoring" nsPrefix="MaintenanceMonitoring" nsURI="http://CHESS/Dependability/StateBased/MaintenanceMonitoring" prefix="MaintenanceMonitoring"/>
-  <Ecore:EPackage xmi:id="_Mt3FAFt5EeCB9JyGkIbTqQ" base_Package="_Wgxh0L8_Ed-TL8tpOyViyA" packageName="StateBasedAnalysis" nsPrefix="StateBasedAnalysis" nsURI="http://CHESS/Dependability/StateBased/StateBasedAnalysis" prefix="StateBasedAnalysis"/>
-  <Ecore:EPackage xmi:id="_eSL3YFt5EeCB9JyGkIbTqQ" base_Package="_uNKOgDQ2EeC0ueejuetpgA" packageName="DependableComponent" nsPrefix="DependableComponent" nsURI="http://CHESS/Dependability/DependableComponent" prefix="DependableComponent"/>
-  <Ecore:EPackage xmi:id="_fj9oUFt5EeCB9JyGkIbTqQ" base_Package="_5g4wEDQ3EeC0ueejuetpgA" packageName="ThreatsPropagation" nsPrefix="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" prefix="ThreatsPropagation"/>
-  <Ecore:EPackage xmi:id="_tI1ikFt5EeCB9JyGkIbTqQ" base_Package="_nyQ7MLwzEd-CDNLmLgazUQ" packageName="DeploymentConfiguration" nsPrefix="DeploymentConfiguration" nsURI="http://CHESS/Predictability/DeploymentConfiguration" prefix="DeploymentConfiguration"/>
-  <Ecore:EPackage xmi:id="_uZ3soFt5EeCB9JyGkIbTqQ" base_Package="_1TsX8MCpEd-RT45s8cwWMg" packageName="HardwareBaseline" nsPrefix="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" prefix="HardwareBaseline"/>
-  <Ecore:EPackage xmi:id="_2qiiUFt5EeCB9JyGkIbTqQ" base_Package="_WgatoDgVEd-68Z_bhNRGsA" packageName="RTComponentModel" nsPrefix="RTComponentModel" nsURI="http://CHESS/Predictability/RTComponentModel" prefix="RTComponentModel"/>
-  <Ecore:EPackage xmi:id="_4jFYUFt5EeCB9JyGkIbTqQ" base_Package="_MftccDQ2EeC0ueejuetpgA" packageName="ComponentModel" nsPrefix="ComponentModel" nsURI="http://CHESS/ComponentModel" prefix="ComponentModel"/>
-  <Ecore:EPackage xmi:id="_mH408FiIEeGbwa2cK55fPQ" base_Package="_kJICMFiIEeGbwa2cK55fPQ" packageName="MitigationMeans" nsPrefix="MitigationMeans" nsURI="http://CHESS.Dependability/MitigationMeans" prefix="MitigationMeans"/>
-  <Ecore:EPackage xmi:id="_FUVlkKbSEeSHP5PnCeTneg" base_Package="_-aQIUKbREeSHP5PnCeTneg" packageName="STS" nsPrefix="STS" nsURI="http://CHESS/SystemModel/STS" prefix="STS"/>
-  <Ecore:EPackage xmi:id="_XV73cMvtEeSajLw6mg2A8Q" base_Package="_f-f6oMvrEeSajLw6mg2A8Q" packageName="Safety" nsPrefix="Safety" nsURI="http://CHESS/Safety" prefix="Safety"/>
-  <Ecore:EPackage xmi:id="_RT8mEGwuEeWvYIaEJT1qow" base_Package="_GMlQEGwuEeWvYIaEJT1qow" packageName="ARINCComponentModel" nsPrefix="ARINCComponentModel" nsURI="http://CHESS/Predictability/ARINCComponentModel" prefix="ARINCComponentModel"/>
-  <Ecore:EPackage xmi:id="__euaMOi5EeiVjJ5o5etgeg" base_Package="_wx4LQOi5EeiVjJ5o5etgeg" packageName="Expressions" nsPrefix="Expressions" nsURI="http://CHESS/Expressions" prefix="Expressions"/>
-  <Ecore:EPackage xmi:id="_x7ob8AUxEemysu13G3QsXA" base_Package="_uzJoEAUxEemysu13G3QsXA" packageName="StateMachines" nsPrefix="StateMachines" nsURI="http://CHESS/StateMachines" prefix="StateMachines"/>
-</xmi:XMI>
+<?xml version="1.0" encoding="UTF-8"?>

+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">

+  <uml:Profile xmi:id="_EA6IcDcwEd-mWLzcI61s7Q" name="CHESS" URI="http://CHESS" metaclassReference="_f4IT8LzoEd-yoLyJo0JlOg _hi07MLzoEd-yoLyJo0JlOg _06BxsLzuEd-yoLyJo0JlOg _xsRxML88Ed-TL8tpOyViyA _IuJJQMAMEd-Dn5_MBIs5Vw _BWmhsMAREd-Dn5_MBIs5Vw">

+    <elementImport xmi:type="uml:ElementImport" xmi:id="_f4IT8LzoEd-yoLyJo0JlOg" alias="Component">

+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+    </elementImport>

+    <elementImport xmi:type="uml:ElementImport" xmi:id="_hi07MLzoEd-yoLyJo0JlOg" alias="Property">

+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+    </elementImport>

+    <elementImport xmi:type="uml:ElementImport" xmi:id="_06BxsLzuEd-yoLyJo0JlOg" alias="Connector">

+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+    </elementImport>

+    <elementImport xmi:type="uml:ElementImport" xmi:id="_xsRxML88Ed-TL8tpOyViyA" alias="Activity">

+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>

+    </elementImport>

+    <elementImport xmi:type="uml:ElementImport" xmi:id="_IuJJQMAMEd-Dn5_MBIs5Vw" alias="Class">

+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+    </elementImport>

+    <elementImport xmi:type="uml:ElementImport" xmi:id="_BWmhsMAREd-Dn5_MBIs5Vw" alias="Comment">

+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+    </elementImport>

+    <packageImport xmi:type="uml:PackageImport" xmi:id="_EA6IcTcwEd-mWLzcI61s7Q">

+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>

+    </packageImport>

+    <packageImport xmi:type="uml:PackageImport" xmi:id="_Kmy3UTcwEd-mWLzcI61s7Q">

+      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_dDxjEAeNEdytasR0-Ec7ew"/>

+    </packageImport>

+    <packageImport xmi:type="uml:PackageImport" xmi:id="_Knc-oDcwEd-mWLzcI61s7Q">

+      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_3DJKAA4uEdysTsAUPnp57Q"/>

+    </packageImport>

+    <packageImport xmi:type="uml:PackageImport" xmi:id="_Kn64sDcwEd-mWLzcI61s7Q">

+      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_X3JtMAeNEdytasR0-Ec7ew"/>

+    </packageImport>

+    <packageImport xmi:type="uml:PackageImport" xmi:id="_Ko6XMDcwEd-mWLzcI61s7Q">

+      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_g2qR8A74EdyML4mHwjNDrw"/>

+    </packageImport>

+    <packageImport xmi:type="uml:PackageImport" xmi:id="_KpSKoDcwEd-mWLzcI61s7Q">

+      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_l6ms8A74EdyML4mHwjNDrw"/>

+    </packageImport>

+    <packageImport xmi:type="uml:PackageImport" xmi:id="_Kp9gEDcwEd-mWLzcI61s7Q">

+      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_x9l9sA74EdyML4mHwjNDrw"/>

+    </packageImport>

+    <packageImport xmi:type="uml:PackageImport" xmi:id="_KqS3QDcwEd-mWLzcI61s7Q">

+      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2GPOEA74EdyML4mHwjNDrw"/>

+    </packageImport>

+    <packageImport xmi:type="uml:PackageImport" xmi:id="_KqvjMDcwEd-mWLzcI61s7Q">

+      <importedPackage xmi:type="uml:Package" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_RTwjABgzEdyHL91mBnoLNQ"/>

+    </packageImport>

+    <packagedElement xmi:type="uml:Profile" xmi:id="_ad4owDgVEd-68Z_bhNRGsA" name="Core" URI="http://CHESS/Core" metaclassReference="_x8t_0DgXEd-68Z_bhNRGsA _FEHugDgYEd-68Z_bhNRGsA _mUYGcE7nEeCiWfCHUearZQ _wDY7IFYfEeGwxKcMAge2Cg _aKE3gKrGEeSm_c79BO815Q">

+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p-a_7jgVEd-68Z_bhNRGsA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+        <contents xmi:type="ecore:EPackage" xmi:id="_v7qw0U7nEeCiWfCHUearZQ" name="Core" nsURI="http://CHESS/Core" nsPrefix="Core">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v9v0cE7nEeCiWfCHUearZQ" source="PapyrusVersion">

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0cU7nEeCiWfCHUearZQ" key="Version" value="0.1.10"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0ck7nEeCiWfCHUearZQ" key="Comment" value="added Core::CHGAResourcePlatform"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0c07nEeCiWfCHUearZQ" key="Copyright" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0dE7nEeCiWfCHUearZQ" key="Date" value="2011-03-15"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v9v0dU7nEeCiWfCHUearZQ" key="Author" value=""/>

+          </eAnnotations>

+          <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7qw0k7nEeCiWfCHUearZQ" name="CHESS">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7qw007nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_opjLUDgXEd-68Z_bhNRGsA"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw1E7nEeCiWfCHUearZQ" name="base_Model" ordered="false" unique="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Model"/>

+            </eStructuralFeatures>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw1k7nEeCiWfCHUearZQ" name="analysisView" ordered="false" lowerBound="1" eType="_v7z6wk7nEeCiWfCHUearZQ"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw2E7nEeCiWfCHUearZQ" name="deploymentView" ordered="false" lowerBound="1" eType="_v7z63k7nEeCiWfCHUearZQ"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw2k7nEeCiWfCHUearZQ" name="requirementView" ordered="false" lowerBound="1" eType="_v7z64k7nEeCiWfCHUearZQ"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw3E7nEeCiWfCHUearZQ" name="componentView" ordered="false" lowerBound="1" eType="_v7z65k7nEeCiWfCHUearZQ"/>

+          </eClassifiers>

+          <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7qw9E7nEeCiWfCHUearZQ" name="CHGaResourcePlatform">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7qw9U7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_a-X3gE7nEeCiWfCHUearZQ"/>

+            <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//GQAM/GaResourcesPlatform"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw9k7nEeCiWfCHUearZQ" name="base_InstanceSpecification" ordered="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>

+            </eStructuralFeatures>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7qw-E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+            </eStructuralFeatures>

+          </eClassifiers>

+        </contents>

+        <contents xmi:type="ecore:EPackage" xmi:id="_EVh4oETyEeChVqfgLme9HQ" name="Core" nsURI="http://CHESS/schemas/Core/_EVYusETyEeChVqfgLme9HQ/20" nsPrefix="Core">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EXBGYETyEeChVqfgLme9HQ" source="PapyrusVersion">

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGYUTyEeChVqfgLme9HQ" key="Version" value="0.1.9"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGYkTyEeChVqfgLme9HQ" key="Comment" value="added right views references for CHESS"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGY0TyEeChVqfgLme9HQ" key="Copyright" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGZETyEeChVqfgLme9HQ" key="Date" value="2011-03-02"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXBGZUTyEeChVqfgLme9HQ" key="Author" value=""/>

+          </eAnnotations>

+          <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh4oUTyEeChVqfgLme9HQ" name="CHESS">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh4okTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_opjLUDgXEd-68Z_bhNRGsA"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4o0TyEeChVqfgLme9HQ" name="base_Model" ordered="false" unique="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Model"/>

+            </eStructuralFeatures>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4pUTyEeChVqfgLme9HQ" name="analysisView" ordered="false" lowerBound="1" eType="_EVh4xUTyEeChVqfgLme9HQ"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4p0TyEeChVqfgLme9HQ" name="deploymentView" ordered="false" lowerBound="1" eType="_EVh44UTyEeChVqfgLme9HQ"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4qUTyEeChVqfgLme9HQ" name="requirementView" ordered="false" lowerBound="1" eType="_EVh45UTyEeChVqfgLme9HQ"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4q0TyEeChVqfgLme9HQ" name="componentView" ordered="false" lowerBound="1" eType="_EVh46UTyEeChVqfgLme9HQ"/>

+          </eClassifiers>

+        </contents>

+        <contents xmi:type="ecore:EPackage" xmi:id="_PfTEoce6Ed-7etIj5eTw0Q" name="Core" nsURI="http://CHESS/schemas/Core/_PfTEoMe6Ed-7etIj5eTw0Q/19" nsPrefix="Core">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UbqQ8Me6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ8ce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ8se6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ88e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ9Me6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UbqQ9ce6Ed-7etIj5eTw0Q" key="Author" value=""/>

+          </eAnnotations>

+          <eClassifiers xmi:type="ecore:EClass" xmi:id="_PfTEose6Ed-7etIj5eTw0Q" name="CHESS">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PfTEo8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_opjLUDgXEd-68Z_bhNRGsA"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTEpMe6Ed-7etIj5eTw0Q" name="base_Model" ordered="false" unique="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Model"/>

+            </eStructuralFeatures>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTEpse6Ed-7etIj5eTw0Q" name="analysisView" ordered="false" lowerBound="1" eType="_Pfc1ose6Ed-7etIj5eTw0Q"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTEqMe6Ed-7etIj5eTw0Q" name="functionalView" ordered="false" lowerBound="1" eType="_Pfc1yse6Ed-7etIj5eTw0Q"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTEqse6Ed-7etIj5eTw0Q" name="extraFunctionalView" ordered="false" lowerBound="1" eType="_Pfc1uMe6Ed-7etIj5eTw0Q"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PfTErMe6Ed-7etIj5eTw0Q" name="deploymentView" ordered="false" lowerBound="1" eType="_Pfc10se6Ed-7etIj5eTw0Q"/>

+          </eClassifiers>

+        </contents>

+      </eAnnotations>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_x8t_0DgXEd-68Z_bhNRGsA" alias="Model">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Model"/>

+      </elementImport>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_FEHugDgYEd-68Z_bhNRGsA" alias="Package">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+      </elementImport>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_mUYGcE7nEeCiWfCHUearZQ" alias="InstanceSpecification">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+      </elementImport>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_wDY7IFYfEeGwxKcMAge2Cg" alias="Slot">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+      </elementImport>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_aKE3gKrGEeSm_c79BO815Q" alias="Component">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+      </elementImport>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_opjLUDgXEd-68Z_bhNRGsA" name="CHESS">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_1Baf4jgXEd-68Z_bhNRGsA" name="base_Model" isUnique="false" association="_1Baf4DgXEd-68Z_bhNRGsA">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Model"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_708k4MJeEd-9OOhgleDe8g" name="analysisView" type="_KYAcoLwzEd-CDNLmLgazUQ" aggregation="composite"/>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_AX1dEMJmEd-o9IXQjCmxTw" name="deploymentView" type="_6-HM4MJFEd-0jpzjleFnug" aggregation="composite"/>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_0mxgwETxEeChVqfgLme9HQ" name="requirementView" visibility="public" type="_E1ZRkDQ1EeC0ueejuetpgA" aggregation="composite">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3Y_wwETxEeChVqfgLme9HQ" value="1"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3ZTSwETxEeChVqfgLme9HQ" value="1"/>

+          <defaultValue xmi:type="uml:LiteralString" xmi:id="_3ZmNsETxEeChVqfgLme9HQ">

+            <value xsi:nil="true"/>

+          </defaultValue>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_80gXMETxEeChVqfgLme9HQ" name="componentView" visibility="public" type="_cMJs4DkoEeCw66wKEzSFRg" aggregation="composite">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-njCIETxEeChVqfgLme9HQ" value="1"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-nszIETxEeChVqfgLme9HQ" value="1"/>

+          <defaultValue xmi:type="uml:LiteralString" xmi:id="_-n_uEETxEeChVqfgLme9HQ">

+            <value xsi:nil="true"/>

+          </defaultValue>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_G4dxMPWcEeG6etnsQZngdA" name="systemView" type="_-q1ocPWbEeG6etnsQZngdA" aggregation="composite"/>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_30_8UFOzEeS4RO3Q2Jk6sA" name="psmView" type="_eCaeYElHEeSHXILU_Im6sA"/>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_4a5ZkNcwEeWr_eoZOyce5Q" name="domain" type="_qrbY4NcwEeWr_eoZOyce5Q">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_APwdANcxEeWr_eoZOyce5Q" value="1"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_APwdAdcxEeWr_eoZOyce5Q" value="1"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_1Baf4DgXEd-68Z_bhNRGsA" name="Extension_CHESS" memberEnd="_1Baf4TgXEd-68Z_bhNRGsA _1Baf4jgXEd-68Z_bhNRGsA">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_1Baf4TgXEd-68Z_bhNRGsA" name="extension_CHESS" type="_opjLUDgXEd-68Z_bhNRGsA" aggregation="composite" association="_1Baf4DgXEd-68Z_bhNRGsA"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Profile" xmi:id="_FttqgMJDEd-0jpzjleFnug" name="CHESSViews" URI="http://CHESS/Core/Views" metaclassReference="_f_fboDkoEeCw66wKEzSFRg">

+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9qjjAMJbEd-0jpzjleFnug" source="http://www.eclipse.org/uml2/2.0.0/UML">

+          <contents xmi:type="ecore:EPackage" xmi:id="_v7z6wU7nEeCiWfCHUearZQ" name="CHESSViews" nsURI="http://CHESS/Core/Views" nsPrefix="CHESSViews">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wASLEE7nEeCiWfCHUearZQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLEU7nEeCiWfCHUearZQ" key="Version" value="0.1.10"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLEk7nEeCiWfCHUearZQ" key="Comment" value="added Core::CHGAResourcePlatform"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLE07nEeCiWfCHUearZQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLFE7nEeCiWfCHUearZQ" key="Date" value="2011-03-15"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wASLFU7nEeCiWfCHUearZQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z6wk7nEeCiWfCHUearZQ" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6w07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z6xE7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z6xk7nEeCiWfCHUearZQ" name="rtanalysisview" ordered="false" lowerBound="1" eType="_v7z6yE7nEeCiWfCHUearZQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z6yE7nEeCiWfCHUearZQ" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6yU7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z6yk7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z6zE7nEeCiWfCHUearZQ" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6zU7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6zk7nEeCiWfCHUearZQ" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_v7z6z07nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z60E7nEeCiWfCHUearZQ" source="redefines" references="_v7z60k7nEeCiWfCHUearZQ"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z60k7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z61E7nEeCiWfCHUearZQ" name="timingdataflowview" ordered="false" lowerBound="1" eType="_v7z61k7nEeCiWfCHUearZQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z61k7nEeCiWfCHUearZQ" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6107nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z62E7nEeCiWfCHUearZQ" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_v7z62U7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z62k7nEeCiWfCHUearZQ" source="redefines" references="_v7z63E7nEeCiWfCHUearZQ"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z63E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z63k7nEeCiWfCHUearZQ" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6307nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z64E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z64k7nEeCiWfCHUearZQ" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6407nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z65E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z65k7nEeCiWfCHUearZQ" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6507nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z66E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_v7z66k7nEeCiWfCHUearZQ" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v7z6607nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EBEuADqeEeCYT-iAb0LhsA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_v7z67E7nEeCiWfCHUearZQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_EVh4xETyEeChVqfgLme9HQ" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_EVh4w0TyEeChVqfgLme9HQ/24" nsPrefix="CHESSViews">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EZZsAETyEeChVqfgLme9HQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsAUTyEeChVqfgLme9HQ" key="Version" value="0.1.9"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsAkTyEeChVqfgLme9HQ" key="Comment" value="added right views references for CHESS"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsA0TyEeChVqfgLme9HQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsBETyEeChVqfgLme9HQ" key="Date" value="2011-03-02"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EZZsBUTyEeChVqfgLme9HQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh4xUTyEeChVqfgLme9HQ" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh4xkTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4x0TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4yUTyEeChVqfgLme9HQ" name="rtanalysisview" ordered="false" lowerBound="1" eType="_EVh4y0TyEeChVqfgLme9HQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh4y0TyEeChVqfgLme9HQ" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh4zETyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh4zUTyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh4z0TyEeChVqfgLme9HQ" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh40ETyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh40UTyEeChVqfgLme9HQ" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_EVh40kTyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh400TyEeChVqfgLme9HQ" source="redefines" references="_EVh41UTyEeChVqfgLme9HQ"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh41UTyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh410TyEeChVqfgLme9HQ" name="timingdataflowview" ordered="false" lowerBound="1" eType="_EVh42UTyEeChVqfgLme9HQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh42UTyEeChVqfgLme9HQ" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh42kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh420TyEeChVqfgLme9HQ" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_EVh43ETyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh43UTyEeChVqfgLme9HQ" source="redefines" references="_EVh430TyEeChVqfgLme9HQ"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh430TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh44UTyEeChVqfgLme9HQ" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh44kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh440TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh45UTyEeChVqfgLme9HQ" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh45kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh450TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh46UTyEeChVqfgLme9HQ" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh46kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh460TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_EVh47UTyEeChVqfgLme9HQ" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVh47kTyEeChVqfgLme9HQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EBEuADqeEeCYT-iAb0LhsA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EVh470TyEeChVqfgLme9HQ" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_pngpMDqxEeCUI4z76XHrLw" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_pnW4MDqxEeCUI4z76XHrLw/23" nsPrefix="CHESSViews">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ppTY8DqxEeCUI4z76XHrLw" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY8TqxEeCUI4z76XHrLw" key="Version" value="0.0.1"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY8jqxEeCUI4z76XHrLw" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY8zqxEeCUI4z76XHrLw" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY9DqxEeCUI4z76XHrLw" key="Date" value="2011-02-17"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ppTY9TqxEeCUI4z76XHrLw" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpMTqxEeCUI4z76XHrLw" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpMjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpMzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpNTqxEeCUI4z76XHrLw" name="rtanalysisview" ordered="false" lowerBound="1" eType="_pngpNzqxEeCUI4z76XHrLw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpNzqxEeCUI4z76XHrLw" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpODqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpOTqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpOzqxEeCUI4z76XHrLw" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpPDqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpPTqxEeCUI4z76XHrLw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_pngpPjqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpPzqxEeCUI4z76XHrLw" source="redefines" references="_pngpQTqxEeCUI4z76XHrLw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpQTqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpQzqxEeCUI4z76XHrLw" name="timingdataflowview" ordered="false" lowerBound="1" eType="_pngpRTqxEeCUI4z76XHrLw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpRTqxEeCUI4z76XHrLw" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpRjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpRzqxEeCUI4z76XHrLw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_pngpSDqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpSTqxEeCUI4z76XHrLw" source="redefines" references="_pngpSzqxEeCUI4z76XHrLw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpSzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpTTqxEeCUI4z76XHrLw" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpTjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpTzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpUTqxEeCUI4z76XHrLw" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpUjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpUzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpVTqxEeCUI4z76XHrLw" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpVjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpVzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_pngpWTqxEeCUI4z76XHrLw" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pngpWjqxEeCUI4z76XHrLw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EBEuADqeEeCYT-iAb0LhsA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pngpWzqxEeCUI4z76XHrLw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_J4JPEDqeEeCYT-iAb0LhsA" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_J3_eEDqeEeCYT-iAb0LhsA/22" nsPrefix="CHESSViews">

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPETqeEeCYT-iAb0LhsA" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPEjqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPEzqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPFTqeEeCYT-iAb0LhsA" name="rtanalysisview" ordered="false" lowerBound="1" eType="_J4JPGDqeEeCYT-iAb0LhsA"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPGDqeEeCYT-iAb0LhsA" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPGTqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPGjqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPHDqeEeCYT-iAb0LhsA" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPHTqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPHjqeEeCYT-iAb0LhsA" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_J4JPHzqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPIDqeEeCYT-iAb0LhsA" source="redefines" references="_J4JPIjqeEeCYT-iAb0LhsA"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPIjqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPJDqeEeCYT-iAb0LhsA" name="timingdataflowview" ordered="false" lowerBound="1" eType="_J4JPJjqeEeCYT-iAb0LhsA" containment="true"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPJjqeEeCYT-iAb0LhsA" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPJzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPKDqeEeCYT-iAb0LhsA" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_J4JPKTqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPKjqeEeCYT-iAb0LhsA" source="redefines" references="_J4JPLDqeEeCYT-iAb0LhsA"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPLDqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPLjqeEeCYT-iAb0LhsA" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPLzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPMDqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPMjqeEeCYT-iAb0LhsA" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPMzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPNDqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPNjqeEeCYT-iAb0LhsA" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPNzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPODqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_J4JPOjqeEeCYT-iAb0LhsA" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4JPOzqeEeCYT-iAb0LhsA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EBEuADqeEeCYT-iAb0LhsA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_J4JPPDqeEeCYT-iAb0LhsA" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_gbAdgTkpEeCw66wKEzSFRg" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_gbAdgDkpEeCw66wKEzSFRg/21" nsPrefix="CHESSViews">

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdgjkpEeCw66wKEzSFRg" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdgzkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdhDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdhjkpEeCw66wKEzSFRg" name="rtanalysisview" ordered="false" lowerBound="1" eType="_gbAdijkpEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdiDkpEeCw66wKEzSFRg" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_gbAdjjkpEeCw66wKEzSFRg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdijkpEeCw66wKEzSFRg" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdizkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdjDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdjjkpEeCw66wKEzSFRg" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdjzkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdkDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdkzkpEeCw66wKEzSFRg" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdlDkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdlTkpEeCw66wKEzSFRg" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_gbAdljkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdlzkpEeCw66wKEzSFRg" source="redefines" references="_gbAdmTkpEeCw66wKEzSFRg"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdmTkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdmzkpEeCw66wKEzSFRg" name="timingdataflowview" ordered="false" lowerBound="1" eType="_gbAdnTkpEeCw66wKEzSFRg" containment="true"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdnTkpEeCw66wKEzSFRg" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdnjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdnzkpEeCw66wKEzSFRg" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_gbAdoDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdoTkpEeCw66wKEzSFRg" source="redefines" references="_gbAdozkpEeCw66wKEzSFRg"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdozkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdpTkpEeCw66wKEzSFRg" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdpjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdpzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdqTkpEeCw66wKEzSFRg" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdqjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdqzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_gbAdrTkpEeCw66wKEzSFRg" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gbAdrjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_gbAdrzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_PmNqoTkpEeCw66wKEzSFRg" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_PmNqoDkpEeCw66wKEzSFRg/20" nsPrefix="CHESSViews">

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqojkpEeCw66wKEzSFRg" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqozkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqpDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqpjkpEeCw66wKEzSFRg" name="rtanalysisview" ordered="false" lowerBound="1" eType="_PmNqqjkpEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqqDkpEeCw66wKEzSFRg" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_PmNqrjkpEeCw66wKEzSFRg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqqjkpEeCw66wKEzSFRg" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqqzkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqrDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqrjkpEeCw66wKEzSFRg" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqrzkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqsDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqszkpEeCw66wKEzSFRg" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqtDkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqtTkpEeCw66wKEzSFRg" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_PmNqtjkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqtzkpEeCw66wKEzSFRg" source="redefines" references="_PmNquTkpEeCw66wKEzSFRg"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNquTkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNquzkpEeCw66wKEzSFRg" name="timingdataflowview" ordered="false" lowerBound="1" eType="_PmNqvTkpEeCw66wKEzSFRg" containment="true"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqvTkpEeCw66wKEzSFRg" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqvjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqvzkpEeCw66wKEzSFRg" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_PmNqwDkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqwTkpEeCw66wKEzSFRg" source="redefines" references="_PmNqwzkpEeCw66wKEzSFRg"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqwzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqxTkpEeCw66wKEzSFRg" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqxjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqxzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqyTkpEeCw66wKEzSFRg" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqyjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqyzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PmNqzTkpEeCw66wKEzSFRg" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PmNqzjkpEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PmNqzzkpEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_mm1jETkoEeCw66wKEzSFRg" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_mm1jEDkoEeCw66wKEzSFRg/19" nsPrefix="CHESSViews">

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jEjkoEeCw66wKEzSFRg" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jEzkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jFDkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jFjkoEeCw66wKEzSFRg" name="rtanalysisview" ordered="false" lowerBound="1" eType="_mm1jGjkoEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jGDkoEeCw66wKEzSFRg" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_mm1jHjkoEeCw66wKEzSFRg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jGjkoEeCw66wKEzSFRg" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jGzkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jHDkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jHjkoEeCw66wKEzSFRg" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jHzkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jIDkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jIzkoEeCw66wKEzSFRg" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jJDkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jJTkoEeCw66wKEzSFRg" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_mm1jJjkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jJzkoEeCw66wKEzSFRg" source="redefines" references="_mm1jKTkoEeCw66wKEzSFRg"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jKTkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jKzkoEeCw66wKEzSFRg" name="timingdataflowview" ordered="false" lowerBound="1" eType="_mm1jLTkoEeCw66wKEzSFRg" containment="true"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jLTkoEeCw66wKEzSFRg" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jLjkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jLzkoEeCw66wKEzSFRg" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_mm1jMDkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jMTkoEeCw66wKEzSFRg" source="redefines" references="_mm1jMzkoEeCw66wKEzSFRg"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jMzkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jNTkoEeCw66wKEzSFRg" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jNjkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jNzkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jOTkoEeCw66wKEzSFRg" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jOjkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jOzkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_mm1jPTkoEeCw66wKEzSFRg" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mm1jPjkoEeCw66wKEzSFRg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cMJs4DkoEeCw66wKEzSFRg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_mm1jPzkoEeCw66wKEzSFRg" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_43soITkkEeCuLetZbbIvGw" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_43soIDkkEeCuLetZbbIvGw/18" nsPrefix="CHESSViews">

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soIjkkEeCuLetZbbIvGw" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soIzkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soJDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soJjkkEeCuLetZbbIvGw" name="rtanalysisview" ordered="false" lowerBound="1" eType="_43soKjkkEeCuLetZbbIvGw"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soKDkkEeCuLetZbbIvGw" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_43soLjkkEeCuLetZbbIvGw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soKjkkEeCuLetZbbIvGw" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soKzkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soLDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soLjkkEeCuLetZbbIvGw" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soLzkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soMDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_43soMjkkEeCuLetZbbIvGw" name="errormodelingview" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soMzkkEeCuLetZbbIvGw" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soNDkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soNTkkEeCuLetZbbIvGw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_43soNjkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soNzkkEeCuLetZbbIvGw" source="redefines" references="_43soOTkkEeCuLetZbbIvGw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soOTkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soOzkkEeCuLetZbbIvGw" name="timingdataflowview" ordered="false" lowerBound="1" eType="_43soPTkkEeCuLetZbbIvGw" containment="true"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soPTkkEeCuLetZbbIvGw" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soPjkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soPzkkEeCuLetZbbIvGw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_43soQDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soQTkkEeCuLetZbbIvGw" source="redefines" references="_43soQzkkEeCuLetZbbIvGw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soQzkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soRTkkEeCuLetZbbIvGw" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soRjkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soRzkkEeCuLetZbbIvGw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_43soSDkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soSTkkEeCuLetZbbIvGw" source="redefines" references="_43soSzkkEeCuLetZbbIvGw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soSzkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soTTkkEeCuLetZbbIvGw" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soTjkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soTzkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_43soUTkkEeCuLetZbbIvGw" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_43soUjkkEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_43soUzkkEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_kDogIDkgEeCuLetZbbIvGw" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_kDfWMDkgEeCuLetZbbIvGw/17" nsPrefix="CHESSViews">

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogITkgEeCuLetZbbIvGw" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogIjkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogIzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogJTkgEeCuLetZbbIvGw" name="rtanalysisview" ordered="false" lowerBound="1" eType="_kDogKTkgEeCuLetZbbIvGw"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogJzkgEeCuLetZbbIvGw" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_kDogLTkgEeCuLetZbbIvGw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogKTkgEeCuLetZbbIvGw" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogKjkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogKzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogLTkgEeCuLetZbbIvGw" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogLjkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogLzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kDogMTkgEeCuLetZbbIvGw" name="errormodelingview" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogMjkgEeCuLetZbbIvGw" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogMzkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogNDkgEeCuLetZbbIvGw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_kDogNTkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogNjkgEeCuLetZbbIvGw" source="redefines" references="_kDogODkgEeCuLetZbbIvGw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogODkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogOjkgEeCuLetZbbIvGw" name="timingdataflowview" ordered="false" lowerBound="1" eType="_kDogPDkgEeCuLetZbbIvGw" containment="true"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogPDkgEeCuLetZbbIvGw" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogPTkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogPjkgEeCuLetZbbIvGw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_kDogPzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogQDkgEeCuLetZbbIvGw" source="redefines" references="_kDogQjkgEeCuLetZbbIvGw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogQjkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogRDkgEeCuLetZbbIvGw" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogRTkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogRjkgEeCuLetZbbIvGw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_kDogRzkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogSDkgEeCuLetZbbIvGw" source="redefines" references="_kDogSjkgEeCuLetZbbIvGw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogSjkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogTDkgEeCuLetZbbIvGw" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogTTkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogTjkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_kDogUDkgEeCuLetZbbIvGw" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kDogUTkgEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kDogUjkgEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_NxxdEDkfEeCuLetZbbIvGw" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_NxoTIDkfEeCuLetZbbIvGw/16" nsPrefix="CHESSViews">

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdETkfEeCuLetZbbIvGw" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdEjkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdEzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdFTkfEeCuLetZbbIvGw" name="rtanalysisview" ordered="false" lowerBound="1" eType="_NxxdGTkfEeCuLetZbbIvGw"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdFzkfEeCuLetZbbIvGw" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_NxxdHTkfEeCuLetZbbIvGw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdGTkfEeCuLetZbbIvGw" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdGjkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdGzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdHTkfEeCuLetZbbIvGw" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdHjkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdHzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NxxdITkfEeCuLetZbbIvGw" name="errormodelingview" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdIjkfEeCuLetZbbIvGw" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdIzkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdJDkfEeCuLetZbbIvGw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_NxxdJTkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdJjkfEeCuLetZbbIvGw" source="redefines" references="_NxxdKDkfEeCuLetZbbIvGw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdKDkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdKjkfEeCuLetZbbIvGw" name="timingdataflowview" ordered="false" lowerBound="1" eType="_NxxdLDkfEeCuLetZbbIvGw" containment="true"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdLDkfEeCuLetZbbIvGw" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdLTkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdLjkfEeCuLetZbbIvGw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_NxxdLzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdMDkfEeCuLetZbbIvGw" source="redefines" references="_NxxdMjkfEeCuLetZbbIvGw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdMjkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdNDkfEeCuLetZbbIvGw" name="ComponentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdNTkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdNjkfEeCuLetZbbIvGw" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_NxxdNzkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdODkfEeCuLetZbbIvGw" source="redefines" references="_NxxdOjkfEeCuLetZbbIvGw"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdOjkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdPDkfEeCuLetZbbIvGw" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdPTkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdPjkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_NxxdQDkfEeCuLetZbbIvGw" name="RequirementView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxxdQTkfEeCuLetZbbIvGw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E1ZRkDQ1EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NxxdQjkfEeCuLetZbbIvGw" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_Pfc1oce6Ed-7etIj5eTw0Q" name="CHESSViews" nsURI="http://CHESS.Core/schemas/CHESSViews/_Pfc1oMe6Ed-7etIj5eTw0Q/15" nsPrefix="CHESSViews">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UqaeoMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uqaeoce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uqaeose6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uqaeo8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UqaepMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Uqaepce6Ed-7etIj5eTw0Q" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1ose6Ed-7etIj5eTw0Q" name="AnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1o8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_KYAcoLwzEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1pMe6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1pse6Ed-7etIj5eTw0Q" name="rtanalysisview" ordered="false" lowerBound="1" eType="_Pfc1qse6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1qMe6Ed-7etIj5eTw0Q" name="dependabilityanalysisview" ordered="false" lowerBound="1" eType="_Pfc1rse6Ed-7etIj5eTw0Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1qse6Ed-7etIj5eTw0Q" name="RTAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1q8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-ir0cLwyEd-CDNLmLgazUQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1rMe6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1rse6Ed-7etIj5eTw0Q" name="DependabilityAnalysisView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1r8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1sMe6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1sse6Ed-7etIj5eTw0Q" name="errormodelingview" ordered="false" lowerBound="1" eType="_Pfc1tMe6Ed-7etIj5eTw0Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1tMe6Ed-7etIj5eTw0Q" name="ErrorModelingView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1tce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1tse6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1uMe6Ed-7etIj5eTw0Q" name="ExtraFunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1uce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6bSHkDgXEd-68Z_bhNRGsA"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1use6Ed-7etIj5eTw0Q" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_Pfc1u8e6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1vMe6Ed-7etIj5eTw0Q" source="redefines" references="_Pfc1vse6Ed-7etIj5eTw0Q"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1vse6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1wMe6Ed-7etIj5eTw0Q" name="timingdataflowview" ordered="false" lowerBound="1" eType="_Pfc1wse6Ed-7etIj5eTw0Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1wse6Ed-7etIj5eTw0Q" name="TimingDataFlowView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1w8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fOsNELwyEd-CDNLmLgazUQ"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1xMe6Ed-7etIj5eTw0Q" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_Pfc1xce6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1xse6Ed-7etIj5eTw0Q" source="redefines" references="_Pfc1yMe6Ed-7etIj5eTw0Q"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc1yMe6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc1yse6Ed-7etIj5eTw0Q" name="FunctionalView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1y8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1zMe6Ed-7etIj5eTw0Q" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_Pfc1zce6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc1zse6Ed-7etIj5eTw0Q" source="redefines" references="_Pfc10Me6Ed-7etIj5eTw0Q"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc10Me6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_Pfc10se6Ed-7etIj5eTw0Q" name="DeploymentView">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pfc108e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_6-HM4MJFEd-0jpzjleFnug"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Pfc11Me6Ed-7etIj5eTw0Q" name="base_Package" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+          </contents>

+        </eAnnotations>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_f_fboDkoEeCw66wKEzSFRg" alias="Package">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+        </elementImport>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_KYAcoLwzEd-CDNLmLgazUQ" name="AnalysisView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_5XsXAMGoEd-sPbYkpPS5Bg" name="base_Package" association="_5XsXAcGoEd-sPbYkpPS5Bg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Ns7GUMJPEd-0jpzjleFnug" name="rtanalysisview" type="_-ir0cLwyEd-CDNLmLgazUQ" aggregation="composite">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ns7GUsJPEd-0jpzjleFnug" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ns7GUcJPEd-0jpzjleFnug" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_vy9_kFOzEeS4RO3Q2Jk6sA" name="depanalysisview" type="_EBEuADqeEeCYT-iAb0LhsA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_5XsXAcGoEd-sPbYkpPS5Bg" name="E_AnalysisView_Package1" memberEnd="_5XsXAsGoEd-sPbYkpPS5Bg _5XsXAMGoEd-sPbYkpPS5Bg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_5XsXAsGoEd-sPbYkpPS5Bg" name="extension_AnalysisView" type="_KYAcoLwzEd-CDNLmLgazUQ" aggregation="composite" association="_5XsXAcGoEd-sPbYkpPS5Bg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_4c-bMcGoEd-sPbYkpPS5Bg" name="E_RTAnalysisView_Package1" memberEnd="_4c-bMsGoEd-sPbYkpPS5Bg _4c-bMMGoEd-sPbYkpPS5Bg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_4c-bMsGoEd-sPbYkpPS5Bg" name="extension_RTAnalysisView" type="_-ir0cLwyEd-CDNLmLgazUQ" aggregation="composite" association="_4c-bMcGoEd-sPbYkpPS5Bg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6bSHkDgXEd-68Z_bhNRGsA" name="ExtraFunctionalView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_49d5IMGoEd-sPbYkpPS5Bg" name="base_Package">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="__DL_UMJaEd-0jpzjleFnug" name="timingdataflowview" type="_fOsNELwyEd-CDNLmLgazUQ" aggregation="composite">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__DL_UsJaEd-0jpzjleFnug" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__DL_UcJaEd-0jpzjleFnug" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_-ir0cLwyEd-CDNLmLgazUQ" name="RTAnalysisView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_4c-bMMGoEd-sPbYkpPS5Bg" name="base_Package" association="_4c-bMcGoEd-sPbYkpPS5Bg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_fOsNELwyEd-CDNLmLgazUQ" name="TimingDataFlowView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_4DpVMMGoEd-sPbYkpPS5Bg" name="base_Package">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6-HM4MJFEd-0jpzjleFnug" name="DeploymentView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_8DQ3EMJFEd-0jpzjleFnug" name="base_Package" association="_8DQ3EcJFEd-0jpzjleFnug">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_eEteUIa2EeCjkaWi4DtZtA" name="AssignList">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gN3jMIa2EeCjkaWi4DtZtA"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ieds0Ia2EeCjkaWi4DtZtA" value="*"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_8DQ3EcJFEd-0jpzjleFnug" name="E_DeploymentView_Package0" memberEnd="_8DQ3EsJFEd-0jpzjleFnug _8DQ3EMJFEd-0jpzjleFnug">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_8DQ3EsJFEd-0jpzjleFnug" name="extension_DeploymentView" type="_6-HM4MJFEd-0jpzjleFnug" aggregation="composite" association="_8DQ3EcJFEd-0jpzjleFnug"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_E1ZRkDQ1EeC0ueejuetpgA" name="RequirementView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_ICmNYDQ1EeC0ueejuetpgA" name="base_Package" association="_ICvXUDQ1EeC0ueejuetpgA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_ICvXUDQ1EeC0ueejuetpgA" name="E_RequirementView_Package0" memberEnd="_ICvXUTQ1EeC0ueejuetpgA _ICmNYDQ1EeC0ueejuetpgA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ICvXUTQ1EeC0ueejuetpgA" name="extension_RequirementView" type="_E1ZRkDQ1EeC0ueejuetpgA" aggregation="composite" association="_ICvXUDQ1EeC0ueejuetpgA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_cMJs4DkoEeCw66wKEzSFRg" name="ComponentView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_gYhmsDkoEeCw66wKEzSFRg" name="base_Package" association="_gYhmsTkoEeCw66wKEzSFRg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_gYhmsTkoEeCw66wKEzSFRg" name="E_ComponentView_Package0" memberEnd="_gYhmsjkoEeCw66wKEzSFRg _gYhmsDkoEeCw66wKEzSFRg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gYhmsjkoEeCw66wKEzSFRg" name="extension_ComponentView" type="_cMJs4DkoEeCw66wKEzSFRg" aggregation="composite" association="_gYhmsTkoEeCw66wKEzSFRg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_EBEuADqeEeCYT-iAb0LhsA" name="DependabilityAnalysisView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_GYU5QDqeEeCYT-iAb0LhsA" name="base_Package" association="_GYU5QTqeEeCYT-iAb0LhsA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_GYU5QTqeEeCYT-iAb0LhsA" name="E_DependabilityAnalysisView_Package0" memberEnd="_GYU5QjqeEeCYT-iAb0LhsA _GYU5QDqeEeCYT-iAb0LhsA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_GYU5QjqeEeCYT-iAb0LhsA" name="extension_DependabilityAnalysisView" type="_EBEuADqeEeCYT-iAb0LhsA" aggregation="composite" association="_GYU5QTqeEeCYT-iAb0LhsA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_-q1ocPWbEeG6etnsQZngdA" name="SystemView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_DphI8PWcEeG6etnsQZngdA" name="base_Package" association="_DpiXEPWcEeG6etnsQZngdA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_DpiXEPWcEeG6etnsQZngdA" name="E_SystemView_Package1" memberEnd="_DpiXEfWcEeG6etnsQZngdA _DphI8PWcEeG6etnsQZngdA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DpiXEfWcEeG6etnsQZngdA" name="extension_SystemView" type="_-q1ocPWbEeG6etnsQZngdA" aggregation="composite" association="_DpiXEPWcEeG6etnsQZngdA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_eCaeYElHEeSHXILU_Im6sA" name="PSMView">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_gD_UkElHEeSHXILU_Im6sA" name="base_Package" association="_gD_7oElHEeSHXILU_Im6sA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_gD_7oElHEeSHXILU_Im6sA" name="E_PSMView_Package1" memberEnd="_gD_7oUlHEeSHXILU_Im6sA _gD_UkElHEeSHXILU_Im6sA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gD_7oUlHEeSHXILU_Im6sA" name="extension_PSMView" type="_eCaeYElHEeSHXILU_Im6sA" aggregation="composite" association="_gD_7oElHEeSHXILU_Im6sA"/>

+        </packagedElement>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_a-X3gE7nEeCiWfCHUearZQ" name="CHGaResourcePlatform">

+        <generalization xmi:type="uml:Generalization" xmi:id="_kTB5wE7nEeCiWfCHUearZQ">

+          <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_JSAYgBKgEdyaWJN1BYon3A"/>

+        </generalization>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_mx4h0E7nEeCiWfCHUearZQ" name="base_InstanceSpecification" association="_mx4h0U7nEeCiWfCHUearZQ">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_rkacsE7nEeCiWfCHUearZQ" name="base_Package" association="_rkacsU7nEeCiWfCHUearZQ">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_mx4h0U7nEeCiWfCHUearZQ" name="E_CHGaResourcePlatform_InstanceSpecification0" memberEnd="_mx4h0k7nEeCiWfCHUearZQ _mx4h0E7nEeCiWfCHUearZQ">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_mx4h0k7nEeCiWfCHUearZQ" name="extension_CHGaResourcePlatform" type="_a-X3gE7nEeCiWfCHUearZQ" aggregation="composite" association="_mx4h0U7nEeCiWfCHUearZQ"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_rkacsU7nEeCiWfCHUearZQ" name="E_CHGaResourcePlatform_Package0" memberEnd="_rkacsk7nEeCiWfCHUearZQ _rkacsE7nEeCiWfCHUearZQ">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_rkacsk7nEeCiWfCHUearZQ" name="extension_CHGaResourcePlatform" type="_a-X3gE7nEeCiWfCHUearZQ" aggregation="composite" association="_rkacsU7nEeCiWfCHUearZQ"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Association" xmi:id="_17agYFk-EeGoZZsLvNQabA" name="identifInstance_instanceSpec" memberEnd="_17agYVk-EeGoZZsLvNQabA">

+        <ownedEnd xmi:type="uml:Property" xmi:id="_17agYVk-EeGoZZsLvNQabA" name="identifInstance" association="_17agYFk-EeGoZZsLvNQabA">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17agY1k-EeGoZZsLvNQabA"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17agYlk-EeGoZZsLvNQabA" value="1"/>

+        </ownedEnd>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_dusOgFhYEeSGgdhwaAUffg" name="PSMPackage">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_gTcDMFhYEeSGgdhwaAUffg" name="base_Package" association="_gTdRUFhYEeSGgdhwaAUffg">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_jN-hsFhYEeSGgdhwaAUffg" name="AnalysisContext">

+          <type xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_JAGTsBKhEdyxBYjIJwIrZA"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_gTdRUFhYEeSGgdhwaAUffg" name="E_PSMPackage_Package1" memberEnd="_gTdRUVhYEeSGgdhwaAUffg _gTcDMFhYEeSGgdhwaAUffg">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gTdRUVhYEeSGgdhwaAUffg" name="extension_PSMPackage" type="_dusOgFhYEeSGgdhwaAUffg" aggregation="composite" association="_gTdRUFhYEeSGgdhwaAUffg"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Enumeration" xmi:id="_qrbY4NcwEeWr_eoZOyce5Q" name="Domain">

+        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_-SxEgNczEeWVgfhRtuetJg" name="cross_domain"/>

+        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_uJyWINcwEeWr_eoZOyce5Q" name="avionics"/>

+        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_wC1icNcwEeWr_eoZOyce5Q" name="automotive"/>

+        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ylcCENcwEeWr_eoZOyce5Q" name="telecom"/>

+        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zgpGENcwEeWr_eoZOyce5Q" name="space"/>

+        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_1UXtgNcwEeWr_eoZOyce5Q" name="medical"/>

+        <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_2k2d8NcwEeWr_eoZOyce5Q" name="petroleum"/>

+      </packagedElement>

+    </packagedElement>

+    <packagedElement xmi:type="uml:Package" xmi:id="_WSNEsMGMEd--atLXXafOiQ" name="Dependability">

+      <packagedElement xmi:type="uml:Profile" xmi:id="_hdOrwLwzEd-CDNLmLgazUQ" name="FailurePropagation" URI="http://CHESS/Dependability/FailurePropagation" metaclassReference="_tr9pIDQ6EeC0ueejuetpgA _1E4EkHpQEeCIAr4_5S9-cA _nxIhIHpREeCIAr4_5S9-cA _r_x7oKbSEeSHP5PnCeTneg _IZ-SsM2TEeSrt5YehnIlig _NAcukM2TEeSrt5YehnIlig _lDOIQDHyEeWt8Ovv2G_EJg">

+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IFiz4MGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+          <contents xmi:type="ecore:EPackage" xmi:id="_vlrMsTROEeCPrptoDUJcNQ" name="FailurePropagation" nsURI="http://CHESS/Dependability/FailurePropagation" nsPrefix="FailurePropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vmRpoDROEeCPrptoDUJcNQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRpoTROEeCPrptoDUJcNQ" key="Version" value="0.1.9"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRpojROEeCPrptoDUJcNQ" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRpozROEeCPrptoDUJcNQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRppDROEeCPrptoDUJcNQ" key="Date" value="2011-02-09"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vmRppTROEeCPrptoDUJcNQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_vlrMsjROEeCPrptoDUJcNQ" name="FPTC">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vlrMszROEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4m1fcMF0Ed--atLXXafOiQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vlrMtDROEeCPrptoDUJcNQ" name="inputPort" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vlrMtjROEeCPrptoDUJcNQ" name="outputPort" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vlrMuDROEeCPrptoDUJcNQ" name="fptc" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vlrMujROEeCPrptoDUJcNQ" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_vlrMvDROEeCPrptoDUJcNQ" name="FailurePropagationAnalysis">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vlrMvTROEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sNfHsMF1Ed--atLXXafOiQ"/>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//GQAM/GaAnalysisContext"/>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_QBRwUMe6Ed-7etIj5eTw0Q" name="FailurePropagation" nsURI="http://CHESS.DependabilitySecurity/schemas/FailurePropagation/_PilCIMe6Ed-7etIj5eTw0Q/8" nsPrefix="FailurePropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U1cC48e6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC5Me6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC5ce6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC5se6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC58e6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U1cC6Me6Ed-7etIj5eTw0Q" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_QBRwUce6Ed-7etIj5eTw0Q" name="FPTC">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwUse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4m1fcMF0Ed--atLXXafOiQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRwU8e6Ed-7etIj5eTw0Q" name="base_Class" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRwVce6Ed-7etIj5eTw0Q" name="component" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRwV8e6Ed-7etIj5eTw0Q" name="inputPort" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QBRwWce6Ed-7etIj5eTw0Q" name="inputFailureType" ordered="false" lowerBound="1" eType="_QBRwYce6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRwW8e6Ed-7etIj5eTw0Q" name="outputPort" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QBRwXce6Ed-7etIj5eTw0Q" name="outputFailureType" ordered="false" lowerBound="1" eType="_QBRwYce6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UvoV0Me6Ed-7etIj5eTw0Q" name="propagationProbability" ordered="false" lowerBound="1" eType="_UvoV0se6Ed-7etIj5eTw0Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRwYce6Ed-7etIj5eTw0Q" name="CHESSML_DependabilitySecurity_FailurePropagation_FailurePropagationDataTypes_FailureType">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwYse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_UhqyoMF1Ed--atLXXafOiQ"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwY8e6Ed-7etIj5eTw0Q" name="late"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwZMe6Ed-7etIj5eTw0Q" name="early" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwZce6Ed-7etIj5eTw0Q" name="valueSubtle" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwZse6Ed-7etIj5eTw0Q" name="valueCoarse" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwZ8e6Ed-7etIj5eTw0Q" name="omission" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwaMe6Ed-7etIj5eTw0Q" name="commission" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwace6Ed-7etIj5eTw0Q" name="noError" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwase6Ed-7etIj5eTw0Q" name="variable" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwa8e6Ed-7etIj5eTw0Q" name="wildcard" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRwxMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwxce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRwxse6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwx8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwyMe6Ed-7etIj5eTw0Q" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwyce6Ed-7etIj5eTw0Q" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwyse6Ed-7etIj5eTw0Q" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwy8e6Ed-7etIj5eTw0Q" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRwzMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRwzce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwzse6Ed-7etIj5eTw0Q" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRwz8e6Ed-7etIj5eTw0Q" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw0Me6Ed-7etIj5eTw0Q" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw0ce6Ed-7etIj5eTw0Q" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw0se6Ed-7etIj5eTw0Q" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw08e6Ed-7etIj5eTw0Q" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw1Me6Ed-7etIj5eTw0Q" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw1ce6Ed-7etIj5eTw0Q" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw1se6Ed-7etIj5eTw0Q" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRw18e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRw2Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw2ce6Ed-7etIj5eTw0Q" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRw2se6Ed-7etIj5eTw0Q" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRw28e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRw3Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRw3ce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRw3se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_QBRw38e6Ed-7etIj5eTw0Q" name="FailurePropagationAnalysis">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRw4Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sNfHsMF1Ed--atLXXafOiQ"/>

+              <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_329vLZi4Ed-m0Oaexd_lJA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QBRw4ce6Ed-7etIj5eTw0Q" name="result" ordered="false" upperBound="-1" eType="_QBRwUce6Ed-7etIj5eTw0Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRxA8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxBMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxRse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxR8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxSMe6Ed-7etIj5eTw0Q" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxSce6Ed-7etIj5eTw0Q" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxSse6Ed-7etIj5eTw0Q" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxS8e6Ed-7etIj5eTw0Q" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxTMe6Ed-7etIj5eTw0Q" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxTce6Ed-7etIj5eTw0Q" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxTse6Ed-7etIj5eTw0Q" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxVse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxV8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxWMe6Ed-7etIj5eTw0Q" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxWce6Ed-7etIj5eTw0Q" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxWse6Ed-7etIj5eTw0Q" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxW8e6Ed-7etIj5eTw0Q" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxXMe6Ed-7etIj5eTw0Q" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxZMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_PowerUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxZce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ijhHUA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxZse6Ed-7etIj5eTw0Q" name="W"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxZ8e6Ed-7etIj5eTw0Q" name="mW" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxaMe6Ed-7etIj5eTw0Q" name="KW" value="2"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxcMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_EnergyUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxcce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UaKKgA4zEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxcse6Ed-7etIj5eTw0Q" name="J"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxc8e6Ed-7etIj5eTw0Q" name="KJ" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxdMe6Ed-7etIj5eTw0Q" name="Wh" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxdce6Ed-7etIj5eTw0Q" name="KWh" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxdse6Ed-7etIj5eTw0Q" name="mWh" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_QBRxjse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxj8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRxr8e6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeStandardKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRxsMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_MDyyoA-KEdyNj8xzjk-DoA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxsce6Ed-7etIj5eTw0Q" name="TAI"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxsse6Ed-7etIj5eTw0Q" name="UT0" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxs8e6Ed-7etIj5eTw0Q" name="UT1" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxtMe6Ed-7etIj5eTw0Q" name="UTC" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxtce6Ed-7etIj5eTw0Q" name="Local" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxtse6Ed-7etIj5eTw0Q" name="TT" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxt8e6Ed-7etIj5eTw0Q" name="TBD" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxuMe6Ed-7etIj5eTw0Q" name="TCG" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxuce6Ed-7etIj5eTw0Q" name="TCB" value="8"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxuse6Ed-7etIj5eTw0Q" name="Sidereal" value="9"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRxu8e6Ed-7etIj5eTw0Q" name="GPS" value="10"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRx0se6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeNatureKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRx08e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_WAvb0A75EdyML4mHwjNDrw"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRx1Me6Ed-7etIj5eTw0Q" name="discrete"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRx1ce6Ed-7etIj5eTw0Q" name="dense" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRyPse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRyP8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyQMe6Ed-7etIj5eTw0Q" name="Hz"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyQce6Ed-7etIj5eTw0Q" name="KHz" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyQse6Ed-7etIj5eTw0Q" name="MHz" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyQ8e6Ed-7etIj5eTw0Q" name="GHz" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyRMe6Ed-7etIj5eTw0Q" name="rpm" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRypMe6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_PeriodicServerKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRypce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UP5HEBFbEdyUJeMeN__D-A"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRypse6Ed-7etIj5eTw0Q" name="Sporadic"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyp8e6Ed-7etIj5eTw0Q" name="Deferrable" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyqMe6Ed-7etIj5eTw0Q" name="Undef" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyqce6Ed-7etIj5eTw0Q" name="Other" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRyvce6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_SchedPolicyKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRyvse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_4GfMYBFaEdyUJeMeN__D-A"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyv8e6Ed-7etIj5eTw0Q" name="EarliestDeadlineFirst"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRywMe6Ed-7etIj5eTw0Q" name="FIFO" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRywce6Ed-7etIj5eTw0Q" name="FixedPriority" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRywse6Ed-7etIj5eTw0Q" name="LeastLaxityFirst" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyw8e6Ed-7etIj5eTw0Q" name="RoundRobin" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyxMe6Ed-7etIj5eTw0Q" name="TimeTableDriven" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyxce6Ed-7etIj5eTw0Q" name="Undef" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRyxse6Ed-7etIj5eTw0Q" name="Other" value="7"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRy3Me6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_ProtectProtocolKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRy3ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HkE7wBFbEdyUJeMeN__D-A"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy3se6Ed-7etIj5eTw0Q" name="FIFO"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy38e6Ed-7etIj5eTw0Q" name="NoPreemption" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy4Me6Ed-7etIj5eTw0Q" name="PriorityCeiling" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy4ce6Ed-7etIj5eTw0Q" name="PriorityInheritance" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy4se6Ed-7etIj5eTw0Q" name="StackBased" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy48e6Ed-7etIj5eTw0Q" name="Undef" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRy5Me6Ed-7etIj5eTw0Q" name="Other" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRzGMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_NFPs_ConstraintKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRzGce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ZCtm0A4vEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzGse6Ed-7etIj5eTw0Q" name="required"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzG8e6Ed-7etIj5eTw0Q" name="offered" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzHMe6Ed-7etIj5eTw0Q" name="contract" value="2"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QBRzHce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_AnalysisModel_GQAM_LaxityKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QBRzHse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Gs3fEBKcEdymP89M8JXkzA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzH8e6Ed-7etIj5eTw0Q" name="hard"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzIMe6Ed-7etIj5eTw0Q" name="soft" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_QBRzIce6Ed-7etIj5eTw0Q" name="other" value="2"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UvoV0se6Ed-7etIj5eTw0Q" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UvoV08e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U1cC4Me6Ed-7etIj5eTw0Q" name="NFP_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U1cC4ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+        </eAnnotations>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_bK14cDHzEeWt8Ovv2G_EJg" annotatedElement="_aN9sgHpQEeCIAr4_5S9-cA">

+          <body>this allows to work with FPTC at instance level by using composite diagrams. It allows to decorate ports of the parts.</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_kqozsDHzEeWt8Ovv2G_EJg" annotatedElement="_cSCAkHpREeCIAr4_5S9-cA">

+          <body>deprecated, use FailureModes</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_pfGoQDHzEeWt8Ovv2G_EJg" annotatedElement="_4m1fcMF0Ed--atLXXafOiQ">

+          <body>deprecated, use FLABehavior instead&#xD;

+</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_Ky2DMDa9EeW314N4GP8y1Q" annotatedElement="_J31DEDH0EeWt8Ovv2G_EJg">

+          <body>this is added to mantain compatibility with the previous implementation work with FPTC stereotypes.&#xD;

+So a FailureModes applied to Slot (in place of the FPTCPortSlot) can refer the &lt;&lt;FPTCSpecification>> Comments.</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_8-bmMDa-EeW314N4GP8y1Q" annotatedElement="_I64AUc2TEeSrt5YehnIlig">

+          <body>to be removed</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_ntzfMDbUEeW5DJdhCjCHFw" annotatedElement="_E4Uw4M2TEeSrt5YehnIlig">

+          <body>replace the old FPTC stereotype</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_0FQkEDbUEeW5DJdhCjCHFw" annotatedElement="_aN9sgHpQEeCIAr4_5S9-cA">

+          <body>attribute 'failure' is deprecated, use 'failureModes'</body>

+        </ownedComment>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_tr9pIDQ6EeC0ueejuetpgA" alias="Comment">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_1E4EkHpQEeCIAr4_5S9-cA" alias="Property">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_nxIhIHpREeCIAr4_5S9-cA" alias="Slot">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_r_x7oKbSEeSHP5PnCeTneg" alias="Connector">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_IZ-SsM2TEeSrt5YehnIlig" alias="Constraint">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_NAcukM2TEeSrt5YehnIlig" alias="Class">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_lDOIQDHyEeWt8Ovv2G_EJg" alias="InstanceSpecification">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+        </elementImport>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_4m1fcMF0Ed--atLXXafOiQ" name="FPTC">

+          <generalization xmi:type="uml:Generalization" xmi:id="_GHeyEHriEeCZzfQgCDrHbQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_oLFpQMF1Ed--atLXXafOiQ" name="fptc" visibility="public">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qOE0sMF1Ed--atLXXafOiQ" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qOOlsMF1Ed--atLXXafOiQ" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_qOXvoMF1Ed--atLXXafOiQ">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_uSrTwDROEeCPrptoDUJcNQ" name="base_Comment" association="_uSrTwTROEeCPrptoDUJcNQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_trTCQKbSEeSHP5PnCeTneg" name="base_Connector" association="_trTpUKbSEeSHP5PnCeTneg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Package" xmi:id="_J_FksMF1Ed--atLXXafOiQ" name="FailurePropagationDataTypes">

+          <ownedComment xmi:type="uml:Comment" xmi:id="_7ozh8Da8EeW314N4GP8y1Q" annotatedElement="_UhqyoMF1Ed--atLXXafOiQ">

+            <body>deprecated, use FailureMode</body>

+          </ownedComment>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_Gn6goAFgEeG47Njvphl3lQ" name="D_avoidable">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_R9NLoAFlEeGITcsal1T3Og" name="unspecified"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Gn6goQFgEeG47Njvphl3lQ" name="impermanence"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Gn6gogFgEeG47Njvphl3lQ" name="none"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_B8CAUAFgEeG47Njvphl3lQ" name="I_avoidable">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VgUGAAFlEeGITcsal1T3Og" name="unspecified"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_B8CAUQFgEeG47Njvphl3lQ" name="interference"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_B8CAUgFgEeG47Njvphl3lQ" name="none"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="__14BkAFeEeG47Njvphl3lQ" name="C_avoidable">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VxBbgAFlEeGITcsal1T3Og" name="unspecified"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_EK0okAFfEeG47Njvphl3lQ" name="inconsistency"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_GOGH4AFfEeG47Njvphl3lQ" name="none"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_UhqyoMF1Ed--atLXXafOiQ" name="FailureType">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XE_rAMF1Ed--atLXXafOiQ" name="late"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XrJFAMF1Ed--atLXXafOiQ" name="early"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_YfmAwMF1Ed--atLXXafOiQ" name="valueSubtle"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ZhAacMF1Ed--atLXXafOiQ" name="valueCoarse"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_au8NMMF1Ed--atLXXafOiQ" name="omission"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_cFhloMF1Ed--atLXXafOiQ" name="commission"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_c7wqEMF1Ed--atLXXafOiQ" name="noFailure"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_d27R0MF1Ed--atLXXafOiQ" name="variable"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_e19F4MF1Ed--atLXXafOiQ" name="wildcard"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_zutbcAFeEeG47Njvphl3lQ" name="A_avoidable">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Wic4cAFlEeGITcsal1T3Og" name="unspecified"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_3eNzEAFeEeG47Njvphl3lQ" name="incompletion"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_6nEaYAFeEeG47Njvphl3lQ" name="none"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_jO-nsAFgEeG47Njvphl3lQ" name="A_mitigation">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_W2YhEAFlEeGITcsal1T3Og" name="unspecified"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jO-nsQFgEeG47Njvphl3lQ" name="all_or_nothing"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_oVyJcAFgEeG47Njvphl3lQ" name="all_or_compensation"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jO-nsgFgEeG47Njvphl3lQ" name="none"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_rQws0AFgEeG47Njvphl3lQ" name="C_mitigation">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XMRRgAFlEeGITcsal1T3Og" name="unspecified"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rQws0QFgEeG47Njvphl3lQ" name="full_consistency"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rQws0gFgEeG47Njvphl3lQ" name="range_violation_allowed"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rQws0wFgEeG47Njvphl3lQ" name="none"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_zPfd8AFgEeG47Njvphl3lQ" name="I_mitigation">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XZPWgAFlEeGITcsal1T3Og" name="unspecified"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zPfd8QFgEeG47Njvphl3lQ" name="portable_level"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zPfd8gFgEeG47Njvphl3lQ" name="serializable"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zPfd8wFgEeG47Njvphl3lQ" name="none"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_-HY0kAFgEeG47Njvphl3lQ" name="D_mitigation">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XsbYQAFlEeGITcsal1T3Og" name="unspecified"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_-HY0kQFgEeG47Njvphl3lQ" name="no_loss"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_-HY0kgFgEeG47Njvphl3lQ" name="partial_loss_allowed"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_-HY0kwFgEeG47Njvphl3lQ" name="none"/>

+          </packagedElement>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_sNfHsMF1Ed--atLXXafOiQ" name="FailurePropagationAnalysis">

+          <generalization xmi:type="uml:Generalization" xmi:id="_yIAlYMF1Ed--atLXXafOiQ">

+            <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>

+          </generalization>

+          <generalization xmi:type="uml:Generalization" xmi:id="_TjKe0DQ7EeC0ueejuetpgA">

+            <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>

+          </generalization>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_uSrTwTROEeCPrptoDUJcNQ" name="E_FPTC_Comment0" memberEnd="_uSrTwjROEeCPrptoDUJcNQ _uSrTwDROEeCPrptoDUJcNQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_uSrTwjROEeCPrptoDUJcNQ" name="extension_FPTC" type="_4m1fcMF0Ed--atLXXafOiQ" aggregation="composite" association="_uSrTwTROEeCPrptoDUJcNQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_aN9sgHpQEeCIAr4_5S9-cA" name="FPTCSpecification">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_hgh7MHpQEeCIAr4_5S9-cA" name="base_Comment" association="_hgh7MXpQEeCIAr4_5S9-cA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_jIGV8HpQEeCIAr4_5S9-cA" name="failure" visibility="public" type="_UhqyoMF1Ed--atLXXafOiQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kdL5kHpQEeCIAr4_5S9-cA"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kdVqkHpQEeCIAr4_5S9-cA" value="*"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_kdfbkHpQEeCIAr4_5S9-cA">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_640ZIHpQEeCIAr4_5S9-cA" name="partWithPort" association="_640ZI3pQEeCIAr4_5S9-cA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_640ZInpQEeCIAr4_5S9-cA" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_640ZIXpQEeCIAr4_5S9-cA" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Hj8NgDH3EeWt8Ovv2G_EJg" name="failureMode" type="_VJH8IM1iEeSrt5YehnIlig" association="_Hj80kDH3EeWt8Ovv2G_EJg">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hj8NgTH3EeWt8Ovv2G_EJg"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hj8NgjH3EeWt8Ovv2G_EJg" value="*"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_hgh7MXpQEeCIAr4_5S9-cA" name="E_FPTCSpecification_Comment0" memberEnd="_hgh7MnpQEeCIAr4_5S9-cA _hgh7MHpQEeCIAr4_5S9-cA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_hgh7MnpQEeCIAr4_5S9-cA" name="extension_FPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" aggregation="composite" association="_hgh7MXpQEeCIAr4_5S9-cA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_640ZI3pQEeCIAr4_5S9-cA" name="fPTCSpecification_property_0" memberEnd="_640ZJHpQEeCIAr4_5S9-cA _640ZIHpQEeCIAr4_5S9-cA">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_640ZJHpQEeCIAr4_5S9-cA" name="fPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" association="_640ZI3pQEeCIAr4_5S9-cA">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_640ZJnpQEeCIAr4_5S9-cA" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_640ZJXpQEeCIAr4_5S9-cA" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_cSCAkHpREeCIAr4_5S9-cA" name="FPTCPortSlot">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_eL7hcHpREeCIAr4_5S9-cA" name="FPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" association="_eMErYHpREeCIAr4_5S9-cA">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eL7hcnpREeCIAr4_5S9-cA" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eL7hcXpREeCIAr4_5S9-cA" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_oNcpsHpREeCIAr4_5S9-cA" name="base_Slot" association="_oNcpsXpREeCIAr4_5S9-cA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_7CFnwKbTEeSHP5PnCeTneg" name="failure" type="_UhqyoMF1Ed--atLXXafOiQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FIbloKbUEeSHP5PnCeTneg"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FIczwKbUEeSHP5PnCeTneg" value="*"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_eMErYHpREeCIAr4_5S9-cA" name="fPTCPortSlot_fPTCSpecification_0" memberEnd="_eMErYXpREeCIAr4_5S9-cA _eL7hcHpREeCIAr4_5S9-cA">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_eMErYXpREeCIAr4_5S9-cA" name="fPTCPortSlot" type="_cSCAkHpREeCIAr4_5S9-cA" association="_eMErYHpREeCIAr4_5S9-cA">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eMErY3pREeCIAr4_5S9-cA" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eMErYnpREeCIAr4_5S9-cA" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_oNcpsXpREeCIAr4_5S9-cA" name="E_FPTCPortSlot_Slot0" memberEnd="_oNcpsnpREeCIAr4_5S9-cA _oNcpsHpREeCIAr4_5S9-cA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_oNcpsnpREeCIAr4_5S9-cA" name="extension_FPTCPortSlot" type="_cSCAkHpREeCIAr4_5S9-cA" aggregation="composite" association="_oNcpsXpREeCIAr4_5S9-cA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Z6PNQAFdEeG47Njvphl3lQ" name="FI4FA">

+          <generalization xmi:type="uml:Generalization" xmi:id="_bKzdQAFdEeG47Njvphl3lQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_oTEUAAFdEeG47Njvphl3lQ" name="fi4fa">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_tOw3QKbSEeSHP5PnCeTneg" name="base_Connector" association="_tOxeUKbSEeSHP5PnCeTneg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_FfQhYAFeEeG47Njvphl3lQ" name="FI4FASpecification">

+          <generalization xmi:type="uml:Generalization" xmi:id="_Hu7d8AFeEeG47Njvphl3lQ" general="_aN9sgHpQEeCIAr4_5S9-cA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_qWq4kAFfEeG47Njvphl3lQ" name="ACIDAvoidable">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_vbGbwAFfEeG47Njvphl3lQ" name="a" type="_zutbcAFeEeG47Njvphl3lQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yJ_D4AFfEeG47Njvphl3lQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yKFKgAFfEeG47Njvphl3lQ" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_0EPKEAFfEeG47Njvphl3lQ" name="c" type="__14BkAFeEeG47Njvphl3lQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4Y1LwAFfEeG47Njvphl3lQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4ZCAEAFfEeG47Njvphl3lQ" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_7yOJcAFfEeG47Njvphl3lQ" name="base_Comment" association="_7yOJcQFfEeG47Njvphl3lQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_P6mM8AFgEeG47Njvphl3lQ" name="i" type="_B8CAUAFgEeG47Njvphl3lQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S-eNoAFgEeG47Njvphl3lQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S-whgAFgEeG47Njvphl3lQ" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_VGqCIAFgEeG47Njvphl3lQ" name="d" type="_Gn6goAFgEeG47Njvphl3lQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YnjWAAFgEeG47Njvphl3lQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yn1p4AFgEeG47Njvphl3lQ" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_7yOJcQFfEeG47Njvphl3lQ" name="E_ACIDAvoidable_Comment0" memberEnd="_7yOJcgFfEeG47Njvphl3lQ _7yOJcAFfEeG47Njvphl3lQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_7yOJcgFfEeG47Njvphl3lQ" name="extension_ACIDAvoidable" type="_qWq4kAFfEeG47Njvphl3lQ" aggregation="composite" association="_7yOJcQFfEeG47Njvphl3lQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_dq5UEAFgEeG47Njvphl3lQ" name="ACIDMitigation ">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_haekMAFgEeG47Njvphl3lQ" name="base_Comment" association="_hafLQAFgEeG47Njvphl3lQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_HmyuQAFhEeG47Njvphl3lQ" name="a" type="_jO-nsAFgEeG47Njvphl3lQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MoJIQAFhEeG47Njvphl3lQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MoJIQQFhEeG47Njvphl3lQ" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_lz4_AAFhEeG47Njvphl3lQ" name="c" type="_rQws0AFgEeG47Njvphl3lQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pBKMQAFhEeG47Njvphl3lQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pBQS4AFhEeG47Njvphl3lQ" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_qBuRYAFhEeG47Njvphl3lQ" name="i" type="_zPfd8AFgEeG47Njvphl3lQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stOOUAFhEeG47Njvphl3lQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stUU8AFhEeG47Njvphl3lQ" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_tCrg8AFhEeG47Njvphl3lQ" name="d" type="_-HY0kAFgEeG47Njvphl3lQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wkv5gAFhEeG47Njvphl3lQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wk2AIAFhEeG47Njvphl3lQ" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_hafLQAFgEeG47Njvphl3lQ" name="E_ACIDMitigation _Comment0" memberEnd="_hafLQQFgEeG47Njvphl3lQ _haekMAFgEeG47Njvphl3lQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_hafLQQFgEeG47Njvphl3lQ" name="extension_ACIDMitigation " type="_dq5UEAFgEeG47Njvphl3lQ" aggregation="composite" association="_hafLQAFgEeG47Njvphl3lQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_sm3owCV-EeGFef9zQOfShA" name="FI4FAAnalysis">

+          <generalization xmi:type="uml:Generalization" xmi:id="_yRbX0CV-EeGFef9zQOfShA">

+            <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>

+          </generalization>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_tOxeUKbSEeSHP5PnCeTneg" name="E_FI4FA_Connector1" memberEnd="_tOxeUabSEeSHP5PnCeTneg _tOw3QKbSEeSHP5PnCeTneg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_tOxeUabSEeSHP5PnCeTneg" name="extension_FI4FA" type="_Z6PNQAFdEeG47Njvphl3lQ" aggregation="composite" association="_tOxeUKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_trTpUKbSEeSHP5PnCeTneg" name="E_FPTC_Connector1" memberEnd="_trTpUabSEeSHP5PnCeTneg _trTCQKbSEeSHP5PnCeTneg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_trTpUabSEeSHP5PnCeTneg" name="extension_FPTC" type="_4m1fcMF0Ed--atLXXafOiQ" aggregation="composite" association="_trTpUKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_E4Uw4M2TEeSrt5YehnIlig" name="FLABehavior">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_I64AUM2TEeSrt5YehnIlig" name="base_Constraint" association="_I64AUc2TEeSrt5YehnIlig">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Nub18M2TEeSrt5YehnIlig" name="base_Class" association="_Nub18c2TEeSrt5YehnIlig">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_mCMWsM5BEeSP8r0TgY6H4g" name="fptc">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_lpgsMDHyEeWt8Ovv2G_EJg" name="base_InstanceSpecification" association="_lpgsMTHyEeWt8Ovv2G_EJg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_mByCQDHyEeWt8Ovv2G_EJg" name="base_Property" association="_mB1FkDHyEeWt8Ovv2G_EJg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_mYJT0DHyEeWt8Ovv2G_EJg" name="base_Connector" association="_mYJT0THyEeWt8Ovv2G_EJg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_I64AUc2TEeSrt5YehnIlig" name="E_FLABehavior_Constraint1" memberEnd="_I64AUs2TEeSrt5YehnIlig _I64AUM2TEeSrt5YehnIlig">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_I64AUs2TEeSrt5YehnIlig" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_I64AUc2TEeSrt5YehnIlig"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_Nub18c2TEeSrt5YehnIlig" name="E_FLABehavior_Class1" memberEnd="_Nub18s2TEeSrt5YehnIlig _Nub18M2TEeSrt5YehnIlig">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Nub18s2TEeSrt5YehnIlig" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_Nub18c2TEeSrt5YehnIlig"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_lpgsMTHyEeWt8Ovv2G_EJg" name="E_FLABehavior_InstanceSpecification1" memberEnd="_lpgsMjHyEeWt8Ovv2G_EJg _lpgsMDHyEeWt8Ovv2G_EJg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_lpgsMjHyEeWt8Ovv2G_EJg" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_lpgsMTHyEeWt8Ovv2G_EJg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_mB1FkDHyEeWt8Ovv2G_EJg" name="E_FLABehavior_Property1" memberEnd="_mB1FkTHyEeWt8Ovv2G_EJg _mByCQDHyEeWt8Ovv2G_EJg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_mB1FkTHyEeWt8Ovv2G_EJg" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_mB1FkDHyEeWt8Ovv2G_EJg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_mYJT0THyEeWt8Ovv2G_EJg" name="E_FLABehavior_Connector1" memberEnd="_mYJT0jHyEeWt8Ovv2G_EJg _mYJT0DHyEeWt8Ovv2G_EJg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_mYJT0jHyEeWt8Ovv2G_EJg" name="extension_FLABehavior" type="_E4Uw4M2TEeSrt5YehnIlig" aggregation="composite" association="_mYJT0THyEeWt8Ovv2G_EJg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_Hj80kDH3EeWt8Ovv2G_EJg" name="fPTCSpecification_failureMode_1" memberEnd="_Hj80kTH3EeWt8Ovv2G_EJg _Hj8NgDH3EeWt8Ovv2G_EJg">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_Hj80kTH3EeWt8Ovv2G_EJg" name="fPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" association="_Hj80kDH3EeWt8Ovv2G_EJg">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hj80kjH3EeWt8Ovv2G_EJg" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hj80kzH3EeWt8Ovv2G_EJg" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Profile" xmi:id="_cE_bwLwzEd-CDNLmLgazUQ" name="StateBased" URI="http://CHESS/Dependability/StateBased">

+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IRwq8cGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+          <contents xmi:type="ecore:EPackage" xmi:id="_QgRZcMe6Ed-7etIj5eTw0Q" name="StateBased" nsURI="http://CHESS/Dependability/StateBased" nsPrefix="StateBased">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U3X8mce6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8mse6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8m8e6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8nMe6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8nce6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U3X8nse6Ed-7etIj5eTw0Q" key="Author" value=""/>

+            </eAnnotations>

+          </contents>

+        </eAnnotations>

+        <packagedElement xmi:type="uml:Package" xmi:id="_u09NsLzqEd-yoLyJo0JlOg" name="StateBasedDataTypes">

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_2aiM4L84Ed-TL8tpOyViyA" name="RedundancyKind">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_4yYOAL84Ed-TL8tpOyViyA" name="TMR"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_63AYML84Ed-TL8tpOyViyA" name="Recovery"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:DataType" xmi:id="_gg-JgL9BEd-TL8tpOyViyA" name="DependabilityMeasure" isAbstract="true">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_yDV-oL9CEd-TL8tpOyViyA" name="evalProperties" visibility="public" type="_ypgcML9BEd-TL8tpOyViyA">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0bfhwL9CEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0borsL9CEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_0bycsL9CEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_5IWScL9CEd-TL8tpOyViyA" name="requiredMin" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7ZMTsL9CEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7ZWEsL9CEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_7ZWEsb9CEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_7tnEgL9CEd-TL8tpOyViyA" name="requiredMax" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9g8qYL9CEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9hF0UL9CEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_9hF0Ub9CEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:DataType" xmi:id="_ypgcML9BEd-TL8tpOyViyA" name="EvaluationMethod" isAbstract="true">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_yBQecMAHEd-Dn5_MBIs5Vw" name="simulation" visibility="public" type="_1_8MgL9BEd-TL8tpOyViyA">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0bMKQMAHEd-Dn5_MBIs5Vw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0bMKQcAHEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_0bVUMMAHEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_5i31wMAHEd-Dn5_MBIs5Vw" name="analytical" visibility="public" type="_ZD9v8L9CEd-TL8tpOyViyA">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_78zhkMAHEd-Dn5_MBIs5Vw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_78zhkcAHEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_789SkMAHEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:DataType" xmi:id="_1_8MgL9BEd-TL8tpOyViyA" name="EvaluationBySimulation">

+            <generalization xmi:type="uml:Generalization" xmi:id="_322q0L9BEd-TL8tpOyViyA" general="_ypgcML9BEd-TL8tpOyViyA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_5yreUL9BEd-TL8tpOyViyA" name="confidenceInterval" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9WrJgL9BEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9W06gL9BEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_9W06gb9BEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_CgTVwL9CEd-TL8tpOyViyA" name="confidenceLevel" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EQp5EL9CEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EQzqEL9CEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_EQ80AL9CEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_J5kpYL9CEd-TL8tpOyViyA" name="kind" visibility="public" type="_K_w1YL9CEd-TL8tpOyViyA">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KeFEoL9CEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KeFEob9CEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_KeO1oL9CEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_RjiEYL9CEd-TL8tpOyViyA" name="maxBatches" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T0O7sL9CEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T0YFoL9CEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_T0YFob9CEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Enumeration" xmi:id="_K_w1YL9CEd-TL8tpOyViyA" name="ConfidenceKind">

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_NIs30L9CEd-TL8tpOyViyA" name="relative"/>

+            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_N5usIL9CEd-TL8tpOyViyA" name="absolute"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:DataType" xmi:id="_ZD9v8L9CEd-TL8tpOyViyA" name="EvaluationAnalytical">

+            <generalization xmi:type="uml:Generalization" xmi:id="_aGkccL9CEd-TL8tpOyViyA" general="_ypgcML9BEd-TL8tpOyViyA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_hU980L9CEd-TL8tpOyViyA" name="accuracy" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_itoY4L9CEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_itxi0L9CEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_itxi0b9CEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_lG0d0L9CEd-TL8tpOyViyA" name="maxIteration" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m7MlgL9CEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m7Mlgb9CEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_m7WWgL9CEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:DataType" xmi:id="_BV7X4L9DEd-TL8tpOyViyA" name="Reliability">

+            <generalization xmi:type="uml:Generalization" xmi:id="_CyxJUL9DEd-TL8tpOyViyA" general="_gg-JgL9BEd-TL8tpOyViyA"/>

+            <generalization xmi:type="uml:Generalization" xmi:id="_rSeKEEQQEeCQRfAVtSc0sw" general="_gg-JgL9BEd-TL8tpOyViyA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_n_CS8MAEEd-Dn5_MBIs5Vw" name="instantOfTime" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p5rasMAEEd-Dn5_MBIs5Vw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p5rascAEEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_p5rassAEEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:DataType" xmi:id="_JEphoL9EEd-TL8tpOyViyA" name="EvaluationType" isAbstract="true">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_s98kUMABEd-Dn5_MBIs5Vw" name="steady" visibility="public" type="_Nim6sL9EEd-TL8tpOyViyA">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_udBKYMABEd-Dn5_MBIs5Vw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_udKUUMABEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_udKUUcABEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_xnh-kMABEd-Dn5_MBIs5Vw" name="instantOfTime" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4sPFgMADEd-Dn5_MBIs5Vw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4sY2gMADEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_4sY2gcADEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_SpTrgMAEEd-Dn5_MBIs5Vw" name="intervalOfTime" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UytA8MAEEd-Dn5_MBIs5Vw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UytA8cAEEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Uy2x8MAEEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:DataType" xmi:id="_Nim6sL9EEd-TL8tpOyViyA" name="SteadyState">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_UzPPsL9EEd-TL8tpOyViyA" name="initialTransient" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WjvkAL9EEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wj5VAL9EEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Wj5VAb9EEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_c7S78L9EEd-TL8tpOyViyA" name="batchSize" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EString"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eYSeYL9EEd-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eYSeYb9EEd-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_eYboUL9EEd-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:DataType" xmi:id="_IXDbwMAIEd-Dn5_MBIs5Vw" name="Availability">

+            <generalization xmi:type="uml:Generalization" xmi:id="_OUiG0MAIEd-Dn5_MBIs5Vw" general="_gg-JgL9BEd-TL8tpOyViyA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_R7p-gMAIEd-Dn5_MBIs5Vw" name="evaluation" visibility="public" type="_JEphoL9EEd-TL8tpOyViyA">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TZPW0MAIEd-Dn5_MBIs5Vw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TZPW0cAIEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_TZZH0MAIEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:DataType" xmi:id="_b3D3sMAIEd-Dn5_MBIs5Vw" name="MTTF">

+            <generalization xmi:type="uml:Generalization" xmi:id="_df0lQMAIEd-Dn5_MBIs5Vw" general="_gg-JgL9BEd-TL8tpOyViyA"/>

+          </packagedElement>

+          <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_f6IpcFt1EeCB9JyGkIbTqQ">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f6IpcVt1EeCB9JyGkIbTqQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+              <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//MARTE_Annexes/VSL/DataTypes"/>

+            </eAnnotations>

+            <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9FdqwA-MEdyLh7muGbCqMw"/>

+          </profileApplication>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Profile" xmi:id="_d50lQL86Ed-TL8tpOyViyA" name="StateBasedComponents" URI="http://CHESS/Dependability/StateBased/StateBasedComponents" metaclassReference="_khfBQDUkEeC3rNpnAhYo0w _9n598DXmEeCuQp9j3DmccQ _v_f1IDa_EeW314N4GP8y1Q _v_hDQDa_EeW314N4GP8y1Q _v_hqUDa_EeW314N4GP8y1Q">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IYK08MGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+            <contents xmi:type="ecore:EPackage" xmi:id="_qaEFEEAjEeCQKOeIf0epIQ" name="StateBasedComponents" nsURI="http://CHESS/Dependability/StateBased/StateBasedComponents" nsPrefix="StateBasedComponents">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qj5WgEAjEeCQKOeIf0epIQ" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5WgUAjEeCQKOeIf0epIQ" key="Version" value="0.1.10"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5WgkAjEeCQKOeIf0epIQ" key="Comment" value="added faultOcc in stateBased components"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5Wg0AjEeCQKOeIf0epIQ" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5WhEAjEeCQKOeIf0epIQ" key="Date" value="2011-02-24"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qj5WhUAjEeCQKOeIf0epIQ" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_qaEFEUAjEeCQKOeIf0epIQ" name="StatefulHardware" eSuperTypes="_vTM2hzgaEeCE2sZUGxu35w">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFEkAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_2CGCcLztEd-yoLyJo0JlOg"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qaXAAEAjEeCQKOeIf0epIQ" name="probPermFault" ordered="false" lowerBound="1" eType="_qaXAAkAjEeCQKOeIf0epIQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qazr8EAjEeCQKOeIf0epIQ" name="errorLatency" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qbQX4EAjEeCQKOeIf0epIQ" name="repairDelay" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qbtD0EAjEeCQKOeIf0epIQ" name="faultOcc" ordered="false" eType="_qbtD0kAjEeCQKOeIf0epIQ"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaEFe0AjEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFfEAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFfUAjEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFfkAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFf0AjEeCQKOeIf0epIQ" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFgEAjEeCQKOeIf0epIQ" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFgUAjEeCQKOeIf0epIQ" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFgkAjEeCQKOeIf0epIQ" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFg0AjEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFhEAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFhUAjEeCQKOeIf0epIQ" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFhkAjEeCQKOeIf0epIQ" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFh0AjEeCQKOeIf0epIQ" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFiEAjEeCQKOeIf0epIQ" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFiUAjEeCQKOeIf0epIQ" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFikAjEeCQKOeIf0epIQ" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFi0AjEeCQKOeIf0epIQ" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFjEAjEeCQKOeIf0epIQ" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFjUAjEeCQKOeIf0epIQ" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFjkAjEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFj0AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFkEAjEeCQKOeIf0epIQ" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFkUAjEeCQKOeIf0epIQ" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaEFkkAjEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFk0AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaEFlEAjEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFlUAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFo0AjEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFpEAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFpUAjEeCQKOeIf0epIQ" name="s"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFpkAjEeCQKOeIf0epIQ" name="tick" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFp0AjEeCQKOeIf0epIQ" name="ms" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFqEAjEeCQKOeIf0epIQ" name="us" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFqUAjEeCQKOeIf0epIQ" name="min" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFqkAjEeCQKOeIf0epIQ" name="hrs" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFq0AjEeCQKOeIf0epIQ" name="day" value="6"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaEFrEAjEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFrUAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qaEFtUAjEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFtkAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFt0AjEeCQKOeIf0epIQ" name="Hz"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFuEAjEeCQKOeIf0epIQ" name="KHz" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFuUAjEeCQKOeIf0epIQ" name="MHz" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFukAjEeCQKOeIf0epIQ" name="GHz" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_qaEFu0AjEeCQKOeIf0epIQ" name="rpm" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_qaEFvEAjEeCQKOeIf0epIQ" name="StatefulSoftware" eSuperTypes="_vTM2hzgaEeCE2sZUGxu35w">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFvUAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ZcEAsLzuEd-yoLyJo0JlOg"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qdfzkUAjEeCQKOeIf0epIQ" name="errorLatency" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qeFpcEAjEeCQKOeIf0epIQ" name="repairDelay" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qesGYEAjEeCQKOeIf0epIQ" name="faultOcc" ordered="false" eType="_qbtD0kAjEeCQKOeIf0epIQ"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_qaEFxUAjEeCQKOeIf0epIQ" name="StatelessHardware" eSuperTypes="_vTM2hzgaEeCE2sZUGxu35w">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFxkAjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_FUGM4LzuEd-yoLyJo0JlOg"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qgUeEEAjEeCQKOeIf0epIQ" name="probPermFault" ordered="false" lowerBound="1" eType="_qaXAAkAjEeCQKOeIf0epIQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qg67AEAjEeCQKOeIf0epIQ" name="repairDelay" ordered="false" lowerBound="1" eType="_qazr8kAjEeCQKOeIf0epIQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qhXm8EAjEeCQKOeIf0epIQ" name="faultOcc" ordered="false" eType="_qbtD0kAjEeCQKOeIf0epIQ"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_qaEFzkAjEeCQKOeIf0epIQ" name="StatelessSoftware" eSuperTypes="_vTM2hzgaEeCE2sZUGxu35w">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaEFz0AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_or_HgLzuEd-yoLyJo0JlOg"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qjAlsUAjEeCQKOeIf0epIQ" name="faultOcc" ordered="false" eType="_qbtD0kAjEeCQKOeIf0epIQ"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qaXAAkAjEeCQKOeIf0epIQ" name="NFP_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qaXAA0AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qazr8kAjEeCQKOeIf0epIQ" name="NFP_Duration" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qazr80AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_qbtD0kAjEeCQKOeIf0epIQ" name="NFP_Frequency" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qbtD00AjEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+            <contents xmi:type="ecore:EPackage" xmi:id="_Q0rjMMe6Ed-7etIj5eTw0Q" name="DependableComponents" nsURI="http://CHESS.DependabilitySecurity.StateBased/schemas/DependableComponents/_QgajYMe6Ed-7etIj5eTw0Q/9" nsPrefix="DependableComponents">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V9QmkMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9Qmkce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9Qmkse6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9Qmk8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9QmlMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V9Qmlce6Ed-7etIj5eTw0Q" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rjMce6Ed-7etIj5eTw0Q" name="DepComponent" abstract="true">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjMse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjM8e6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjNce6Ed-7etIj5eTw0Q" name="base_Property" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjN8e6Ed-7etIj5eTw0Q" name="failure" ordered="false" lowerBound="1" upperBound="-1" eType="_Q0rjO8e6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U7jR8Me6Ed-7etIj5eTw0Q" name="faultOcc" ordered="false" lowerBound="1" eType="_U7jR8se6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rjO8e6Ed-7etIj5eTw0Q" name="FailureMode">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjPMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Q0rjPce6Ed-7etIj5eTw0Q" name="name" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Q0rjP8e6Ed-7etIj5eTw0Q" name="description" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjRce6Ed-7etIj5eTw0Q" name="PropagationLogics" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//OpaqueExpression"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rjR8e6Ed-7etIj5eTw0Q" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U_kPQMe6Ed-7etIj5eTw0Q" name="signaled" ordered="false" lowerBound="1" eType="_U_kPQse6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VCGl4Me6Ed-7etIj5eTw0Q" name="relProb" ordered="false" lowerBound="1" eType="_VCGl4se6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rjoce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjose6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rjo8e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjpMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjpce6Ed-7etIj5eTw0Q" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjpse6Ed-7etIj5eTw0Q" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjp8e6Ed-7etIj5eTw0Q" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjqMe6Ed-7etIj5eTw0Q" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rjqce6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjqse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjq8e6Ed-7etIj5eTw0Q" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjrMe6Ed-7etIj5eTw0Q" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjrce6Ed-7etIj5eTw0Q" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjrse6Ed-7etIj5eTw0Q" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjr8e6Ed-7etIj5eTw0Q" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjsMe6Ed-7etIj5eTw0Q" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjsce6Ed-7etIj5eTw0Q" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjsse6Ed-7etIj5eTw0Q" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjs8e6Ed-7etIj5eTw0Q" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rjtMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjtce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjtse6Ed-7etIj5eTw0Q" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjt8e6Ed-7etIj5eTw0Q" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rjuMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjuce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rjuse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rju8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rjvMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjvce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rjyse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rjy8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjzMe6Ed-7etIj5eTw0Q" name="Hz"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjzce6Ed-7etIj5eTw0Q" name="KHz" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjzse6Ed-7etIj5eTw0Q" name="MHz" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rjz8e6Ed-7etIj5eTw0Q" name="GHz" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj0Me6Ed-7etIj5eTw0Q" name="rpm" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rj0ce6Ed-7etIj5eTw0Q" name="Propagation">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj0se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj08e6Ed-7etIj5eTw0Q" source="duplicates">

+                  <contents xmi:type="ecore:EReference" xmi:id="_Q0rj1Me6Ed-7etIj5eTw0Q" name="base_Connector" ordered="false" lowerBound="1">

+                    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj1ce6Ed-7etIj5eTw0Q" source="redefines" references="_Q0rj18e6Ed-7etIj5eTw0Q"/>

+                    <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+                  </contents>

+                </eAnnotations>

+                <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_b7sgXLG3Ed-tmN4hwNCxXQ"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Q0rj18e6Ed-7etIj5eTw0Q" name="base_Connector" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VMFoUMe6Ed-7etIj5eTw0Q" name="prob" ordered="false" lowerBound="1" eType="_VCGl4se6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VPqgwMe6Ed-7etIj5eTw0Q" name="propDelay" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rj6Me6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_Alloc_AllocationKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj6ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VxKdYBHbEdyWC5IKDhzksw"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj6se6Ed-7etIj5eTw0Q" name="structural"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj68e6Ed-7etIj5eTw0Q" name="behavioral" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj7Me6Ed-7etIj5eTw0Q" name="hybrid" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rj7ce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_Alloc_AllocationNature">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj7se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VYSDUBHbEdyWC5IKDhzksw"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj78e6Ed-7etIj5eTw0Q" name="spatialDistribution"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj8Me6Ed-7etIj5eTw0Q" name="timeScheduling" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rj-ce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_NFPs_ConstraintKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rj-se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ZCtm0A4vEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj-8e6Ed-7etIj5eTw0Q" name="required"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj_Me6Ed-7etIj5eTw0Q" name="offered" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rj_ce6Ed-7etIj5eTw0Q" name="contract" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Q0rkD8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkEMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkEce6Ed-7etIj5eTw0Q" name="s"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkEse6Ed-7etIj5eTw0Q" name="tick" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkE8e6Ed-7etIj5eTw0Q" name="ms" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkFMe6Ed-7etIj5eTw0Q" name="us" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkFce6Ed-7etIj5eTw0Q" name="min" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkFse6Ed-7etIj5eTw0Q" name="hrs" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_Q0rkF8e6Ed-7etIj5eTw0Q" name="day" value="6"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Q0rkGMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkGce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rkGse6Ed-7etIj5eTw0Q" name="StatefulHardware" eSuperTypes="_Q0rjMce6Ed-7etIj5eTw0Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkG8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_2CGCcLztEd-yoLyJo0JlOg"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VVeN0Me6Ed-7etIj5eTw0Q" name="probPermFault" ordered="false" lowerBound="1" eType="_VCGl4se6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VYnBYMe6Ed-7etIj5eTw0Q" name="errorLatency" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VbvN4Me6Ed-7etIj5eTw0Q" name="repairDelay" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rkI8e6Ed-7etIj5eTw0Q" name="StatefulSoftware" eSuperTypes="_Q0rjMce6Ed-7etIj5eTw0Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkJMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ZcEAsLzuEd-yoLyJo0JlOg"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VlauUMe6Ed-7etIj5eTw0Q" name="errorLatency" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Voi60Me6Ed-7etIj5eTw0Q" name="repairDelay" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rkKse6Ed-7etIj5eTw0Q" name="StatelessHardware" eSuperTypes="_Q0rjMce6Ed-7etIj5eTw0Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkK8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_FUGM4LzuEd-yoLyJo0JlOg"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Vw4-gMe6Ed-7etIj5eTw0Q" name="probPermFault" ordered="false" lowerBound="1" eType="_VCGl4se6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_V0ByEMe6Ed-7etIj5eTw0Q" name="repairDelay" ordered="false" lowerBound="1" eType="_VPqgwse6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_Q0rkMce6Ed-7etIj5eTw0Q" name="StatelessSoftware" eSuperTypes="_Q0rjMce6Ed-7etIj5eTw0Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q0rkMse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_or_HgLzuEd-yoLyJo0JlOg"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U7jR8se6Ed-7etIj5eTw0Q" name="NFP_Frequency" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U7jR88e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U_kPQse6Ed-7etIj5eTw0Q" name="NFP_Boolean" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U_kPQ8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_55fyMBFGEdyBd9q9NMDXUQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_VCGl4se6Ed-7etIj5eTw0Q" name="NFP_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VCGl48e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_VPqgwse6Ed-7etIj5eTw0Q" name="NFP_Duration" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VPqgw8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+          </eAnnotations>

+          <ownedComment xmi:type="uml:Comment" xmi:id="_tClioDbAEeW314N4GP8y1Q" annotatedElement="_ydru0Da_EeW314N4GP8y1Q">

+            <body>as instance of component, block, connector</body>

+          </ownedComment>

+          <ownedComment xmi:type="uml:Comment" xmi:id="_xj5xsDbAEeW314N4GP8y1Q" annotatedElement="_xm1mYDa_EeW314N4GP8y1Q">

+            <body>as component, block</body>

+          </ownedComment>

+          <ownedComment xmi:type="uml:Comment" xmi:id="__A-a0DbAEeW314N4GP8y1Q" annotatedElement="_x-obUDa_EeW314N4GP8y1Q _-F7H0DbAEeW314N4GP8y1Q">

+            <body>This is to allow using SimpleStichasticBahaviour in CompositeDiagram, the latter as kind of instance view.However the plan is to enable the usage of InstanceSpefications\Slots for extra functional annotation; so the usage of the InstanceSpecification should be preferred here.</body>

+          </ownedComment>

+          <ownedComment xmi:type="uml:Comment" xmi:id="_lPPssDbBEeW314N4GP8y1Q" annotatedElement="_h4_aoM1aEeSrt5YehnIlig">

+            <body>to be removed???</body>

+          </ownedComment>

+          <ownedComment xmi:type="uml:Comment" xmi:id="_oCnMMDbBEeW314N4GP8y1Q" annotatedElement="_2CGCcLztEd-yoLyJo0JlOg _or_HgLzuEd-yoLyJo0JlOg _FUGM4LzuEd-yoLyJo0JlOg _ZcEAsLzuEd-yoLyJo0JlOg">

+            <body>obsolete, see SimpleStochasticBehaviour</body>

+          </ownedComment>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_khfBQDUkEeC3rNpnAhYo0w" alias="Component">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+          </elementImport>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_9n598DXmEeCuQp9j3DmccQ" alias="Property">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+          </elementImport>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_v_f1IDa_EeW314N4GP8y1Q" alias="Class">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </elementImport>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_v_hDQDa_EeW314N4GP8y1Q" alias="Connector">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+          </elementImport>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_v_hqUDa_EeW314N4GP8y1Q" alias="InstanceSpecification">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+          </elementImport>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_2CGCcLztEd-yoLyJo0JlOg" name="StatefulHardware">

+            <generalization xmi:type="uml:Generalization" xmi:id="_nKyFoEAjEeCQKOeIf0epIQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_7R02sLztEd-yoLyJo0JlOg" name="probPermFault" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9ofMELztEd-yoLyJo0JlOg" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9oo9ELztEd-yoLyJo0JlOg" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_9oo9EbztEd-yoLyJo0JlOg">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_-ghAQLztEd-yoLyJo0JlOg" name="errorLatency" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ALXYgLzuEd-yoLyJo0JlOg" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ALgicLzuEd-yoLyJo0JlOg" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_ALqTcLzuEd-yoLyJo0JlOg">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_CIZF4LzuEd-yoLyJo0JlOg" name="repairDelay" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EHM78LzuEd-yoLyJo0JlOg" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EHM78bzuEd-yoLyJo0JlOg" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_EHWs8LzuEd-yoLyJo0JlOg">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_PUFWQEAjEeCQKOeIf0epIQ" name="faultOcc" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RFfCcEAjEeCQKOeIf0epIQ"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RFx9YEAjEeCQKOeIf0epIQ" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_RF7uYEAjEeCQKOeIf0epIQ">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_ZcEAsLzuEd-yoLyJo0JlOg" name="StatefulSoftware">

+            <generalization xmi:type="uml:Generalization" xmi:id="_oMpyUEAjEeCQKOeIf0epIQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_cZdl8LzuEd-yoLyJo0JlOg" name="errorLatency" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eMgQ4LzuEd-yoLyJo0JlOg" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eMqB4LzuEd-yoLyJo0JlOg" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_eMqB4bzuEd-yoLyJo0JlOg">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_ee1XALzuEd-yoLyJo0JlOg" name="repairDelay" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hTTCsLzuEd-yoLyJo0JlOg" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hTTCsbzuEd-yoLyJo0JlOg" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_hTczsLzuEd-yoLyJo0JlOg">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_beHDIEAjEeCQKOeIf0epIQ" name="faultOcc" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eEIDIEAjEeCQKOeIf0epIQ"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eEa-EEAjEeCQKOeIf0epIQ" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_eEkvEEAjEeCQKOeIf0epIQ">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_FUGM4LzuEd-yoLyJo0JlOg" name="StatelessHardware">

+            <ownedComment xmi:type="uml:Comment" xmi:id="_JxdwELzuEd-yoLyJo0JlOg">

+              <body>probPermFault</body>

+            </ownedComment>

+            <generalization xmi:type="uml:Generalization" xmi:id="_n2AM4EAjEeCQKOeIf0epIQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_PAKpkLzuEd-yoLyJo0JlOg" name="probPermFault" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R1hGELzuEd-yoLyJo0JlOg" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R1q3ELzuEd-yoLyJo0JlOg" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_R1q3EbzuEd-yoLyJo0JlOg">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_SQ72wLzuEd-yoLyJo0JlOg" name="repairDelay" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUmcELzuEd-yoLyJo0JlOg" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUmcEbzuEd-yoLyJo0JlOg" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_VUvmALzuEd-yoLyJo0JlOg">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_ZkEYUEAjEeCQKOeIf0epIQ" name="faultOcc" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_avK5gEAjEeCQKOeIf0epIQ"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_avUqgEAjEeCQKOeIf0epIQ" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_avd0cEAjEeCQKOeIf0epIQ">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_or_HgLzuEd-yoLyJo0JlOg" name="StatelessSoftware">

+            <generalization xmi:type="uml:Generalization" xmi:id="_nhIwIEAjEeCQKOeIf0epIQ" general="_y0zvEDQ2EeC0ueejuetpgA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_V6__4EAjEeCQKOeIf0epIQ" name="faultOcc" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XcAfoEAjEeCQKOeIf0epIQ"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XcUBoEAjEeCQKOeIf0epIQ" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_XcdLkEAjEeCQKOeIf0epIQ">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_h4_aoM1aEeSrt5YehnIlig" name="StochasticFailureBehaviour">

+            <generalization xmi:type="uml:Generalization" xmi:id="_R3mlMM1bEeSrt5YehnIlig" general="_y0zvEDQ2EeC0ueejuetpgA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_UUdpMM1bEeSrt5YehnIlig" name="failureDistribution">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_Xk8igM1bEeSrt5YehnIlig" name="repairDistribution">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_bCg1kM1bEeSrt5YehnIlig" name="modes">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_mz5oQDa_EeW314N4GP8y1Q" name="SimpleStochasticBehavior">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_xm0YQDa_EeW314N4GP8y1Q" name="base_Class" association="_xm1mYDa_EeW314N4GP8y1Q">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_x-n0QDa_EeW314N4GP8y1Q" name="base_Connector" association="_x-obUDa_EeW314N4GP8y1Q">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_ydrHwDa_EeW314N4GP8y1Q" name="base_InstanceSpecification" association="_ydru0Da_EeW314N4GP8y1Q">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_2C-agDa_EeW314N4GP8y1Q" name="failureOccurrence ">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_VAzkoDbAEeW314N4GP8y1Q" name="repairDelay">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yb9c4DbAEeW314N4GP8y1Q"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yb-rADbAEeW314N4GP8y1Q" value="1"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_Z1JdYDbAEeW314N4GP8y1Q" name="failureModesDistribution">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dH7cwDbAEeW314N4GP8y1Q"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dH8D0DbAEeW314N4GP8y1Q" value="1"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_-F6gwDbAEeW314N4GP8y1Q" name="base_Property" association="_-F7H0DbAEeW314N4GP8y1Q">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_xm1mYDa_EeW314N4GP8y1Q" name="E_SimpleStochasticBehavior_Class1" memberEnd="_xm1mYTa_EeW314N4GP8y1Q _xm0YQDa_EeW314N4GP8y1Q">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_xm1mYTa_EeW314N4GP8y1Q" name="extension_SimpleStochasticBehavior" type="_mz5oQDa_EeW314N4GP8y1Q" aggregation="composite" association="_xm1mYDa_EeW314N4GP8y1Q"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_x-obUDa_EeW314N4GP8y1Q" name="E_SimpleStochasticBehavior_Connector1" memberEnd="_x-obUTa_EeW314N4GP8y1Q _x-n0QDa_EeW314N4GP8y1Q">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_x-obUTa_EeW314N4GP8y1Q" name="extension_SimpleStochasticBehavior" type="_mz5oQDa_EeW314N4GP8y1Q" aggregation="composite" association="_x-obUDa_EeW314N4GP8y1Q"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_ydru0Da_EeW314N4GP8y1Q" name="E_SimpleStochasticBehavior_InstanceSpecification1" memberEnd="_ydru0Ta_EeW314N4GP8y1Q _ydrHwDa_EeW314N4GP8y1Q">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ydru0Ta_EeW314N4GP8y1Q" name="extension_SimpleStochasticBehavior" type="_mz5oQDa_EeW314N4GP8y1Q" aggregation="composite" association="_ydru0Da_EeW314N4GP8y1Q"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_-F7H0DbAEeW314N4GP8y1Q" name="E_SimpleStochasticBehavior_Property1" memberEnd="_-F7H0TbAEeW314N4GP8y1Q _-F6gwDbAEeW314N4GP8y1Q">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_-F7H0TbAEeW314N4GP8y1Q" name="extension_SimpleStochasticBehavior" type="_mz5oQDa_EeW314N4GP8y1Q" aggregation="composite" association="_-F7H0DbAEeW314N4GP8y1Q"/>

+          </packagedElement>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Profile" xmi:id="_mbqqgL86Ed-TL8tpOyViyA" name="FaultTolerance" URI="http://CHESS/Dependability/StateBased/FaultTolerance">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IhHVkMGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+            <contents xmi:type="ecore:EPackage" xmi:id="_RFhbkMe6Ed-7etIj5eTw0Q" name="FaultTolerance" nsURI="http://CHESS/Dependability/StateBased/FaultTolerance" nsPrefix="FaultTolerance">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WHPpAMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpAce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpAse6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpA8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpBMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WHPpBce6Ed-7etIj5eTw0Q" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RFhbkce6Ed-7etIj5eTw0Q" name="FaultTolerant">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbkse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sRiccLzvEd-yoLyJo0JlOg"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbk8e6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RFhblce6Ed-7etIj5eTw0Q" name="scheme" ordered="false" lowerBound="1" eType="_RFhbmce6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbl8e6Ed-7etIj5eTw0Q" name="schemeAttrs" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//OpaqueExpression"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RFhbmce6Ed-7etIj5eTw0Q" name="CHESSML_DependabilitySecurity_StateBased_StateBasedDataTypes_RedundancyKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbmse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_2aiM4L84Ed-TL8tpOyViyA"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhbm8e6Ed-7etIj5eTw0Q" name="TMR"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhbnMe6Ed-7etIj5eTw0Q" name="Recovery" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RFhbnce6Ed-7etIj5eTw0Q" name="RedundancyManager">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbnse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_nFkOAL84Ed-TL8tpOyViyA"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbn8e6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RFhboce6Ed-7etIj5eTw0Q" name="scheme" ordered="false" lowerBound="1" eType="_RFhbmce6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RFhbo8e6Ed-7etIj5eTw0Q" name="Variant">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbpMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_c8jZ0L88Ed-TL8tpOyViyA"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbpce6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RFhbp8e6Ed-7etIj5eTw0Q" name="Adjudicator">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhbqMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_fETJcL88Ed-TL8tpOyViyA"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RFhbqce6Ed-7etIj5eTw0Q" name="base_Component" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WDqwkMe6Ed-7etIj5eTw0Q" name="coverage" ordered="false" lowerBound="1" eType="_WDqwkse6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RFhcCse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcC8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RFhcDMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcDce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcDse6Ed-7etIj5eTw0Q" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcD8e6Ed-7etIj5eTw0Q" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcEMe6Ed-7etIj5eTw0Q" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcEce6Ed-7etIj5eTw0Q" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RFhcEse6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcE8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcFMe6Ed-7etIj5eTw0Q" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcFce6Ed-7etIj5eTw0Q" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcFse6Ed-7etIj5eTw0Q" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcF8e6Ed-7etIj5eTw0Q" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcGMe6Ed-7etIj5eTw0Q" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcGce6Ed-7etIj5eTw0Q" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcGse6Ed-7etIj5eTw0Q" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcG8e6Ed-7etIj5eTw0Q" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcHMe6Ed-7etIj5eTw0Q" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RFhcHce6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcHse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcH8e6Ed-7etIj5eTw0Q" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RFhcIMe6Ed-7etIj5eTw0Q" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RFhcIce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcIse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RFhcI8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcJMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RFhcJce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RFhcJse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WDqwkse6Ed-7etIj5eTw0Q" name="NFP_Percentage" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WDqwk8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ZPC-IBFaEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+          </eAnnotations>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_xlcmEbzvEd-yoLyJo0JlOg" name="E_FaultTolerant_Component0" memberEnd="_xlcmErzvEd-yoLyJo0JlOg _xlcmELzvEd-yoLyJo0JlOg">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_xlcmErzvEd-yoLyJo0JlOg" name="extension_FaultTolerant" type="_sRiccLzvEd-yoLyJo0JlOg" aggregation="composite" association="_xlcmEbzvEd-yoLyJo0JlOg"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_uOmGMb84Ed-TL8tpOyViyA" name="E_RedundancyManager_Component0" memberEnd="_uOmGMr84Ed-TL8tpOyViyA _uOmGML84Ed-TL8tpOyViyA">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_uOmGMr84Ed-TL8tpOyViyA" name="extension_RedundancyManager" type="_nFkOAL84Ed-TL8tpOyViyA" aggregation="composite" association="_uOmGMb84Ed-TL8tpOyViyA"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_sRiccLzvEd-yoLyJo0JlOg" name="FaultTolerant">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_xlcmELzvEd-yoLyJo0JlOg" name="base_Component" association="_xlcmEbzvEd-yoLyJo0JlOg">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_HdIq4L88Ed-TL8tpOyViyA" name="scheme" visibility="public" type="_2aiM4L84Ed-TL8tpOyViyA">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_I7nbEL88Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_I7nbEb88Ed-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_I7wlAL88Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_LSRJYL88Ed-TL8tpOyViyA" name="schemeAttrs" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#OpaqueExpression"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MI85wL88Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MI85wb88Ed-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_MJGqwL88Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_nFkOAL84Ed-TL8tpOyViyA" name="RedundancyManager">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_uOmGML84Ed-TL8tpOyViyA" name="base_Component" association="_uOmGMb84Ed-TL8tpOyViyA">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_-e32wL84Ed-TL8tpOyViyA" name="scheme" visibility="public" type="_2aiM4L84Ed-TL8tpOyViyA">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Avt4AL85Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Avt4Ab85Ed-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Av3B8L85Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_c8jZ0L88Ed-TL8tpOyViyA" name="Variant">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_d0uX8L88Ed-TL8tpOyViyA" name="base_Component" association="_d0uX8b88Ed-TL8tpOyViyA">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_d0uX8b88Ed-TL8tpOyViyA" name="E_Variant_Component0" memberEnd="_d0uX8r88Ed-TL8tpOyViyA _d0uX8L88Ed-TL8tpOyViyA">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_d0uX8r88Ed-TL8tpOyViyA" name="extension_Variant" type="_c8jZ0L88Ed-TL8tpOyViyA" aggregation="composite" association="_d0uX8b88Ed-TL8tpOyViyA"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_fETJcL88Ed-TL8tpOyViyA" name="Adjudicator">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_gKofYL88Ed-TL8tpOyViyA" name="base_Component" association="_gKofYb88Ed-TL8tpOyViyA">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_hTXCAL88Ed-TL8tpOyViyA" name="coverage" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iyboEL88Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iyboEb88Ed-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_iyboEr88Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_gKofYb88Ed-TL8tpOyViyA" name="E_Adjudicator_Component0" memberEnd="_gKofYr88Ed-TL8tpOyViyA _gKofYL88Ed-TL8tpOyViyA">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gKofYr88Ed-TL8tpOyViyA" name="extension_Adjudicator" type="_fETJcL88Ed-TL8tpOyViyA" aggregation="composite" association="_gKofYb88Ed-TL8tpOyViyA"/>

+          </packagedElement>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Profile" xmi:id="_oUVxcL88Ed-TL8tpOyViyA" name="MaintenanceMonitoring" URI="http://CHESS/Dependability/StateBased/MaintenanceMonitoring" metaclassReference="_QRHlgLwSEeCKhZAgDxzHNA">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IqpsEMGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+            <contents xmi:type="ecore:EPackage" xmi:id="_RWgd4Me6Ed-7etIj5eTw0Q" name="MaintenanceMonitoring" nsURI="http://CHESS/Dependability/StateBased/MaintenanceMonitoring" nsPrefix="MaintenanceMonitoring">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wp97kMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97kce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97kse6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97k8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97lMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wp97lce6Ed-7etIj5eTw0Q" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgd4ce6Ed-7etIj5eTw0Q" name="MMActivities">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgd4se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_u9LtsL88Ed-TL8tpOyViyA"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd48e6Ed-7etIj5eTw0Q" name="base_Activity" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd5ce6Ed-7etIj5eTw0Q" name="when" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//TimeExpression"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd68e6Ed-7etIj5eTw0Q" name="onCompletion" ordered="false" upperBound="-1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd7ce6Ed-7etIj5eTw0Q" name="onSuccessfulCompletion" ordered="false" upperBound="-1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgd78e6Ed-7etIj5eTw0Q" name="onFailedCompletion" ordered="false" upperBound="-1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WKE6kMe6Ed-7etIj5eTw0Q" name="duration" ordered="false" lowerBound="1" eType="_WKE6kse6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WMdgMMe6Ed-7etIj5eTw0Q" name="probSuccess" ordered="false" lowerBound="1" eType="_WMdgMse6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RWgeVse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgeV8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RWgeWMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgeWce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeWse6Ed-7etIj5eTw0Q" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeW8e6Ed-7etIj5eTw0Q" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeXMe6Ed-7etIj5eTw0Q" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeXce6Ed-7etIj5eTw0Q" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RWgeXse6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgeX8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeYMe6Ed-7etIj5eTw0Q" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeYce6Ed-7etIj5eTw0Q" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeYse6Ed-7etIj5eTw0Q" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeY8e6Ed-7etIj5eTw0Q" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeZMe6Ed-7etIj5eTw0Q" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeZce6Ed-7etIj5eTw0Q" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeZse6Ed-7etIj5eTw0Q" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeZ8e6Ed-7etIj5eTw0Q" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeaMe6Ed-7etIj5eTw0Q" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RWgeace6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgease6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgea8e6Ed-7etIj5eTw0Q" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgebMe6Ed-7etIj5eTw0Q" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RWgebce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgebse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RWgeb8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgecMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RWgecce6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgecse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgec8e6Ed-7etIj5eTw0Q" name="s"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgedMe6Ed-7etIj5eTw0Q" name="tick" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgedce6Ed-7etIj5eTw0Q" name="ms" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgedse6Ed-7etIj5eTw0Q" name="us" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWged8e6Ed-7etIj5eTw0Q" name="min" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeeMe6Ed-7etIj5eTw0Q" name="hrs" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RWgeece6Ed-7etIj5eTw0Q" name="day" value="6"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RWgeese6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgee8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgefMe6Ed-7etIj5eTw0Q" name="Repair" eSuperTypes="_RWgd4ce6Ed-7etIj5eTw0Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgefce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8BFzcL89Ed-TL8tpOyViyA"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgefse6Ed-7etIj5eTw0Q" name="targets" ordered="false" lowerBound="1" upperBound="-1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgegce6Ed-7etIj5eTw0Q" name="Replace" eSuperTypes="_RWgd4ce6Ed-7etIj5eTw0Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgegse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_D8sYEL8-Ed-TL8tpOyViyA"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgeg8e6Ed-7etIj5eTw0Q" name="targets" ordered="false" lowerBound="1" upperBound="-1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgehce6Ed-7etIj5eTw0Q" name="replacement" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgeiMe6Ed-7etIj5eTw0Q" name="ErrorDetection" eSuperTypes="_RWgd4ce6Ed-7etIj5eTw0Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgeice6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_QC6jAL8-Ed-TL8tpOyViyA"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgeise6Ed-7etIj5eTw0Q" name="targets" ordered="false" lowerBound="1" upperBound="-1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgejMe6Ed-7etIj5eTw0Q" name="onDetection" ordered="false" lowerBound="1" upperBound="-1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RWgej8e6Ed-7etIj5eTw0Q" name="FailureDetection" eSuperTypes="_RWgd4ce6Ed-7etIj5eTw0Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWgekMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_pJ2yQL8-Ed-TL8tpOyViyA"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RWgekce6Ed-7etIj5eTw0Q" name="onDetection" ordered="false" lowerBound="1" upperBound="-1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WKE6kse6Ed-7etIj5eTw0Q" name="NFP_Duration" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WKE6k8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WMdgMse6Ed-7etIj5eTw0Q" name="NFP_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WMdgM8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+          </eAnnotations>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_QRHlgLwSEeCKhZAgDxzHNA" alias="Action">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Action"/>

+          </elementImport>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_u9LtsL88Ed-TL8tpOyViyA" name="MMActivities">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_yTxPAL88Ed-TL8tpOyViyA" name="base_Activity" association="_yTxPAb88Ed-TL8tpOyViyA">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_z22yYL88Ed-TL8tpOyViyA" name="when" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1Ph1gL88Ed-TL8tpOyViyA"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1Pq_cL88Ed-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_1Pq_cb88Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_2jkQQL88Ed-TL8tpOyViyA" name="duration" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4E4SAL88Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4FBb8L88Ed-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_4FBb8b88Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_4zN-sL88Ed-TL8tpOyViyA" name="probSuccess" visibility="public">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6T7jgL88Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6T7jgb88Ed-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_6UFUgL88Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_7qgU4L88Ed-TL8tpOyViyA" name="onCompletion" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9tMlYL88Ed-TL8tpOyViyA"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9tMlYb88Ed-TL8tpOyViyA" value="*"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_9tWWYL88Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_uhASkL89Ed-TL8tpOyViyA" name="onSuccessfulCompletion" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v0nPgL89Ed-TL8tpOyViyA"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v0xAgL89Ed-TL8tpOyViyA" value="*"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_v0xAgb89Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_3o6SQL89Ed-TL8tpOyViyA" name="onFailedCompletion" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5SuIsL89Ed-TL8tpOyViyA"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5SuIsb89Ed-TL8tpOyViyA" value="*"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_5S35sL89Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_RAzWALwSEeCKhZAgDxzHNA" name="base_Action" association="_RAzWAbwSEeCKhZAgDxzHNA">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Action"/>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_yTxPAb88Ed-TL8tpOyViyA" name="E_MMActivities_Activity0" memberEnd="_yTxPAr88Ed-TL8tpOyViyA _yTxPAL88Ed-TL8tpOyViyA">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_yTxPAr88Ed-TL8tpOyViyA" name="extension_MMActivities" type="_u9LtsL88Ed-TL8tpOyViyA" aggregation="composite" association="_yTxPAb88Ed-TL8tpOyViyA"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_8BFzcL89Ed-TL8tpOyViyA" name="Repair">

+            <generalization xmi:type="uml:Generalization" xmi:id="_83yK4L89Ed-TL8tpOyViyA" general="_u9LtsL88Ed-TL8tpOyViyA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_-fqHoL89Ed-TL8tpOyViyA" name="targets" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__za1kL89Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__ztwgL89Ed-TL8tpOyViyA" value="*"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="__ztwgb89Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_ZqlnEEZlEem4B_q39cdXSg" name="base_Transition" association="_ZqjK0EZlEem4B_q39cdXSg">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_D8sYEL8-Ed-TL8tpOyViyA" name="Replace">

+            <generalization xmi:type="uml:Generalization" xmi:id="_E4J6wL8-Ed-TL8tpOyViyA" general="_u9LtsL88Ed-TL8tpOyViyA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_GVmJIL8-Ed-TL8tpOyViyA" name="targets" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsfDkL8-Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HsfDkb8-Ed-TL8tpOyViyA" value="*"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hso0kL8-Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_MB_EML8-Ed-TL8tpOyViyA" name="replacement" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Na9CQL8-Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NbGzQL8-Ed-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_NbGzQb8-Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_QC6jAL8-Ed-TL8tpOyViyA" name="ErrorDetection">

+            <generalization xmi:type="uml:Generalization" xmi:id="_SCVdEL8-Ed-TL8tpOyViyA" general="_u9LtsL88Ed-TL8tpOyViyA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_gZr9IL8-Ed-TL8tpOyViyA" name="targets" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hmlOEL8-Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hmu_EL8-Ed-TL8tpOyViyA" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_hmu_Eb8-Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_jIO5oLwLEeCkE-pvjHe3zw" name="correctionProbability">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_pJ2yQL8-Ed-TL8tpOyViyA" name="FailureDetection">

+            <generalization xmi:type="uml:Generalization" xmi:id="_qpFJUL8-Ed-TL8tpOyViyA" general="_u9LtsL88Ed-TL8tpOyViyA"/>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_r7WCcL8-Ed-TL8tpOyViyA" name="onDetection" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t0y3YL8-Ed-TL8tpOyViyA" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t08oYL8-Ed-TL8tpOyViyA" value="*"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_t1FyUL8-Ed-TL8tpOyViyA">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_RAzWAbwSEeCKhZAgDxzHNA" name="E_MMActivities_Action0" memberEnd="_RAzWArwSEeCKhZAgDxzHNA _RAzWALwSEeCKhZAgDxzHNA">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_RAzWArwSEeCKhZAgDxzHNA" name="extension_MMActivities" type="_u9LtsL88Ed-TL8tpOyViyA" aggregation="composite" association="_RAzWAbwSEeCKhZAgDxzHNA"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_ZqjK0EZlEem4B_q39cdXSg" name="E_Repair_Transition1" memberEnd="_ZqlAAEZlEem4B_q39cdXSg _ZqlnEEZlEem4B_q39cdXSg">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ZqlAAEZlEem4B_q39cdXSg" name="extension_Repair" type="_8BFzcL89Ed-TL8tpOyViyA" aggregation="composite" association="_ZqjK0EZlEem4B_q39cdXSg"/>

+          </packagedElement>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Profile" xmi:id="_Wgxh0L8_Ed-TL8tpOyViyA" name="StateBasedAnalysis" URI="http://CHESS/Dependability/StateBased/StateBasedAnalysis" metaclassReference="_DHTZMDbQEeW5DJdhCjCHFw">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2RGMMGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+            <contents xmi:type="ecore:EPackage" xmi:id="_K8jbkFodEeCE4ZeNjhtnzg" name="StateBasedAnalysis" nsURI="http://CHESS/Dependability/StateBased/StateBasedAnalysis" nsPrefix="StateBasedAnalysis">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LBxSwFodEeCE4ZeNjhtnzg" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSwVodEeCE4ZeNjhtnzg" key="Version" value="0.1.10"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSwlodEeCE4ZeNjhtnzg" key="Comment" value="added &quot;targetFailureMode&quot; and &quot;targetDepComponent&quot; in StateBasedAnalysis.&#xD;&#xA;removed &quot;target&quot; from DependableMeasure"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSw1odEeCE4ZeNjhtnzg" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSxFodEeCE4ZeNjhtnzg" key="Date" value="2011-03-29"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LBxSxVodEeCE4ZeNjhtnzg" key="Author" value="Stefano"/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_K8jbkVodEeCE4ZeNjhtnzg" name="StateBasedAnalysis">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jbklodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_aqUxIL8_Ed-TL8tpOyViyA"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//GQAM/GaAnalysisContext"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_K8jbmVodEeCE4ZeNjhtnzg" name="targetFailureMode" ordered="false" upperBound="-1" eType="_2F5Q8UQQEeCQRfAVtSc0sw"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_K8jbm1odEeCE4ZeNjhtnzg" name="targetDepComponent" ordered="false" upperBound="-1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_K8_gcFodEeCE4ZeNjhtnzg" name="measure" ordered="false" lowerBound="1" eType="_K8_gclodEeCE4ZeNjhtnzg"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_K944UFodEeCE4ZeNjhtnzg" name="type" ordered="false" lowerBound="1" eType="_K944UlodEeCE4ZeNjhtnzg"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_K-8BMFodEeCE4ZeNjhtnzg" name="evalMethod" ordered="false" lowerBound="1" eType="_K-8BMlodEeCE4ZeNjhtnzg"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K8jcClodEeCE4ZeNjhtnzg" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcC1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_K8jcDFodEeCE4ZeNjhtnzg" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcDVodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcDlodEeCE4ZeNjhtnzg" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcD1odEeCE4ZeNjhtnzg" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcEFodEeCE4ZeNjhtnzg" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcEVodEeCE4ZeNjhtnzg" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_K8jcElodEeCE4ZeNjhtnzg" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcE1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcFFodEeCE4ZeNjhtnzg" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcFVodEeCE4ZeNjhtnzg" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcFlodEeCE4ZeNjhtnzg" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcF1odEeCE4ZeNjhtnzg" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcGFodEeCE4ZeNjhtnzg" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcGVodEeCE4ZeNjhtnzg" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcGlodEeCE4ZeNjhtnzg" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcG1odEeCE4ZeNjhtnzg" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcHFodEeCE4ZeNjhtnzg" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_K8jcHVodEeCE4ZeNjhtnzg" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcHlodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcH1odEeCE4ZeNjhtnzg" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcIFodEeCE4ZeNjhtnzg" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K8jcIVodEeCE4ZeNjhtnzg" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcIlodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K8jcI1odEeCE4ZeNjhtnzg" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcJFodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_K8jcJVodEeCE4ZeNjhtnzg" name="CHESS_Dependability_StateBased_StateBasedDataTypes_ConfidenceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8jcJlodEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_K_w1YL9CEd-TL8tpOyViyA"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcJ1odEeCE4ZeNjhtnzg" name="relative"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_K8jcKFodEeCE4ZeNjhtnzg" name="absolute" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K8_gclodEeCE4ZeNjhtnzg" name="DependabilityMeasure" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8_gc1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gg-JgL9BEd-TL8tpOyViyA"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K944UlodEeCE4ZeNjhtnzg" name="EvaluationType" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K944U1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_JEphoL9EEd-TL8tpOyViyA"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_K-8BMlodEeCE4ZeNjhtnzg" name="EvaluationMethod" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K-8BM1odEeCE4ZeNjhtnzg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ypgcML9BEd-TL8tpOyViyA"/>

+              </eClassifiers>

+            </contents>

+            <contents xmi:type="ecore:EPackage" xmi:id="_8Owg4DW-EeCuQp9j3DmccQ" name="Analysis" nsURI="http://CHESS.Dependability.StateBased/schemas/Analysis/_8OUcADW-EeCuQp9j3DmccQ/9" nsPrefix="Analysis">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8R5UcDW-EeCuQp9j3DmccQ" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UcTW-EeCuQp9j3DmccQ" key="Version" value="0.1.9"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UcjW-EeCuQp9j3DmccQ" key="Comment" value="Changed DependabilityAnalsys stereotype name in StateBasedAnalysis"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UczW-EeCuQp9j3DmccQ" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UdDW-EeCuQp9j3DmccQ" key="Date" value="2011-02-11"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8R5UdTW-EeCuQp9j3DmccQ" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8Owg4TW-EeCuQp9j3DmccQ" name="StateBasedAnalysis">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8Owg4jW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_aqUxIL8_Ed-TL8tpOyViyA"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//GQAM/GaAnalysisContext"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8PNM0DW-EeCuQp9j3DmccQ" name="measure" ordered="false" lowerBound="1" eType="_8PNM0jW-EeCuQp9j3DmccQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8Pp4wDW-EeCuQp9j3DmccQ" name="type" ordered="false" lowerBound="1" eType="_8Pp4wjW-EeCuQp9j3DmccQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8QQVsDW-EeCuQp9j3DmccQ" name="evalMethod" ordered="false" lowerBound="1" eType="_8QQVsjW-EeCuQp9j3DmccQ"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8OwhVzW-EeCuQp9j3DmccQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhWDW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8OwhWTW-EeCuQp9j3DmccQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhWjW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhWzW-EeCuQp9j3DmccQ" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhXDW-EeCuQp9j3DmccQ" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhXTW-EeCuQp9j3DmccQ" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhXjW-EeCuQp9j3DmccQ" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8OwhXzW-EeCuQp9j3DmccQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhYDW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhYTW-EeCuQp9j3DmccQ" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhYjW-EeCuQp9j3DmccQ" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhYzW-EeCuQp9j3DmccQ" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhZDW-EeCuQp9j3DmccQ" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhZTW-EeCuQp9j3DmccQ" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhZjW-EeCuQp9j3DmccQ" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhZzW-EeCuQp9j3DmccQ" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhaDW-EeCuQp9j3DmccQ" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhaTW-EeCuQp9j3DmccQ" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8OwhajW-EeCuQp9j3DmccQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhazW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhbDW-EeCuQp9j3DmccQ" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhbTW-EeCuQp9j3DmccQ" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8OwhbjW-EeCuQp9j3DmccQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhbzW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8OwhcDW-EeCuQp9j3DmccQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhcTW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8OwhcjW-EeCuQp9j3DmccQ" name="CHESS_Dependability_StateBased_StateBasedDataTypes_ConfidenceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8OwhczW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_K_w1YL9CEd-TL8tpOyViyA"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhdDW-EeCuQp9j3DmccQ" name="relative"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8OwhdTW-EeCuQp9j3DmccQ" name="absolute" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8PNM0jW-EeCuQp9j3DmccQ" name="DependabilityMeasure" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8PNM0zW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gg-JgL9BEd-TL8tpOyViyA"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8Pp4wjW-EeCuQp9j3DmccQ" name="EvaluationType" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8Pp4wzW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_JEphoL9EEd-TL8tpOyViyA"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8QQVsjW-EeCuQp9j3DmccQ" name="EvaluationMethod" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8QQVszW-EeCuQp9j3DmccQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ypgcML9BEd-TL8tpOyViyA"/>

+              </eClassifiers>

+            </contents>

+            <contents xmi:type="ecore:EPackage" xmi:id="_RzHhYMe6Ed-7etIj5eTw0Q" name="Analysis" nsURI="http://CHESS.DependabilitySecurity.StateBased/schemas/Analysis/_RW9J0Me6Ed-7etIj5eTw0Q/8" nsPrefix="Analysis">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W27ZgMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27Zgce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27Zgse6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27Zg8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27ZhMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W27Zhce6Ed-7etIj5eTw0Q" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_RzHhYce6Ed-7etIj5eTw0Q" name="DependabilityAnalysis">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHhYse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_aqUxIL8_Ed-TL8tpOyViyA"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_329vLZi4Ed-m0Oaexd_lJA"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WrT_YMe6Ed-7etIj5eTw0Q" name="measure" ordered="false" lowerBound="1" eType="_WrT_Yse6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WtslAMe6Ed-7etIj5eTw0Q" name="type" ordered="false" lowerBound="1" eType="_WtslAse6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WwFKoMe6Ed-7etIj5eTw0Q" name="evalMethod" ordered="false" lowerBound="1" eType="_WwFKose6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHh3Me6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh3ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHh3se6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh38e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh4Me6Ed-7etIj5eTw0Q" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh4ce6Ed-7etIj5eTw0Q" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh4se6Ed-7etIj5eTw0Q" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh48e6Ed-7etIj5eTw0Q" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHh5Me6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh5ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh5se6Ed-7etIj5eTw0Q" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh58e6Ed-7etIj5eTw0Q" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh6Me6Ed-7etIj5eTw0Q" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh6ce6Ed-7etIj5eTw0Q" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh6se6Ed-7etIj5eTw0Q" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh68e6Ed-7etIj5eTw0Q" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh7Me6Ed-7etIj5eTw0Q" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh7ce6Ed-7etIj5eTw0Q" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh7se6Ed-7etIj5eTw0Q" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHh78e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh8Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh8ce6Ed-7etIj5eTw0Q" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHh8se6Ed-7etIj5eTw0Q" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHh88e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh9Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHh9ce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh9se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHh98e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHh-Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHiP8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiQMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiQce6Ed-7etIj5eTw0Q" name="s"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiQse6Ed-7etIj5eTw0Q" name="tick" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiQ8e6Ed-7etIj5eTw0Q" name="ms" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiRMe6Ed-7etIj5eTw0Q" name="us" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiRce6Ed-7etIj5eTw0Q" name="min" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiRse6Ed-7etIj5eTw0Q" name="hrs" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiR8e6Ed-7etIj5eTw0Q" name="day" value="6"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHiT8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiUMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiUce6Ed-7etIj5eTw0Q" name="bit"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiUse6Ed-7etIj5eTw0Q" name="Byte" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiU8e6Ed-7etIj5eTw0Q" name="KB" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiVMe6Ed-7etIj5eTw0Q" name="MB" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiVce6Ed-7etIj5eTw0Q" name="GB" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHiXce6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_PowerUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiXse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ijhHUA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiX8e6Ed-7etIj5eTw0Q" name="W"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiYMe6Ed-7etIj5eTw0Q" name="mW" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHiYce6Ed-7etIj5eTw0Q" name="KW" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzHiace6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_EnergyUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiase6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UaKKgA4zEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHia8e6Ed-7etIj5eTw0Q" name="J"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHibMe6Ed-7etIj5eTw0Q" name="KJ" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHibce6Ed-7etIj5eTw0Q" name="Wh" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHibse6Ed-7etIj5eTw0Q" name="KWh" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzHib8e6Ed-7etIj5eTw0Q" name="mWh" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_RzHih8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzHiiMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRSY8e6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeStandardKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRSZMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_MDyyoA-KEdyNj8xzjk-DoA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSZce6Ed-7etIj5eTw0Q" name="TAI"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSZse6Ed-7etIj5eTw0Q" name="UT0" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSZ8e6Ed-7etIj5eTw0Q" name="UT1" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSaMe6Ed-7etIj5eTw0Q" name="UTC" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSace6Ed-7etIj5eTw0Q" name="Local" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSase6Ed-7etIj5eTw0Q" name="TT" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSa8e6Ed-7etIj5eTw0Q" name="TBD" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSbMe6Ed-7etIj5eTw0Q" name="TCG" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSbce6Ed-7etIj5eTw0Q" name="TCB" value="8"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSbse6Ed-7etIj5eTw0Q" name="Sidereal" value="9"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSb8e6Ed-7etIj5eTw0Q" name="GPS" value="10"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRShse6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeNatureKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRSh8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_WAvb0A75EdyML4mHwjNDrw"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSiMe6Ed-7etIj5eTw0Q" name="discrete"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRSice6Ed-7etIj5eTw0Q" name="dense" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRS8se6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRS88e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS9Me6Ed-7etIj5eTw0Q" name="Hz"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS9ce6Ed-7etIj5eTw0Q" name="KHz" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS9se6Ed-7etIj5eTw0Q" name="MHz" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS98e6Ed-7etIj5eTw0Q" name="GHz" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRS-Me6Ed-7etIj5eTw0Q" name="rpm" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRTWMe6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_PeriodicServerKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRTWce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UP5HEBFbEdyUJeMeN__D-A"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTWse6Ed-7etIj5eTw0Q" name="Sporadic"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTW8e6Ed-7etIj5eTw0Q" name="Deferrable" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTXMe6Ed-7etIj5eTw0Q" name="Undef" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTXce6Ed-7etIj5eTw0Q" name="Other" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRTcce6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_SchedPolicyKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRTcse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_4GfMYBFaEdyUJeMeN__D-A"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTc8e6Ed-7etIj5eTw0Q" name="EarliestDeadlineFirst"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTdMe6Ed-7etIj5eTw0Q" name="FIFO" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTdce6Ed-7etIj5eTw0Q" name="FixedPriority" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTdse6Ed-7etIj5eTw0Q" name="LeastLaxityFirst" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTd8e6Ed-7etIj5eTw0Q" name="RoundRobin" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTeMe6Ed-7etIj5eTw0Q" name="TimeTableDriven" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTece6Ed-7etIj5eTw0Q" name="Undef" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTese6Ed-7etIj5eTw0Q" name="Other" value="7"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRTkMe6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_ProtectProtocolKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRTkce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HkE7wBFbEdyUJeMeN__D-A"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTkse6Ed-7etIj5eTw0Q" name="FIFO"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTk8e6Ed-7etIj5eTw0Q" name="NoPreemption" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTlMe6Ed-7etIj5eTw0Q" name="PriorityCeiling" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTlce6Ed-7etIj5eTw0Q" name="PriorityInheritance" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTlse6Ed-7etIj5eTw0Q" name="StackBased" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTl8e6Ed-7etIj5eTw0Q" name="Undef" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTmMe6Ed-7etIj5eTw0Q" name="Other" value="6"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRTzMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_NFPs_ConstraintKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRTzce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ZCtm0A4vEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTzse6Ed-7etIj5eTw0Q" name="required"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRTz8e6Ed-7etIj5eTw0Q" name="offered" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRT0Me6Ed-7etIj5eTw0Q" name="contract" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRT0ce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_AnalysisModel_GQAM_LaxityKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRT0se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Gs3fEBKcEdymP89M8JXkzA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRT08e6Ed-7etIj5eTw0Q" name="hard"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRT1Me6Ed-7etIj5eTw0Q" name="soft" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRT1ce6Ed-7etIj5eTw0Q" name="other" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RzRUD8e6Ed-7etIj5eTw0Q" name="CHESSML_DependabilitySecurity_StateBased_StateBasedDataTypes_ConfidenceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RzRUEMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_K_w1YL9CEd-TL8tpOyViyA"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRUEce6Ed-7etIj5eTw0Q" name="relative"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_RzRUEse6Ed-7etIj5eTw0Q" name="absolute" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WrT_Yse6Ed-7etIj5eTw0Q" name="DependabilityMeasure" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WrT_Y8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gg-JgL9BEd-TL8tpOyViyA"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WtslAse6Ed-7etIj5eTw0Q" name="EvaluationType" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WtslA8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_JEphoL9EEd-TL8tpOyViyA"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WwFKose6Ed-7etIj5eTw0Q" name="EvaluationMethod" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WwFKo8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ypgcML9BEd-TL8tpOyViyA"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WyKOQMe6Ed-7etIj5eTw0Q" name="NFP_String" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WyKOQce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+          </eAnnotations>

+          <ownedComment xmi:type="uml:Comment" xmi:id="_e1DTgFIbEembUrnKQet3ag" annotatedElement="_wPoGQFIWEembUrnKQet3ag">

+            <body>tentative</body>

+          </ownedComment>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_DHTZMDbQEeW5DJdhCjCHFw" alias="Class">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </elementImport>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_aqUxIL8_Ed-TL8tpOyViyA" name="StateBasedAnalysis">

+            <generalization xmi:type="uml:Generalization" xmi:id="_KG_20L9BEd-TL8tpOyViyA">

+              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>

+            </generalization>

+            <generalization xmi:type="uml:Generalization" xmi:id="_do2VYDQ7EeC0ueejuetpgA">

+              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>

+            </generalization>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_JFdvAMAKEd-Dn5_MBIs5Vw" name="measure" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LDs9UMAKEd-Dn5_MBIs5Vw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LD2HQMAKEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_LD2HQcAKEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_MY8R8MAKEd-Dn5_MBIs5Vw" name="measureEvaluationResult" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NxeLIMAKEd-Dn5_MBIs5Vw"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Nxn8IMAKEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_NxxGEMAKEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_PHKywMAKEd-Dn5_MBIs5Vw" name="evalMethod" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RGJA4MAKEd-Dn5_MBIs5Vw"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RGJA4cAKEd-Dn5_MBIs5Vw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_RGSx4MAKEd-Dn5_MBIs5Vw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_goeK4FocEeCE4ZeNjhtnzg" name="targetFailureMode" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lK6bUFocEeCE4ZeNjhtnzg"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lLNWQFocEeCE4ZeNjhtnzg" value="*"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_lLWgMFocEeCE4ZeNjhtnzg">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_psJx4FocEeCE4ZeNjhtnzg" name="targetDepComponent" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s4cuwFocEeCE4ZeNjhtnzg"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s4vpsFocEeCE4ZeNjhtnzg" value="*"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_s45asFocEeCE4ZeNjhtnzg">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_wQ_agDbPEeW5DJdhCjCHFw" name="targetPort" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wQ_agTbPEeW5DJdhCjCHFw"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wQ_agjbPEeW5DJdhCjCHFw" value="*"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_wQ_agzbPEeW5DJdhCjCHFw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_mFmvIDbQEeW5DJdhCjCHFw" name="initialConditions" type="_-zurMDbPEeW5DJdhCjCHFw" association="_mFokUDbQEeW5DJdhCjCHFw">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mFmvITbQEeW5DJdhCjCHFw"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mFmvIjbQEeW5DJdhCjCHFw" value="*"/>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_-zurMDbPEeW5DJdhCjCHFw" name="SBAInitialConditions">

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_DxHyQDbQEeW5DJdhCjCHFw" name="base_Class" association="_DxJAYDbQEeW5DJdhCjCHFw">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_Q9-1IDbQEeW5DJdhCjCHFw" name="targetInstance" visibility="public">

+              <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Q9-1ITbQEeW5DJdhCjCHFw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Q9-1IjbQEeW5DJdhCjCHFw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_Q9-1IzbQEeW5DJdhCjCHFw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_UDU1cDbQEeW5DJdhCjCHFw" name="setup" visibility="public">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UDU1cTbQEeW5DJdhCjCHFw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UDU1cjbQEeW5DJdhCjCHFw" value="1"/>

+              <defaultValue xmi:type="uml:LiteralString" xmi:id="_UDU1czbQEeW5DJdhCjCHFw">

+                <value xsi:nil="true"/>

+              </defaultValue>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Extension" xmi:id="_DxJAYDbQEeW5DJdhCjCHFw" name="E_SBAInitialConditions_Class1" memberEnd="_DxJAYTbQEeW5DJdhCjCHFw _DxHyQDbQEeW5DJdhCjCHFw">

+            <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DxJAYTbQEeW5DJdhCjCHFw" name="extension_SBAInitialConditions" type="_-zurMDbPEeW5DJdhCjCHFw" aggregation="composite" association="_DxJAYDbQEeW5DJdhCjCHFw"/>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Association" xmi:id="_mFokUDbQEeW5DJdhCjCHFw" name="stateBasedAnalysis_sBAInitialConditions_1" memberEnd="_mFokUTbQEeW5DJdhCjCHFw _mFmvIDbQEeW5DJdhCjCHFw">

+            <ownedEnd xmi:type="uml:Property" xmi:id="_mFokUTbQEeW5DJdhCjCHFw" name="stateBasedAnalysis" type="_aqUxIL8_Ed-TL8tpOyViyA" association="_mFokUDbQEeW5DJdhCjCHFw">

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mFokUjbQEeW5DJdhCjCHFw" value="1"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mFokUzbQEeW5DJdhCjCHFw" value="1"/>

+            </ownedEnd>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_wPoGQFIWEembUrnKQet3ag" name="SANAnalysis">

+            <generalization xmi:type="uml:Generalization" xmi:id="_Utp0oFI6EemQ2drw1KcZ_Q">

+              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>

+            </generalization>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_YGo6wFIbEembUrnKQet3ag" name="condition">

+              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            </ownedAttribute>

+          </packagedElement>

+        </packagedElement>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Profile" xmi:id="_uNKOgDQ2EeC0ueejuetpgA" name="DependableComponent" URI="http://CHESS/Dependability/DependableComponent" metaclassReference="_1TXcMDQ2EeC0ueejuetpgA _vslkcDQ3EeC0ueejuetpgA _qUQRADQ7EeC0ueejuetpgA _lh57ADgaEeCE2sZUGxu35w _t9O3gEDsEeC5SOtkEXPa-w _Bxaf0E7nEeCiWfCHUearZQ _TBHGwM1iEeSrt5YehnIlig _-DpY4M1iEeSrt5YehnIlig _apYFYM1yEeSrt5YehnIlig _GZBTgDHsEeWt8Ovv2G_EJg">

+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchsDRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+          <contents xmi:type="ecore:EPackage" xmi:id="_291WAVquEeCgwNmo13tekQ" name="DependableComponent" nsURI="http://CHESS/Dependability/DependableComponent" nsPrefix="DependableComponent">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3BtJYFquEeCgwNmo13tekQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJYVquEeCgwNmo13tekQ" key="Version" value="0.0.9"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJYlquEeCgwNmo13tekQ" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJY1quEeCgwNmo13tekQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJZFquEeCgwNmo13tekQ" key="Date" value="2011-03-30"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3BtJZVquEeCgwNmo13tekQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_291WAlquEeCgwNmo13tekQ" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WA1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WCFquEeCgwNmo13tekQ" name="base_Abstraction" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WClquEeCgwNmo13tekQ" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WDFquEeCgwNmo13tekQ" name="base_Connector" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WDlquEeCgwNmo13tekQ" name="base_InstanceSpecification" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_291WEFquEeCgwNmo13tekQ" name="tf" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WElquEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_29-f8FquEeCgwNmo13tekQ" name="prob" ordered="false" lowerBound="1" eType="_29-f8lquEeCgwNmo13tekQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2-bL4FquEeCgwNmo13tekQ" name="propDelay" ordered="false" lowerBound="1" eType="_2-bL4lquEeCgwNmo13tekQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_291WZ1quEeCgwNmo13tekQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WaFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_291WaVquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WalquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wa1quEeCgwNmo13tekQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WbFquEeCgwNmo13tekQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WbVquEeCgwNmo13tekQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WblquEeCgwNmo13tekQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_291Wb1quEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WcFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WcVquEeCgwNmo13tekQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WclquEeCgwNmo13tekQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wc1quEeCgwNmo13tekQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WdFquEeCgwNmo13tekQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WdVquEeCgwNmo13tekQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WdlquEeCgwNmo13tekQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wd1quEeCgwNmo13tekQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WeFquEeCgwNmo13tekQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WeVquEeCgwNmo13tekQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_291WelquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291We1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WfFquEeCgwNmo13tekQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WfVquEeCgwNmo13tekQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_291WflquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291Wf1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_291WgFquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WgVquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_291Wj1quEeCgwNmo13tekQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WkFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WkVquEeCgwNmo13tekQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WklquEeCgwNmo13tekQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wk1quEeCgwNmo13tekQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WlFquEeCgwNmo13tekQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WlVquEeCgwNmo13tekQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291WllquEeCgwNmo13tekQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_291Wl1quEeCgwNmo13tekQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_291WmFquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291WmVquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_291WmlquEeCgwNmo13tekQ" name="DependableComponent">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_291Wm1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WnFquEeCgwNmo13tekQ" name="base_Component" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WnlquEeCgwNmo13tekQ" name="errorModel" ordered="false" eType="_G6-koVquEeCgwNmo13tekQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_291WoFquEeCgwNmo13tekQ" name="base_Property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_29-f8lquEeCgwNmo13tekQ" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_29-f81quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2-bL4lquEeCgwNmo13tekQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2-bL41quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_LgJ2AE7nEeCiWfCHUearZQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_Lf27EE7nEeCiWfCHUearZQ/6" nsPrefix="DependableComponent">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Lj4fcE7nEeCiWfCHUearZQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fcU7nEeCiWfCHUearZQ" key="Version" value="0.0.7"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fck7nEeCiWfCHUearZQ" key="Comment" value="added extension from DependableComponent::Propagation to InstanceSpecification"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fc07nEeCiWfCHUearZQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fdE7nEeCiWfCHUearZQ" key="Date" value="2011-03-15"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lj4fdU7nEeCiWfCHUearZQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_LgJ2AU7nEeCiWfCHUearZQ" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2Ak7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2B07nEeCiWfCHUearZQ" name="base_Abstraction" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2CU7nEeCiWfCHUearZQ" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2C07nEeCiWfCHUearZQ" name="base_Connector" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2DU7nEeCiWfCHUearZQ" name="base_InstanceSpecification" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_LgTnAE7nEeCiWfCHUearZQ" name="prob" ordered="false" lowerBound="1" eType="_LgTnAk7nEeCiWfCHUearZQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Lg5c4E7nEeCiWfCHUearZQ" name="propDelay" ordered="false" lowerBound="1" eType="_Lg5c4k7nEeCiWfCHUearZQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgJ2Yk7nEeCiWfCHUearZQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2Y07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_LgJ2ZE7nEeCiWfCHUearZQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2ZU7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2Zk7nEeCiWfCHUearZQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2Z07nEeCiWfCHUearZQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2aE7nEeCiWfCHUearZQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2aU7nEeCiWfCHUearZQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_LgJ2ak7nEeCiWfCHUearZQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2a07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2bE7nEeCiWfCHUearZQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2bU7nEeCiWfCHUearZQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2bk7nEeCiWfCHUearZQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2b07nEeCiWfCHUearZQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2cE7nEeCiWfCHUearZQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2cU7nEeCiWfCHUearZQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2ck7nEeCiWfCHUearZQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2c07nEeCiWfCHUearZQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2dE7nEeCiWfCHUearZQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_LgJ2dU7nEeCiWfCHUearZQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2dk7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2d07nEeCiWfCHUearZQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2eE7nEeCiWfCHUearZQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgJ2eU7nEeCiWfCHUearZQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2ek7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgJ2e07nEeCiWfCHUearZQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2fE7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_LgJ2ik7nEeCiWfCHUearZQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2i07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2jE7nEeCiWfCHUearZQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2jU7nEeCiWfCHUearZQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2jk7nEeCiWfCHUearZQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2j07nEeCiWfCHUearZQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2kE7nEeCiWfCHUearZQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2kU7nEeCiWfCHUearZQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_LgJ2kk7nEeCiWfCHUearZQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgJ2k07nEeCiWfCHUearZQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2lE7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_LgJ2lU7nEeCiWfCHUearZQ" name="DependableComponent">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgJ2lk7nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2l07nEeCiWfCHUearZQ" name="base_Component" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2mU7nEeCiWfCHUearZQ" name="errorModel" ordered="false" eType="_2F5QYUQQEeCQRfAVtSc0sw"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_LgJ2m07nEeCiWfCHUearZQ" name="base_Property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_LgTnAk7nEeCiWfCHUearZQ" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LgTnA07nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Lg5c4k7nEeCiWfCHUearZQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Lg5c407nEeCiWfCHUearZQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_i4UhwUMfEeCCw-qiU6Z1sQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_i4UhwEMfEeCCw-qiU6Z1sQ/5" nsPrefix="DependableComponent">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i7TkUEMfEeCCw-qiU6Z1sQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkUUMfEeCCw-qiU6Z1sQ" key="Version" value="0.0.6"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkUkMfEeCCw-qiU6Z1sQ" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkU0MfEeCCw-qiU6Z1sQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkVEMfEeCCw-qiU6Z1sQ" key="Date" value="2011-02-28"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i7TkVUMfEeCCw-qiU6Z1sQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_i4UhwkMfEeCCw-qiU6Z1sQ" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4Uhw0MfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4UhyEMfEeCCw-qiU6Z1sQ" name="base_Abstraction" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4UhykMfEeCCw-qiU6Z1sQ" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4UhzEMfEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i4eS6kMfEeCCw-qiU6Z1sQ" name="prob" ordered="false" lowerBound="1" eType="_i4eS7EMfEeCCw-qiU6Z1sQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i5EIoEMfEeCCw-qiU6Z1sQ" name="propDelay" ordered="false" lowerBound="1" eType="_i5EIokMfEeCCw-qiU6Z1sQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4UiIUMfEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4UiIkMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_i4UiI0MfEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4UiJEMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiJUMfEeCCw-qiU6Z1sQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiJkMfEeCCw-qiU6Z1sQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiJ0MfEeCCw-qiU6Z1sQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiKEMfEeCCw-qiU6Z1sQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_i4UiKUMfEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4UiKkMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiK0MfEeCCw-qiU6Z1sQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiLEMfEeCCw-qiU6Z1sQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiLUMfEeCCw-qiU6Z1sQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiLkMfEeCCw-qiU6Z1sQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiL0MfEeCCw-qiU6Z1sQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiMEMfEeCCw-qiU6Z1sQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiMUMfEeCCw-qiU6Z1sQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiMkMfEeCCw-qiU6Z1sQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4UiM0MfEeCCw-qiU6Z1sQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_i4UiNEMfEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4UiNUMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eSwEMfEeCCw-qiU6Z1sQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eSwUMfEeCCw-qiU6Z1sQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4eSwkMfEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eSw0MfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4eSxEMfEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eSxUMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_i4eS00MfEeCCw-qiU6Z1sQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eS1EMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS1UMfEeCCw-qiU6Z1sQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS1kMfEeCCw-qiU6Z1sQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS10MfEeCCw-qiU6Z1sQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS2EMfEeCCw-qiU6Z1sQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS2UMfEeCCw-qiU6Z1sQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS2kMfEeCCw-qiU6Z1sQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_i4eS20MfEeCCw-qiU6Z1sQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4eS3EMfEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eS3UMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_i4eS3kMfEeCCw-qiU6Z1sQ" name="DependableComponent">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eS30MfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4eS4EMfEeCCw-qiU6Z1sQ" name="base_Component" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4eS4kMfEeCCw-qiU6Z1sQ" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i4eS5EMfEeCCw-qiU6Z1sQ" name="base_Property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i4eS7EMfEeCCw-qiU6Z1sQ" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i4eS7UMfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_i5EIokMfEeCCw-qiU6Z1sQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i5EIo0MfEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_CUjG0UMaEeCCw-qiU6Z1sQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_CUjG0EMaEeCCw-qiU6Z1sQ/4" nsPrefix="DependableComponent">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CXYYYEMaEeCCw-qiU6Z1sQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYYUMaEeCCw-qiU6Z1sQ" key="Version" value="0.0.5"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYYkMaEeCCw-qiU6Z1sQ" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYY0MaEeCCw-qiU6Z1sQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYZEMaEeCCw-qiU6Z1sQ" key="Date" value="2011-02-28"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXYYZUMaEeCCw-qiU6Z1sQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CUjG0kMaEeCCw-qiU6Z1sQ" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUjG00MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUjG1EMaEeCCw-qiU6Z1sQ" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_CUjG1UMaEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUjG1kMaEeCCw-qiU6Z1sQ" source="redefines" references="_CUjG3EMaEeCCw-qiU6Z1sQ"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+                </contents>

+              </eAnnotations>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUjG3EMaEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs30EMaEeCCw-qiU6Z1sQ" name="base_Abstraction" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs30kMaEeCCw-qiU6Z1sQ" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CUs4ZkMaEeCCw-qiU6Z1sQ" name="prob" ordered="false" lowerBound="1" eType="_CUs4aEMaEeCCw-qiU6Z1sQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CVI8sEMaEeCCw-qiU6Z1sQ" name="propDelay" ordered="false" lowerBound="1" eType="_CVI8skMaEeCCw-qiU6Z1sQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4J0MaEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4KEMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CUs4KUMaEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4KkMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4K0MaEeCCw-qiU6Z1sQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4LEMaEeCCw-qiU6Z1sQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4LUMaEeCCw-qiU6Z1sQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4LkMaEeCCw-qiU6Z1sQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CUs4L0MaEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4MEMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4MUMaEeCCw-qiU6Z1sQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4MkMaEeCCw-qiU6Z1sQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4M0MaEeCCw-qiU6Z1sQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4NEMaEeCCw-qiU6Z1sQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4NUMaEeCCw-qiU6Z1sQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4NkMaEeCCw-qiU6Z1sQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4N0MaEeCCw-qiU6Z1sQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4OEMaEeCCw-qiU6Z1sQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4OUMaEeCCw-qiU6Z1sQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CUs4OkMaEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4O0MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4PEMaEeCCw-qiU6Z1sQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4PUMaEeCCw-qiU6Z1sQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4PkMaEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4P0MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4QEMaEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4QUMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CUs4T0MaEeCCw-qiU6Z1sQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4UEMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4UUMaEeCCw-qiU6Z1sQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4UkMaEeCCw-qiU6Z1sQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4U0MaEeCCw-qiU6Z1sQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4VEMaEeCCw-qiU6Z1sQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4VUMaEeCCw-qiU6Z1sQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4VkMaEeCCw-qiU6Z1sQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CUs4V0MaEeCCw-qiU6Z1sQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4WEMaEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4WUMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CUs4WkMaEeCCw-qiU6Z1sQ" name="DependableComponent">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4W0MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs4XEMaEeCCw-qiU6Z1sQ" name="base_Component" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs4XkMaEeCCw-qiU6Z1sQ" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CUs4YEMaEeCCw-qiU6Z1sQ" name="base_Property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUs4aEMaEeCCw-qiU6Z1sQ" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUs4aUMaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CVI8skMaEeCCw-qiU6Z1sQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CVI8s0MaEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_JikCIEMZEeCCw-qiU6Z1sQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_JiQgIEMZEeCCw-qiU6Z1sQ/3" nsPrefix="DependableComponent">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JlidoEMZEeCCw-qiU6Z1sQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JlidoUMZEeCCw-qiU6Z1sQ" key="Version" value="0.0.4"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JlidokMZEeCCw-qiU6Z1sQ" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jlido0MZEeCCw-qiU6Z1sQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JlidpEMZEeCCw-qiU6Z1sQ" key="Date" value="2011-02-28"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JlidpUMZEeCCw-qiU6Z1sQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_JikCIUMZEeCCw-qiU6Z1sQ" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCIkMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCI0MZEeCCw-qiU6Z1sQ" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_JikCJEMZEeCCw-qiU6Z1sQ" name="base_Abstraction" ordered="false" unique="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCJUMZEeCCw-qiU6Z1sQ" source="redefines">

+                    <references xmi:type="ecore:EReference" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate/base_Abstraction"/>

+                  </eAnnotations>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>

+                </contents>

+                <contents xmi:type="ecore:EReference" xmi:id="_JikCJ0MZEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCKEMZEeCCw-qiU6Z1sQ" source="redefines" references="_JikCLkMZEeCCw-qiU6Z1sQ"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+                </contents>

+              </eAnnotations>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCLkMZEeCCw-qiU6Z1sQ" name="base_Connector" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCMEMZEeCCw-qiU6Z1sQ" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Ji29EUMZEeCCw-qiU6Z1sQ" name="prob" ordered="false" lowerBound="1" eType="_Ji29E0MZEeCCw-qiU6Z1sQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JjTpAEMZEeCCw-qiU6Z1sQ" name="propDelay" ordered="false" lowerBound="1" eType="_JjTpAkMZEeCCw-qiU6Z1sQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JikChkMZEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCh0MZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JikCiEMZEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCiUMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCikMZEeCCw-qiU6Z1sQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCi0MZEeCCw-qiU6Z1sQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCjEMZEeCCw-qiU6Z1sQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCjUMZEeCCw-qiU6Z1sQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JikCjkMZEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCj0MZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCkEMZEeCCw-qiU6Z1sQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCkUMZEeCCw-qiU6Z1sQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCkkMZEeCCw-qiU6Z1sQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCk0MZEeCCw-qiU6Z1sQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikClEMZEeCCw-qiU6Z1sQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikClUMZEeCCw-qiU6Z1sQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikClkMZEeCCw-qiU6Z1sQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCl0MZEeCCw-qiU6Z1sQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCmEMZEeCCw-qiU6Z1sQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JikCmUMZEeCCw-qiU6Z1sQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCmkMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCm0MZEeCCw-qiU6Z1sQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCnEMZEeCCw-qiU6Z1sQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JikCnUMZEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCnkMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JikCn0MZEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCoEMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JikCrkMZEeCCw-qiU6Z1sQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCr0MZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCsEMZEeCCw-qiU6Z1sQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCsUMZEeCCw-qiU6Z1sQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCskMZEeCCw-qiU6Z1sQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCs0MZEeCCw-qiU6Z1sQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCtEMZEeCCw-qiU6Z1sQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCtUMZEeCCw-qiU6Z1sQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_JikCtkMZEeCCw-qiU6Z1sQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JikCt0MZEeCCw-qiU6Z1sQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCuEMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_JikCuUMZEeCCw-qiU6Z1sQ" name="DependableComponent">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JikCukMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCu0MZEeCCw-qiU6Z1sQ" name="base_Component" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCvUMZEeCCw-qiU6Z1sQ" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JikCv0MZEeCCw-qiU6Z1sQ" name="base_Property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Ji29E0MZEeCCw-qiU6Z1sQ" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ji29FEMZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_JjTpAkMZEeCCw-qiU6Z1sQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JjTpA0MZEeCCw-qiU6Z1sQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_yiDGgEDsEeC5SOtkEXPa-w" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_yh58kEDsEeC5SOtkEXPa-w/2" nsPrefix="DependableComponent">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yk4YEEDsEeC5SOtkEXPa-w" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YEUDsEeC5SOtkEXPa-w" key="Version" value="0.0.3"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YEkDsEeC5SOtkEXPa-w" key="Comment" value="added extension from Propagation to Comment"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YE0DsEeC5SOtkEXPa-w" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YFEDsEeC5SOtkEXPa-w" key="Date" value="2011-02-25"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yk4YFUDsEeC5SOtkEXPa-w" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_yiDGgUDsEeC5SOtkEXPa-w" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDGgkDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDGg0DsEeC5SOtkEXPa-w" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_yiDGhEDsEeC5SOtkEXPa-w" name="base_Abstraction" ordered="false" unique="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDGhUDsEeC5SOtkEXPa-w" source="redefines">

+                    <references xmi:type="ecore:EReference" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate/base_Abstraction"/>

+                  </eAnnotations>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>

+                </contents>

+                <contents xmi:type="ecore:EReference" xmi:id="_yiDGh0DsEeC5SOtkEXPa-w" name="base_Connector" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDGiEDsEeC5SOtkEXPa-w" source="redefines" references="_yiDGjkDsEeC5SOtkEXPa-w"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+                </contents>

+              </eAnnotations>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDGjkDsEeC5SOtkEXPa-w" name="base_Connector" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDGkEDsEeC5SOtkEXPa-w" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_yiWogEDsEeC5SOtkEXPa-w" name="prob" ordered="false" lowerBound="1" eType="_yiWogkDsEeC5SOtkEXPa-w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_yizUcEDsEeC5SOtkEXPa-w" name="propDelay" ordered="false" lowerBound="1" eType="_yi8eYEDsEeC5SOtkEXPa-w"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiDG5kDsEeC5SOtkEXPa-w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG50DsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_yiDG6EDsEeC5SOtkEXPa-w" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG6UDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG6kDsEeC5SOtkEXPa-w" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG60DsEeC5SOtkEXPa-w" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG7EDsEeC5SOtkEXPa-w" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG7UDsEeC5SOtkEXPa-w" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_yiDG7kDsEeC5SOtkEXPa-w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG70DsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG8EDsEeC5SOtkEXPa-w" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG8UDsEeC5SOtkEXPa-w" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG8kDsEeC5SOtkEXPa-w" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG80DsEeC5SOtkEXPa-w" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG9EDsEeC5SOtkEXPa-w" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG9UDsEeC5SOtkEXPa-w" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG9kDsEeC5SOtkEXPa-w" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG90DsEeC5SOtkEXPa-w" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG-EDsEeC5SOtkEXPa-w" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_yiDG-UDsEeC5SOtkEXPa-w" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG-kDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG-0DsEeC5SOtkEXPa-w" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDG_EDsEeC5SOtkEXPa-w" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiDG_UDsEeC5SOtkEXPa-w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDG_kDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiDG_0DsEeC5SOtkEXPa-w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDHAEDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_yiDHDkDsEeC5SOtkEXPa-w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDHD0DsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHEEDsEeC5SOtkEXPa-w" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHEUDsEeC5SOtkEXPa-w" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHEkDsEeC5SOtkEXPa-w" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHE0DsEeC5SOtkEXPa-w" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHFEDsEeC5SOtkEXPa-w" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHFUDsEeC5SOtkEXPa-w" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_yiDHFkDsEeC5SOtkEXPa-w" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiDHF0DsEeC5SOtkEXPa-w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDHGEDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_yiDHGUDsEeC5SOtkEXPa-w" name="DependableComponent">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiDHGkDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDHG0DsEeC5SOtkEXPa-w" name="base_Component" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDHHUDsEeC5SOtkEXPa-w" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_yiDHH0DsEeC5SOtkEXPa-w" name="base_Property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yiWogkDsEeC5SOtkEXPa-w" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yiWog0DsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_yi8eYEDsEeC5SOtkEXPa-w" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yi8eYUDsEeC5SOtkEXPa-w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_vTM18DgaEeCE2sZUGxu35w" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/_vTDE8DgaEeCE2sZUGxu35w/1" nsPrefix="DependableComponent">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vVIvoDgaEeCE2sZUGxu35w" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvoTgaEeCE2sZUGxu35w" key="Version" value="0.0.2"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvojgaEeCE2sZUGxu35w" key="Comment" value="Now StateBasedComponents derive from DependableComponent"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvozgaEeCE2sZUGxu35w" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvpDgaEeCE2sZUGxu35w" key="Date" value="2011-02-14"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vVIvpTgaEeCE2sZUGxu35w" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_vTM18TgaEeCE2sZUGxu35w" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM18jgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM18zgaEeCE2sZUGxu35w" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="_vTM19DgaEeCE2sZUGxu35w" name="base_Abstraction" ordered="false" unique="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM19TgaEeCE2sZUGxu35w" source="redefines">

+                    <references xmi:type="ecore:EReference" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate/base_Abstraction"/>

+                  </eAnnotations>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>

+                </contents>

+                <contents xmi:type="ecore:EReference" xmi:id="_vTM19zgaEeCE2sZUGxu35w" name="base_Connector" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM1-DgaEeCE2sZUGxu35w" source="redefines" references="_vTM1_jgaEeCE2sZUGxu35w"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+                </contents>

+              </eAnnotations>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vTM1_jgaEeCE2sZUGxu35w" name="base_Connector" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vTfw4TgaEeCE2sZUGxu35w" name="prob" ordered="false" lowerBound="1" eType="_vTfw4zgaEeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vTyr0DgaEeCE2sZUGxu35w" name="propDelay" ordered="false" lowerBound="1" eType="_vTyr0jgaEeCE2sZUGxu35w"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTM2VDgaEeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2VTgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_vTM2VjgaEeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2VzgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2WDgaEeCE2sZUGxu35w" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2WTgaEeCE2sZUGxu35w" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2WjgaEeCE2sZUGxu35w" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2WzgaEeCE2sZUGxu35w" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_vTM2XDgaEeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2XTgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2XjgaEeCE2sZUGxu35w" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2XzgaEeCE2sZUGxu35w" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2YDgaEeCE2sZUGxu35w" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2YTgaEeCE2sZUGxu35w" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2YjgaEeCE2sZUGxu35w" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2YzgaEeCE2sZUGxu35w" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2ZDgaEeCE2sZUGxu35w" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2ZTgaEeCE2sZUGxu35w" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2ZjgaEeCE2sZUGxu35w" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_vTM2ZzgaEeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2aDgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2aTgaEeCE2sZUGxu35w" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2ajgaEeCE2sZUGxu35w" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTM2azgaEeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2bDgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTM2bTgaEeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2bjgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_vTM2fDgaEeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2fTgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2fjgaEeCE2sZUGxu35w" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2fzgaEeCE2sZUGxu35w" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2gDgaEeCE2sZUGxu35w" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2gTgaEeCE2sZUGxu35w" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2gjgaEeCE2sZUGxu35w" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2gzgaEeCE2sZUGxu35w" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_vTM2hDgaEeCE2sZUGxu35w" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTM2hTgaEeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2hjgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_vTM2hzgaEeCE2sZUGxu35w" name="DependableComponent">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTM2iDgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vTM2iTgaEeCE2sZUGxu35w" name="base_Component" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vTM2izgaEeCE2sZUGxu35w" name="errorModel" ordered="false" eType="_U0lJ8TRoEeCPrptoDUJcNQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vTM2jTgaEeCE2sZUGxu35w" name="base_Property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTfw4zgaEeCE2sZUGxu35w" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTfw5DgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_vTyr0jgaEeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTyr0zgaEeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="__BchsTRPEeCPrptoDUJcNQ" name="DependableComponent" nsURI="http://CHESS.Dependability/schemas/DependableComponent/__BSwsDRPEeCPrptoDUJcNQ/0" nsPrefix="DependableComponent">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__DFgcDRPEeCPrptoDUJcNQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgcTRPEeCPrptoDUJcNQ" key="Version" value="0.0.1"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgcjRPEeCPrptoDUJcNQ" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgczRPEeCPrptoDUJcNQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgdDRPEeCPrptoDUJcNQ" key="Date" value="2011-02-09"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__DFgdTRPEeCPrptoDUJcNQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="__BchsjRPEeCPrptoDUJcNQ" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchszRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchtDRPEeCPrptoDUJcNQ" source="duplicates">

+                <contents xmi:type="ecore:EReference" xmi:id="__BchtTRPEeCPrptoDUJcNQ" name="base_Abstraction" ordered="false" unique="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchtjRPEeCPrptoDUJcNQ" source="redefines">

+                    <references xmi:type="ecore:EReference" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate/base_Abstraction"/>

+                  </eAnnotations>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>

+                </contents>

+                <contents xmi:type="ecore:EReference" xmi:id="__BchuDRPEeCPrptoDUJcNQ" name="base_Connector" ordered="false" lowerBound="1">

+                  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BchuTRPEeCPrptoDUJcNQ" source="redefines" references="__BchvzRPEeCPrptoDUJcNQ"/>

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+                </contents>

+              </eAnnotations>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__BchvzRPEeCPrptoDUJcNQ" name="base_Connector" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__BmSsTRPEeCPrptoDUJcNQ" name="prob" ordered="false" lowerBound="1" eType="__BmSszRPEeCPrptoDUJcNQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="__B5NoDRPEeCPrptoDUJcNQ" name="propDelay" ordered="false" lowerBound="1" eType="__B5NojRPEeCPrptoDUJcNQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BciFTRPEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciFjRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="__BciFzRPEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciGDRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciGTRPEeCPrptoDUJcNQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciGjRPEeCPrptoDUJcNQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciGzRPEeCPrptoDUJcNQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciHDRPEeCPrptoDUJcNQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="__BciHTRPEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciHjRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciHzRPEeCPrptoDUJcNQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciIDRPEeCPrptoDUJcNQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciITRPEeCPrptoDUJcNQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciIjRPEeCPrptoDUJcNQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciIzRPEeCPrptoDUJcNQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciJDRPEeCPrptoDUJcNQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciJTRPEeCPrptoDUJcNQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciJjRPEeCPrptoDUJcNQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciJzRPEeCPrptoDUJcNQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="__BciKDRPEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciKTRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciKjRPEeCPrptoDUJcNQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciKzRPEeCPrptoDUJcNQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BciLDRPEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciLTRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BciLjRPEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciLzRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="__BciPTRPEeCPrptoDUJcNQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciPjRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciPzRPEeCPrptoDUJcNQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciQDRPEeCPrptoDUJcNQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciQTRPEeCPrptoDUJcNQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciQjRPEeCPrptoDUJcNQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciQzRPEeCPrptoDUJcNQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciRDRPEeCPrptoDUJcNQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="__BciRTRPEeCPrptoDUJcNQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BciRjRPEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciRzRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="__BciSDRPEeCPrptoDUJcNQ" name="DependableComponent">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BciSTRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_y0zvEDQ2EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__BciSjRPEeCPrptoDUJcNQ" name="base_Component" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="__BciTDRPEeCPrptoDUJcNQ" name="errorModel" ordered="false" eType="_ljRY0TQ8EeC0ueejuetpgA"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__BmSszRPEeCPrptoDUJcNQ" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__BmStDRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="__B5NojRPEeCPrptoDUJcNQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__B5NozRPEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+        </eAnnotations>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_VJJIoDa9EeW314N4GP8y1Q" annotatedElement="_DBxD0DHsEeWt8Ovv2G_EJg _ObrrII_5Eei_FpVxgbKIWA">

+          <body>allows to decorate a port\instance with information regarding the failureModes/threats possibly affecting the port\instance itself</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_64fbIDbDEeW314N4GP8y1Q" annotatedElement="_y0zvEDQ2EeC0ueejuetpgA">

+          <body>obsolete, use ErrorModelBehavior</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_zoiUMDbGEeW314N4GP8y1Q" annotatedElement="_Z8-cUDbDEeW314N4GP8y1Q">

+          <body>Properties as instance of component, block</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_4EpTIDbGEeW314N4GP8y1Q" annotatedElement="_Z8-cUDbDEeW314N4GP8y1Q _aZR90DbDEeW314N4GP8y1Q">

+          <body>This is to allow using ErrorModelBehavior in composite diagram\internal block diagram, as kind of instance view. However the usage of InstanceSpecification should be preferred.</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_K0hSoDbHEeW314N4GP8y1Q" annotatedElement="_ZJyE0DbDEeW314N4GP8y1Q">

+          <body>as Components, Blocks</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_P-akoDbHEeW314N4GP8y1Q" annotatedElement="_ZhzjQDbDEeW314N4GP8y1Q">

+          <body>as instances of components, blocks, connectors</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_XzS2MDbHEeW314N4GP8y1Q" annotatedElement="_H5GnMDbDEeW314N4GP8y1Q">

+          <body>This stereotype is used to attach a user defined error model to an architectural element. It replaces the DependableComponent.&#xD;

+See also FLABehavior and SimpleStochasticBehavior.</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_gzKTMDbSEeW5DJdhCjCHFw" annotatedElement="_VJH8IM1iEeSrt5YehnIlig">

+          <body>UMLConstraints can be attached to FailureMode to specify compliance between them (to be confirmed). FailureModes can appear in generalization relationships; in this case the compatibility between FailureMmodes follows the UML generalization semantics.</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_2AM4sDbSEeW5DJdhCjCHFw" annotatedElement="_IXfyYDHsEeWt8Ovv2G_EJg">

+          <body>as instance of Port</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_6fOBsDbSEeW5DJdhCjCHFw" annotatedElement="_J8yVMDHsEeWt8Ovv2G_EJg _ObrrII_5Eei_FpVxgbKIWA">

+          <body>FailureModes/Threats can apply to component's ports (clientServerPorts or FlowPorts): note that this is not the instance level</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_jVpooDbTEeW5DJdhCjCHFw">

+          <body>this is to use FailureModes in composite diagram. Allows to specify the part &quot;owning&quot; the stereotyped Port. As it was for the &quot;old&quot; FPTCSpecification. However the goal should be to use the &quot;real&quot; instance level, and so the Slot.</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_Ite8wI_6Eei_FpVxgbKIWA" annotatedElement="_DBxD0DHsEeWt8Ovv2G_EJg _4BcSsI_4Eei_FpVxgbKIWA">

+          <body>if applied at the same time on the same entity, than each FailureMode referred by Threats.failureMode must be referred also by FailureModes.failureMode</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_f5pbQMxcEeid4ZRCJNswAA" annotatedElement="_z0oYcMxbEeid4ZRCJNswAA">

+          <body>This stereotype is used to 

+store the result of a V&amp;V check.</body>

+        </ownedComment>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_1TXcMDQ2EeC0ueejuetpgA" alias="Component">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_vslkcDQ3EeC0ueejuetpgA" alias="Abstraction">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Abstraction"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_qUQRADQ7EeC0ueejuetpgA" alias="Connector">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_lh57ADgaEeCE2sZUGxu35w" alias="Property">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_t9O3gEDsEeC5SOtkEXPa-w" alias="Comment">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_Bxaf0E7nEeCiWfCHUearZQ" alias="InstanceSpecification">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_TBHGwM1iEeSrt5YehnIlig" alias="Class">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_-DpY4M1iEeSrt5YehnIlig" alias="Constraint">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_apYFYM1yEeSrt5YehnIlig" alias="Port">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_GZBTgDHsEeWt8Ovv2G_EJg" alias="Slot">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+        </elementImport>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_y0zvEDQ2EeC0ueejuetpgA" name="DependableComponent">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_1n7W8DQ2EeC0ueejuetpgA" name="base_Component" association="_1n7W8TQ2EeC0ueejuetpgA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_5ti_IDRPEeCPrptoDUJcNQ" name="errorModel" visibility="public" type="_90It8DQ3EeC0ueejuetpgA">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8KBBkDRPEeCPrptoDUJcNQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8KKLgDRPEeCPrptoDUJcNQ" value="*"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_8KKLgTRPEeCPrptoDUJcNQ">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_mJZY0DgaEeCE2sZUGxu35w" name="base_Property" association="_mJZY0TgaEeCE2sZUGxu35w">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="__hdJwM1ZEeSrt5YehnIlig" name="base_InstanceSpecification" association="__heX4M1ZEeSrt5YehnIlig">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_1n7W8TQ2EeC0ueejuetpgA" name="E_DependableComponent_Component0" memberEnd="_1n7W8jQ2EeC0ueejuetpgA _1n7W8DQ2EeC0ueejuetpgA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_1n7W8jQ2EeC0ueejuetpgA" name="extension_DependableComponent" type="_y0zvEDQ2EeC0ueejuetpgA" aggregation="composite" association="_1n7W8TQ2EeC0ueejuetpgA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_mJZY0TgaEeCE2sZUGxu35w" name="E_DependableComponent_Property0" memberEnd="_mJZY0jgaEeCE2sZUGxu35w _mJZY0DgaEeCE2sZUGxu35w">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_mJZY0jgaEeCE2sZUGxu35w" name="extension_DependableComponent" type="_y0zvEDQ2EeC0ueejuetpgA" aggregation="composite" association="_mJZY0TgaEeCE2sZUGxu35w"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="__heX4M1ZEeSrt5YehnIlig" name="E_DependableComponent_InstanceSpecification1" memberEnd="__heX4c1ZEeSrt5YehnIlig __hdJwM1ZEeSrt5YehnIlig">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="__heX4c1ZEeSrt5YehnIlig" name="extension_DependableComponent" type="_y0zvEDQ2EeC0ueejuetpgA" aggregation="composite" association="__heX4M1ZEeSrt5YehnIlig"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_VJH8IM1iEeSrt5YehnIlig" name="FailureMode">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_YfXfMM1iEeSrt5YehnIlig" name="base_Class" association="_YfYtUM1iEeSrt5YehnIlig">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_knrwUM1sEeSrt5YehnIlig" name="description">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n7ki8M1sEeSrt5YehnIlig"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n7lKAM1sEeSrt5YehnIlig" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_orKz4M1sEeSrt5YehnIlig" name="severity">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ugclMM1sEeSrt5YehnIlig"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ugdMQM1sEeSrt5YehnIlig" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_RzzBQM1xEeSrt5YehnIlig" name="exposure">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VqXDIM1xEeSrt5YehnIlig"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VqXqMM1xEeSrt5YehnIlig" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_WcpbsM1xEeSrt5YehnIlig" name="controllability">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YoWeQM1xEeSrt5YehnIlig"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YoXFUM1xEeSrt5YehnIlig" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_LkslQM1yEeSrt5YehnIlig" name="likelihood ">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NvheEM1yEeSrt5YehnIlig"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NviFIM1yEeSrt5YehnIlig" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_YfYtUM1iEeSrt5YehnIlig" name="E_FailureMode_Class1" memberEnd="_YfYtUc1iEeSrt5YehnIlig _YfXfMM1iEeSrt5YehnIlig">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_YfYtUc1iEeSrt5YehnIlig" name="extension_FailureMode" type="_VJH8IM1iEeSrt5YehnIlig" aggregation="composite" association="_YfYtUM1iEeSrt5YehnIlig"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_ZMRBcM1iEeSrt5YehnIlig" name="" memberEnd="_ZMRBcc1iEeSrt5YehnIlig">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_ZMRBcc1iEeSrt5YehnIlig" name="failureModeGroup" association="_ZMRBcM1iEeSrt5YehnIlig">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZMRBcs1iEeSrt5YehnIlig" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZMRBc81iEeSrt5YehnIlig" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_evyhIM1yEeSrt5YehnIlig" name="" memberEnd="_evyhIc1yEeSrt5YehnIlig">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_evyhIc1yEeSrt5YehnIlig" name="failureModeSpecification" association="_evyhIM1yEeSrt5YehnIlig">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_evyhIs1yEeSrt5YehnIlig" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_evyhI81yEeSrt5YehnIlig" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_DBxD0DHsEeWt8Ovv2G_EJg" name="FailureModes">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_IXekQDHsEeWt8Ovv2G_EJg" name="base_Slot" association="_IXfyYDHsEeWt8Ovv2G_EJg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_J8xuIDHsEeWt8Ovv2G_EJg" name="base_Port" association="_J8yVMDHsEeWt8Ovv2G_EJg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_LPBZIDHsEeWt8Ovv2G_EJg" name="failureMode" type="_VJH8IM1iEeSrt5YehnIlig" association="_LPCnQDHsEeWt8Ovv2G_EJg">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LPBZITHsEeWt8Ovv2G_EJg" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LPBZIjHsEeWt8Ovv2G_EJg" value="*"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_J3x_wDH0EeWt8Ovv2G_EJg" name="FPTCSpecification" type="_aN9sgHpQEeCIAr4_5S9-cA" association="_J31DEDH0EeWt8Ovv2G_EJg">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J3x_wTH0EeWt8Ovv2G_EJg"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J3x_wjH0EeWt8Ovv2G_EJg" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_IXfyYDHsEeWt8Ovv2G_EJg" name="E_FailureModes_Slot1" memberEnd="_IXfyYTHsEeWt8Ovv2G_EJg _IXekQDHsEeWt8Ovv2G_EJg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_IXfyYTHsEeWt8Ovv2G_EJg" name="extension_FailureModes" type="_DBxD0DHsEeWt8Ovv2G_EJg" aggregation="composite" association="_IXfyYDHsEeWt8Ovv2G_EJg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_J8yVMDHsEeWt8Ovv2G_EJg" name="E_FailureModes_Port1" memberEnd="_J8yVMTHsEeWt8Ovv2G_EJg _J8xuIDHsEeWt8Ovv2G_EJg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_J8yVMTHsEeWt8Ovv2G_EJg" name="extension_FailureModes" type="_DBxD0DHsEeWt8Ovv2G_EJg" aggregation="composite" association="_J8yVMDHsEeWt8Ovv2G_EJg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_LPCnQDHsEeWt8Ovv2G_EJg" name="" memberEnd="_LPCnQTHsEeWt8Ovv2G_EJg _LPBZIDHsEeWt8Ovv2G_EJg">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_LPCnQTHsEeWt8Ovv2G_EJg" name="failureModes" type="_DBxD0DHsEeWt8Ovv2G_EJg" association="_LPCnQDHsEeWt8Ovv2G_EJg">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LPCnQjHsEeWt8Ovv2G_EJg" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LPCnQzHsEeWt8Ovv2G_EJg" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_J31DEDH0EeWt8Ovv2G_EJg" name="failureModes_fPTCSpecification_1" memberEnd="_J31DETH0EeWt8Ovv2G_EJg _J3x_wDH0EeWt8Ovv2G_EJg">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_J31DETH0EeWt8Ovv2G_EJg" name="failureModes" type="_DBxD0DHsEeWt8Ovv2G_EJg" association="_J31DEDH0EeWt8Ovv2G_EJg">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J31DEjH0EeWt8Ovv2G_EJg" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J31DEzH0EeWt8Ovv2G_EJg" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_H5GnMDbDEeW314N4GP8y1Q" name="ErrorModelBehavior">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Nmr1EDbDEeW314N4GP8y1Q" name="errorModel" visibility="public" type="_90It8DQ3EeC0ueejuetpgA">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Nmr1ETbDEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Nmr1EjbDEeW314N4GP8y1Q" value="*"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_Nmr1EzbDEeW314N4GP8y1Q">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_ZJxdwDbDEeW314N4GP8y1Q" name="base_Class" association="_ZJyE0DbDEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Zhy8MDbDEeW314N4GP8y1Q" name="base_InstanceSpecification" association="_ZhzjQDbDEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Z891QDbDEeW314N4GP8y1Q" name="base_Property" association="_Z8-cUDbDEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_aZRWwDbDEeW314N4GP8y1Q" name="base_Connector" association="_aZR90DbDEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_ZJyE0DbDEeW314N4GP8y1Q" name="E_ErrorModelBehavior_Class1" memberEnd="_ZJyE0TbDEeW314N4GP8y1Q _ZJxdwDbDEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ZJyE0TbDEeW314N4GP8y1Q" name="extension_ErrorModelBehavior" type="_H5GnMDbDEeW314N4GP8y1Q" aggregation="composite" association="_ZJyE0DbDEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_ZhzjQDbDEeW314N4GP8y1Q" name="E_ErrorModelBehavior_InstanceSpecification1" memberEnd="_ZhzjQTbDEeW314N4GP8y1Q _Zhy8MDbDEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ZhzjQTbDEeW314N4GP8y1Q" name="extension_ErrorModelBehavior" type="_H5GnMDbDEeW314N4GP8y1Q" aggregation="composite" association="_ZhzjQDbDEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_Z8-cUDbDEeW314N4GP8y1Q" name="E_ErrorModelBehavior_Property1" memberEnd="_Z8-cUTbDEeW314N4GP8y1Q _Z891QDbDEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Z8-cUTbDEeW314N4GP8y1Q" name="extension_ErrorModelBehavior" type="_H5GnMDbDEeW314N4GP8y1Q" aggregation="composite" association="_Z8-cUDbDEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_aZR90DbDEeW314N4GP8y1Q" name="E_ErrorModelBehavior_Connector1" memberEnd="_aZR90TbDEeW314N4GP8y1Q _aZRWwDbDEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_aZR90TbDEeW314N4GP8y1Q" name="extension_ErrorModelBehavior" type="_H5GnMDbDEeW314N4GP8y1Q" aggregation="composite" association="_aZR90DbDEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_F310MCcwEeaP8Pto8-KNAg" name="Propagation">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_NyBcgCcwEeaP8Pto8-KNAg" name="prob">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_T2jKwCcwEeaP8Pto8-KNAg" name="delay" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T2jKwScwEeaP8Pto8-KNAg"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T2jKwicwEeaP8Pto8-KNAg" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_T2jKwycwEeaP8Pto8-KNAg">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Z7vnYCcwEeaP8Pto8-KNAg" name="base_Connector" association="_Z7w1gCcwEeaP8Pto8-KNAg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_aiW7cCcwEeaP8Pto8-KNAg" name="base_InstanceSpecification" association="_aiXigCcwEeaP8Pto8-KNAg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_a7yIECcwEeaP8Pto8-KNAg" name="base_Comment" association="_a7zWMCcwEeaP8Pto8-KNAg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_Z7w1gCcwEeaP8Pto8-KNAg" name="E_Propagation_Connector1" memberEnd="_Z7w1gScwEeaP8Pto8-KNAg _Z7vnYCcwEeaP8Pto8-KNAg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Z7w1gScwEeaP8Pto8-KNAg" name="extension_Propagation" type="_F310MCcwEeaP8Pto8-KNAg" aggregation="composite" association="_Z7w1gCcwEeaP8Pto8-KNAg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_aiXigCcwEeaP8Pto8-KNAg" name="E_Propagation_InstanceSpecification1" memberEnd="_aiXigScwEeaP8Pto8-KNAg _aiW7cCcwEeaP8Pto8-KNAg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_aiXigScwEeaP8Pto8-KNAg" name="extension_Propagation" type="_F310MCcwEeaP8Pto8-KNAg" aggregation="composite" association="_aiXigCcwEeaP8Pto8-KNAg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_a7zWMCcwEeaP8Pto8-KNAg" name="E_Propagation_Comment1" memberEnd="_a7zWMScwEeaP8Pto8-KNAg _a7yIECcwEeaP8Pto8-KNAg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_a7zWMScwEeaP8Pto8-KNAg" name="extension_Propagation" type="_F310MCcwEeaP8Pto8-KNAg" aggregation="composite" association="_a7zWMCcwEeaP8Pto8-KNAg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Enumeration" xmi:id="_yZB9II9SEei-PN4Wkk2WHg" name="ThreatType">

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ofUDkI_iEei_FpVxgbKIWA" name="unauthorizedAccessOfService"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_sJJ4EI_iEei_FpVxgbKIWA" name="unauthorizedModificationOfService"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_wBGaAI_iEei_FpVxgbKIWA" name="unauthorizedDenialOfService"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Enumeration" xmi:id="_1D19kI9SEei-PN4Wkk2WHg" name="VulnerabilityType">

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zd4p8I_iEei_FpVxgbKIWA" name="missingDataIntegritySchemes"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_3-FesI_iEei_FpVxgbKIWA" name="inadequateEncryptionStrength"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_BzbMII_jEei_FpVxgbKIWA" name="resourceAllocationWithoutLimits"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Enumeration" xmi:id="_3I-eEI9SEei-PN4Wkk2WHg" name="AttackType">

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QV9BcI_jEei_FpVxgbKIWA" name="masqueradeAttack"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_SPIwoI_jEei_FpVxgbKIWA" name="denialOfServiceAttack"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_U1KXsI_jEei_FpVxgbKIWA" name="bruteForceAttack"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_W-xvkI_jEei_FpVxgbKIWA" name="dataSpoofingAttack"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_4BcSsI_4Eei_FpVxgbKIWA" name="Threat">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_IzZM8I_5Eei_FpVxgbKIWA" name="failuremode" type="_VJH8IM1iEeSrt5YehnIlig" association="_IzVikI_5Eei_FpVxgbKIWA">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LTHXsI_5Eei_FpVxgbKIWA" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LTTk8I_5Eei_FpVxgbKIWA" value="*"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_ObxxwY_5Eei_FpVxgbKIWA" name="base_Port" association="_ObrrII_5Eei_FpVxgbKIWA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_PcFYMY_5Eei_FpVxgbKIWA" name="base_Slot" association="_Pb_RkI_5Eei_FpVxgbKIWA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_LzUsQJC-EeikRonByBUGlA" name="kind" type="_yZB9II9SEei-PN4Wkk2WHg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_IzVikI_5Eei_FpVxgbKIWA" memberEnd="_IzZM8I_5Eei_FpVxgbKIWA _IzZ0AI_5Eei_FpVxgbKIWA">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IzX-0I_5Eei_FpVxgbKIWA" source="org.eclipse.papyrus">

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IzYl4I_5Eei_FpVxgbKIWA" key="nature" value="UML_Nature"/>

+          </eAnnotations>

+          <ownedEnd xmi:type="uml:Property" xmi:id="_IzZ0AI_5Eei_FpVxgbKIWA" name="threats" type="_4BcSsI_4Eei_FpVxgbKIWA" association="_IzVikI_5Eei_FpVxgbKIWA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_ObrrII_5Eei_FpVxgbKIWA" name="E_Threat_Port1" memberEnd="_ObxxwI_5Eei_FpVxgbKIWA _ObxxwY_5Eei_FpVxgbKIWA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ObxxwI_5Eei_FpVxgbKIWA" name="extension_Threat" type="_4BcSsI_4Eei_FpVxgbKIWA" aggregation="composite" association="_ObrrII_5Eei_FpVxgbKIWA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_Pb_RkI_5Eei_FpVxgbKIWA" name="E_Threat_Slot1" memberEnd="_PcFYMI_5Eei_FpVxgbKIWA _PcFYMY_5Eei_FpVxgbKIWA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_PcFYMI_5Eei_FpVxgbKIWA" name="extension_Threat" type="_4BcSsI_4Eei_FpVxgbKIWA" aggregation="composite" association="_Pb_RkI_5Eei_FpVxgbKIWA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_z0oYcMxbEeid4ZRCJNswAA" name="AnalysisContextElement">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_39-zcMxbEeid4ZRCJNswAA" name="type" type="_kSw1sOzLEeil08rf2XR7gw"/>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_7jgIoMxbEeid4ZRCJNswAA" name="date">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_sexkYAnxEdy9WM11hWri2g"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_-B758MxbEeid4ZRCJNswAA" name="conditions">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_btMuEOzLEeil08rf2XR7gw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_btZiYOzLEeil08rf2XR7gw" value="*"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Bme-wMxcEeid4ZRCJNswAA" name="valid">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_E-7hQMxcEeid4ZRCJNswAA" name="result">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Go8MAMxcEeid4ZRCJNswAA" name="root">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Lhq1gMxcEeid4ZRCJNswAA" name="contextAnalysis">

+            <type xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9gc2ABKfEdyaWJN1BYon3A"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_e1vHMMxcEeid4ZRCJNswAA" name="base_Component" association="_e1sq8MxcEeid4ZRCJNswAA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_iCQ54PGFEeiqsOkaARO1Cw" name="instantiatedArchitecture" type="_RL274cyCEeikFNSMhHHwbQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pNRIAPGFEeiqsOkaARO1Cw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pNfxgPGFEeiqsOkaARO1Cw" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_e1sq8MxcEeid4ZRCJNswAA" name="E_AnalysisContextElement_Component1" memberEnd="_e1ugIMxcEeid4ZRCJNswAA _e1vHMMxcEeid4ZRCJNswAA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_e1ugIMxcEeid4ZRCJNswAA" name="extension_AnalysisContextElement" type="_z0oYcMxbEeid4ZRCJNswAA" aggregation="composite" association="_e1sq8MxcEeid4ZRCJNswAA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Enumeration" xmi:id="_kSw1sOzLEeil08rf2XR7gw" name="Analysis">

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_bS47MOzMEeil08rf2XR7gw" name="FMEA_ANALYSIS"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_dROQIOzMEeil08rf2XR7gw" name="FTA_ANALYSIS"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_enlmIOzMEeil08rf2XR7gw" name="CONTRACT_BASED_FTA_ANALYSIS"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_fl7dsOzMEeil08rf2XR7gw" name="CONTRACT_REFINEMENT_ANALYSIS"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_gqvJoOzMEeil08rf2XR7gw" name="CONTRACT_IMPLEMENTATION_ANALYSIS"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_i1MPAOzMEeil08rf2XR7gw" name="PROPERTY_VALIDATION_ANALYSIS"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_kLHgIOzMEeil08rf2XR7gw" name="CONTRACT_PROPERTY_VALIDATION_ANALYSIS"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_lJ6DoOzMEeil08rf2XR7gw" name="MODEL_CHECKING_ANALYSIS"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_0SNfgOzMEeil08rf2XR7gw" name="CONTRACT_COMPOSITE_IMPLEMENTATION_ANALYSIS"/>

+        </packagedElement>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Profile" xmi:id="_5g4wEDQ3EeC0ueejuetpgA" name="ThreatsPropagation" URI="http://CHESS/Dependability/ThreatsPropagation" metaclassReference="_AGLpEDQ4EeC0ueejuetpgA _EsXKADQ4EeC0ueejuetpgA _YOEPEDQ4EeC0ueejuetpgA _T6fIcMvmEeSajLw6mg2A8Q _-JLxoM2NEeSrt5YehnIlig _4CmFkFIREembUrnKQet3ag _JOdF4FIYEembUrnKQet3ag _OJBicFIYEembUrnKQet3ag _jTGREFn7Eem9Ld3PFj4MvA _342y8HctEemivKCZR-OnLQ">

+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljHn0DQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+          <contents xmi:type="ecore:EPackage" xmi:id="_aeBTcI5vEeOjpOW2pJw89Q" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ai3-QI5vEeOjpOW2pJw89Q" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-QY5vEeOjpOW2pJw89Q" key="Version" value="0.0.10"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-Qo5vEeOjpOW2pJw89Q" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-Q45vEeOjpOW2pJw89Q" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-RI5vEeOjpOW2pJw89Q" key="Date" value="2014-02-05"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ai3-RY5vEeOjpOW2pJw89Q" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBTcY5vEeOjpOW2pJw89Q" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBTco5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBTc45vEeOjpOW2pJw89Q" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBTdY5vEeOjpOW2pJw89Q" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBTdo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBTd45vEeOjpOW2pJw89Q" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBTe45vEeOjpOW2pJw89Q" name="transfFunct" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBTfY5vEeOjpOW2pJw89Q" name="property" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBTf45vEeOjpOW2pJw89Q" name="childFailure" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBTgY5vEeOjpOW2pJw89Q" name="occurrence" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBTg45vEeOjpOW2pJw89Q" name="transientDuration" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeXRsI5vEeOjpOW2pJw89Q" name="permanentProb" ordered="false" lowerBound="1" eType="_aeXRso5vEeOjpOW2pJw89Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aeBT2I5vEeOjpOW2pJw89Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT2Y5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_aeBT2o5vEeOjpOW2pJw89Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT245vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT3I5vEeOjpOW2pJw89Q" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT3Y5vEeOjpOW2pJw89Q" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT3o5vEeOjpOW2pJw89Q" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT345vEeOjpOW2pJw89Q" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_aeBT4I5vEeOjpOW2pJw89Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT4Y5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT4o5vEeOjpOW2pJw89Q" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT445vEeOjpOW2pJw89Q" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT5I5vEeOjpOW2pJw89Q" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT5Y5vEeOjpOW2pJw89Q" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT5o5vEeOjpOW2pJw89Q" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT545vEeOjpOW2pJw89Q" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT6I5vEeOjpOW2pJw89Q" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT6Y5vEeOjpOW2pJw89Q" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT6o5vEeOjpOW2pJw89Q" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_aeBT645vEeOjpOW2pJw89Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT7I5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT7Y5vEeOjpOW2pJw89Q" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBT7o5vEeOjpOW2pJw89Q" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aeBT745vEeOjpOW2pJw89Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT8I5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aeBT8Y5vEeOjpOW2pJw89Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT8o5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBT845vEeOjpOW2pJw89Q" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBT9I5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBT9Y5vEeOjpOW2pJw89Q" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBT945vEeOjpOW2pJw89Q" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBT-Y5vEeOjpOW2pJw89Q" name="propagationCondition" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBT_Y5vEeOjpOW2pJw89Q" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBT_45vEeOjpOW2pJw89Q" name="type" ordered="false" lowerBound="1" eType="_aeBUA45vEeOjpOW2pJw89Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUAY5vEeOjpOW2pJw89Q" name="transfFunct" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_afXXQI5vEeOjpOW2pJw89Q" name="probability" ordered="false" lowerBound="1" eType="_aeXRso5vEeOjpOW2pJw89Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_aeBUA45vEeOjpOW2pJw89Q" name="DurationType">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUBI5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBUBY5vEeOjpOW2pJw89Q" name="transient"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_aeBUBo5vEeOjpOW2pJw89Q" name="permanent" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUB45vEeOjpOW2pJw89Q" name="Error" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUCI5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUCY5vEeOjpOW2pJw89Q" name="type" ordered="false" lowerBound="1" eType="_aeBUA45vEeOjpOW2pJw89Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUC45vEeOjpOW2pJw89Q" name="vanishingTime" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUDo5vEeOjpOW2pJw89Q" name="ThreatState">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUD45vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_C-dwsL9UEeCOtecSzivGvQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUEI5vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUFI5vEeOjpOW2pJw89Q" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_agCFoI5vEeOjpOW2pJw89Q" name="probability" ordered="false" lowerBound="1" eType="_aeXRso5vEeOjpOW2pJw89Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUFo5vEeOjpOW2pJw89Q" name="ErrorFree" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUF45vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUGY5vEeOjpOW2pJw89Q" name="UnclassifiedError" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUGo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUHI5vEeOjpOW2pJw89Q" name="FailureMode" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUHY5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUHo5vEeOjpOW2pJw89Q" name="affectedPorts" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUII5vEeOjpOW2pJw89Q" name="type" ordered="false" lowerBound="1" eType="_aeBUA45vEeOjpOW2pJw89Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUI45vEeOjpOW2pJw89Q" name="FailureFree" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUJI5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUJo5vEeOjpOW2pJw89Q" name="UnclassifiedFailure" eSuperTypes="_aeBUDo5vEeOjpOW2pJw89Q">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUJ45vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUKY5vEeOjpOW2pJw89Q" name="StuckAt">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUKo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yQjfEImOEeODrcgAiMzRCg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUK45vEeOjpOW2pJw89Q" name="property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBULY5vEeOjpOW2pJw89Q" name="value" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUL45vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUMY5vEeOjpOW2pJw89Q" name="StuckAtFixed">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUMo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Et5L0I5rEeOCpeH37jWMhw"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUM45vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUNY5vEeOjpOW2pJw89Q" name="property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUN45vEeOjpOW2pJw89Q" name="Inverted">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUOI5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_F1BL8I5rEeOCpeH37jWMhw"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUOY5vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUO45vEeOjpOW2pJw89Q" name="property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_aeBUPY5vEeOjpOW2pJw89Q" name="RampDown">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeBUPo5vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_GdDcUI5rEeOCpeH37jWMhw"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUP45vEeOjpOW2pJw89Q" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aeBUQY5vEeOjpOW2pJw89Q" name="property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBUQ45vEeOjpOW2pJw89Q" name="decr" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aeBURY5vEeOjpOW2pJw89Q" name="endValue" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aeXRso5vEeOjpOW2pJw89Q" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aeXRs45vEeOjpOW2pJw89Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_CEv30I2FEeOAr5SJygOCbw" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CO6gcI2FEeOAr5SJygOCbw" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gcY2FEeOAr5SJygOCbw" key="Version" value="0.0.9"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gco2FEeOAr5SJygOCbw" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gc42FEeOAr5SJygOCbw" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gdI2FEeOAr5SJygOCbw" key="Date" value="2014-02-04"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CO6gdY2FEeOAr5SJygOCbw" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEv30Y2FEeOAr5SJygOCbw" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv30o2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv3042FEeOAr5SJygOCbw" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEv31Y2FEeOAr5SJygOCbw" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv31o2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv3142FEeOAr5SJygOCbw" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEv3242FEeOAr5SJygOCbw" name="transfFunct" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv33Y2FEeOAr5SJygOCbw" name="property" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv3342FEeOAr5SJygOCbw" name="childFailure" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEv34Y2FEeOAr5SJygOCbw" name="occurrence" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEv3442FEeOAr5SJygOCbw" name="transientDuration" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CFeQkI2FEeOAr5SJygOCbw" name="permanentProb" ordered="false" lowerBound="1" eType="_CFeQko2FEeOAr5SJygOCbw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CEv4OI2FEeOAr5SJygOCbw" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4OY2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEv4Oo2FEeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4O42FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4PI2FEeOAr5SJygOCbw" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4PY2FEeOAr5SJygOCbw" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4Po2FEeOAr5SJygOCbw" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4P42FEeOAr5SJygOCbw" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEv4QI2FEeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4QY2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4Qo2FEeOAr5SJygOCbw" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4Q42FEeOAr5SJygOCbw" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4RI2FEeOAr5SJygOCbw" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4RY2FEeOAr5SJygOCbw" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4Ro2FEeOAr5SJygOCbw" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4R42FEeOAr5SJygOCbw" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4SI2FEeOAr5SJygOCbw" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4SY2FEeOAr5SJygOCbw" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4So2FEeOAr5SJygOCbw" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEv4S42FEeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4TI2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4TY2FEeOAr5SJygOCbw" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEv4To2FEeOAr5SJygOCbw" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CEv4T42FEeOAr5SJygOCbw" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4UI2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CEv4UY2FEeOAr5SJygOCbw" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4Uo2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEv4U42FEeOAr5SJygOCbw" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEv4VI2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv4VY2FEeOAr5SJygOCbw" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEv4V42FEeOAr5SJygOCbw" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEv4WY2FEeOAr5SJygOCbw" name="propagationCondition" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe4I2FEeOAr5SJygOCbw" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe4o2FEeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_CEwe5o2FEeOAr5SJygOCbw"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe5I2FEeOAr5SJygOCbw" name="transfFunct" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CH3dQI2FEeOAr5SJygOCbw" name="probability" ordered="false" lowerBound="1" eType="_CFeQko2FEeOAr5SJygOCbw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEwe5o2FEeOAr5SJygOCbw" name="DurationType">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe542FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwe6I2FEeOAr5SJygOCbw" name="transient"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwe6Y2FEeOAr5SJygOCbw" name="permanent" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe6o2FEeOAr5SJygOCbw" name="Error" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe642FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe7I2FEeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_CEwe5o2FEeOAr5SJygOCbw"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe7o2FEeOAr5SJygOCbw" name="vanishingTime" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe8Y2FEeOAr5SJygOCbw" name="ThreatState">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe8o2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_C-dwsL9UEeCOtecSzivGvQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEwe842FEeOAr5SJygOCbw" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwe942FEeOAr5SJygOCbw" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CJt3YI2FEeOAr5SJygOCbw" name="probability" ordered="false" lowerBound="1" eType="_CFeQko2FEeOAr5SJygOCbw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe-Y2FEeOAr5SJygOCbw" name="ErrorFree" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe-o2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe_I2FEeOAr5SJygOCbw" name="UnclassifiedError" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwe_Y2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwe_42FEeOAr5SJygOCbw" name="FailureMode" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfAI2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEwfAY2FEeOAr5SJygOCbw" name="affectedPorts" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwfA42FEeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_CEwe5o2FEeOAr5SJygOCbw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwfBo2FEeOAr5SJygOCbw" name="FailureFree" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfB42FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwfCY2FEeOAr5SJygOCbw" name="UnclassifiedFailure" eSuperTypes="_CEwe8Y2FEeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfCo2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_CEwfDI2FEeOAr5SJygOCbw" name="EffectMode">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfDY2FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yQjfEImOEeODrcgAiMzRCg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEwfDo2FEeOAr5SJygOCbw" name="property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwfEI2FEeOAr5SJygOCbw" name="value" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CEwfEo2FEeOAr5SJygOCbw" name="effectType" ordered="false" lowerBound="1" eType="_CEwfFo2FEeOAr5SJygOCbw"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_CEwfFI2FEeOAr5SJygOCbw" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_CEwfFo2FEeOAr5SJygOCbw" name="EffectModesEnum">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEwfF42FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwfGI2FEeOAr5SJygOCbw" name="StuckAt"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwfGY2FEeOAr5SJygOCbw" name="StuckAtFixed" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwfGo2FEeOAr5SJygOCbw" name="Inverted" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_CEwfG42FEeOAr5SJygOCbw" name="RampDown" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CFeQko2FEeOAr5SJygOCbw" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CFeQk42FEeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_G6dRQI1_EeOAr5SJygOCbw" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G-VrsI1_EeOAr5SJygOCbw" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-VrsY1_EeOAr5SJygOCbw" key="Version" value="0.0.8"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-Vrso1_EeOAr5SJygOCbw" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-Vrs41_EeOAr5SJygOCbw" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-VrtI1_EeOAr5SJygOCbw" key="Date" value="2014-02-04"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G-VrtY1_EeOAr5SJygOCbw" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dRQY1_EeOAr5SJygOCbw" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRQo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRQ41_EeOAr5SJygOCbw" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dRRY1_EeOAr5SJygOCbw" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRRo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRR41_EeOAr5SJygOCbw" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRS41_EeOAr5SJygOCbw" name="transfFunct" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRTY1_EeOAr5SJygOCbw" name="property" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRT41_EeOAr5SJygOCbw" name="childFailure" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRUY1_EeOAr5SJygOCbw" name="occurrence" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRU41_EeOAr5SJygOCbw" name="transientDuration" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6xaUI1_EeOAr5SJygOCbw" name="permanentProb" ordered="false" lowerBound="1" eType="_G6xaUo1_EeOAr5SJygOCbw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6dRqI1_EeOAr5SJygOCbw" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRqY1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6dRqo1_EeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRq41_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRrI1_EeOAr5SJygOCbw" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRrY1_EeOAr5SJygOCbw" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRro1_EeOAr5SJygOCbw" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRr41_EeOAr5SJygOCbw" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6dRsI1_EeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRsY1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRso1_EeOAr5SJygOCbw" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRs41_EeOAr5SJygOCbw" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRtI1_EeOAr5SJygOCbw" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRtY1_EeOAr5SJygOCbw" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRto1_EeOAr5SJygOCbw" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRt41_EeOAr5SJygOCbw" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRuI1_EeOAr5SJygOCbw" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRuY1_EeOAr5SJygOCbw" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRuo1_EeOAr5SJygOCbw" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6dRu41_EeOAr5SJygOCbw" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRvI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRvY1_EeOAr5SJygOCbw" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dRvo1_EeOAr5SJygOCbw" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6dRv41_EeOAr5SJygOCbw" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRwI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6dRwY1_EeOAr5SJygOCbw" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRwo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dRw41_EeOAr5SJygOCbw" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dRxI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRxY1_EeOAr5SJygOCbw" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dRx41_EeOAr5SJygOCbw" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRyY1_EeOAr5SJygOCbw" name="propagationCondition" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRzY1_EeOAr5SJygOCbw" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dRz41_EeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_G6dR041_EeOAr5SJygOCbw"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dR0Y1_EeOAr5SJygOCbw" name="transfFunct" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G7o9AI1_EeOAr5SJygOCbw" name="probability" ordered="false" lowerBound="1" eType="_G6xaUo1_EeOAr5SJygOCbw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6dR041_EeOAr5SJygOCbw" name="DurationType">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dR1I1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dR1Y1_EeOAr5SJygOCbw" name="transient"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6dR1o1_EeOAr5SJygOCbw" name="permanent" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dR141_EeOAr5SJygOCbw" name="Error" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dR2I1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dR2Y1_EeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_G6dR041_EeOAr5SJygOCbw"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6dR241_EeOAr5SJygOCbw" name="vanishingTime" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6dR3o1_EeOAr5SJygOCbw" name="ThreatState">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6dR341_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_C-dwsL9UEeCOtecSzivGvQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6dR4I1_EeOAr5SJygOCbw" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6d4UY1_EeOAr5SJygOCbw" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6d4U41_EeOAr5SJygOCbw" name="effectModel" ordered="false" eType="_G6d4VY1_EeOAr5SJygOCbw"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G8VgkI1_EeOAr5SJygOCbw" name="probability" ordered="false" lowerBound="1" eType="_G6xaUo1_EeOAr5SJygOCbw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4VY1_EeOAr5SJygOCbw" name="EffectMode">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4Vo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yQjfEImOEeODrcgAiMzRCg"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6d4V41_EeOAr5SJygOCbw" name="property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6d4WY1_EeOAr5SJygOCbw" name="value" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6d4W41_EeOAr5SJygOCbw" name="effectType" ordered="false" lowerBound="1" eType="_G6d4X41_EeOAr5SJygOCbw"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6d4XY1_EeOAr5SJygOCbw" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6d4X41_EeOAr5SJygOCbw" name="EffectModesEnum">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4YI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6d4YY1_EeOAr5SJygOCbw" name="StuckAt"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6d4Yo1_EeOAr5SJygOCbw" name="StuckAtFixed" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6d4Y41_EeOAr5SJygOCbw" name="Inverted" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6d4ZI1_EeOAr5SJygOCbw" name="RampDown" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4ZY1_EeOAr5SJygOCbw" name="ErrorFree" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4Zo1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4aI1_EeOAr5SJygOCbw" name="UnclassifiedError" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4aY1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4a41_EeOAr5SJygOCbw" name="FailureMode" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4bI1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6d4bY1_EeOAr5SJygOCbw" name="affectedPorts" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6d4b41_EeOAr5SJygOCbw" name="type" ordered="false" lowerBound="1" eType="_G6dR041_EeOAr5SJygOCbw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4co1_EeOAr5SJygOCbw" name="FailureFree" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4c41_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6d4dY1_EeOAr5SJygOCbw" name="UnclassifiedFailure" eSuperTypes="_G6dR3o1_EeOAr5SJygOCbw">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6d4do1_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6xaUo1_EeOAr5SJygOCbw" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6xaU41_EeOAr5SJygOCbw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_PJWkcImREeOqf4JlfFwBNg" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PMzhEImREeOqf4JlfFwBNg" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhEYmREeOqf4JlfFwBNg" key="Version" value="0.0.7"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhEomREeOqf4JlfFwBNg" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhE4mREeOqf4JlfFwBNg" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhFImREeOqf4JlfFwBNg" key="Date" value="2014-01-30"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PMzhFYmREeOqf4JlfFwBNg" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWkcYmREeOqf4JlfFwBNg" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWkcomREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWkc4mREeOqf4JlfFwBNg" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWkdYmREeOqf4JlfFwBNg" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWkdomREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWkd4mREeOqf4JlfFwBNg" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWke4mREeOqf4JlfFwBNg" name="transfFunct" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWkfYmREeOqf4JlfFwBNg" name="property" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWkf4mREeOqf4JlfFwBNg" name="childFailure" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWkgYmREeOqf4JlfFwBNg" name="occurrence" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWkg4mREeOqf4JlfFwBNg" name="transientDuration" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJoRQImREeOqf4JlfFwBNg" name="permanentProb" ordered="false" lowerBound="1" eType="_PJoRQomREeOqf4JlfFwBNg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_PJWk2ImREeOqf4JlfFwBNg" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk2YmREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWk2omREeOqf4JlfFwBNg" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk24mREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk3ImREeOqf4JlfFwBNg" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk3YmREeOqf4JlfFwBNg" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk3omREeOqf4JlfFwBNg" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk34mREeOqf4JlfFwBNg" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWk4ImREeOqf4JlfFwBNg" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk4YmREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk4omREeOqf4JlfFwBNg" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk44mREeOqf4JlfFwBNg" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk5ImREeOqf4JlfFwBNg" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk5YmREeOqf4JlfFwBNg" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk5omREeOqf4JlfFwBNg" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk54mREeOqf4JlfFwBNg" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk6ImREeOqf4JlfFwBNg" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk6YmREeOqf4JlfFwBNg" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk6omREeOqf4JlfFwBNg" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWk64mREeOqf4JlfFwBNg" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk7ImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk7YmREeOqf4JlfFwBNg" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWk7omREeOqf4JlfFwBNg" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_PJWk74mREeOqf4JlfFwBNg" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk8ImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_PJWk8YmREeOqf4JlfFwBNg" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk8omREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWk84mREeOqf4JlfFwBNg" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWk9ImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWk9YmREeOqf4JlfFwBNg" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWk94mREeOqf4JlfFwBNg" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWk-YmREeOqf4JlfFwBNg" name="propagationCondition" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWk_YmREeOqf4JlfFwBNg" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWk_4mREeOqf4JlfFwBNg" name="type" ordered="false" lowerBound="1" eType="_PJWlA4mREeOqf4JlfFwBNg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlAYmREeOqf4JlfFwBNg" name="transfFunct" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PKaUYImREeOqf4JlfFwBNg" name="probability" ordered="false" lowerBound="1" eType="_PJoRQomREeOqf4JlfFwBNg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWlA4mREeOqf4JlfFwBNg" name="DurationType">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlBImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlBYmREeOqf4JlfFwBNg" name="transient"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlBomREeOqf4JlfFwBNg" name="permanent" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlB4mREeOqf4JlfFwBNg" name="Error" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlCImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlCYmREeOqf4JlfFwBNg" name="type" ordered="false" lowerBound="1" eType="_PJWlA4mREeOqf4JlfFwBNg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlC4mREeOqf4JlfFwBNg" name="vanishingTime" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlDomREeOqf4JlfFwBNg" name="ThreatState">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlD4mREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_C-dwsL9UEeCOtecSzivGvQ"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWlEImREeOqf4JlfFwBNg" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlFImREeOqf4JlfFwBNg" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWlFomREeOqf4JlfFwBNg" name="effectModel" ordered="false" eType="_PJWlGImREeOqf4JlfFwBNg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PLB_cImREeOqf4JlfFwBNg" name="probability" ordered="false" lowerBound="1" eType="_PJoRQomREeOqf4JlfFwBNg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlGImREeOqf4JlfFwBNg" name="EffectMode">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlGYmREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yQjfEImOEeODrcgAiMzRCg"/>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//NFPs/NfpType"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWlGomREeOqf4JlfFwBNg" name="property" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlHImREeOqf4JlfFwBNg" name="value" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlHomREeOqf4JlfFwBNg" name="effectType" ordered="false" lowerBound="1" eType="_PJWlIYmREeOqf4JlfFwBNg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_PJWlIYmREeOqf4JlfFwBNg" name="EffectModesEnum">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlIomREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlI4mREeOqf4JlfFwBNg" name="StuckAt"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlJImREeOqf4JlfFwBNg" name="StuckAtFixed" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlJYmREeOqf4JlfFwBNg" name="Inverted" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_PJWlJomREeOqf4JlfFwBNg" name="RampDown" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlJ4mREeOqf4JlfFwBNg" name="ErrorFree" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlKImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlKomREeOqf4JlfFwBNg" name="UnclassifiedError" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlK4mREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlLYmREeOqf4JlfFwBNg" name="FailureMode" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlLomREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PJWlL4mREeOqf4JlfFwBNg" name="affectedPorts" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PJWlMYmREeOqf4JlfFwBNg" name="type" ordered="false" lowerBound="1" eType="_PJWlA4mREeOqf4JlfFwBNg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlNImREeOqf4JlfFwBNg" name="FailureFree" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlNYmREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_PJWlN4mREeOqf4JlfFwBNg" name="UnclassifiedFailure" eSuperTypes="_PJWlDomREeOqf4JlfFwBNg">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJWlOImREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_PJoRQomREeOqf4JlfFwBNg" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PJoRQ4mREeOqf4JlfFwBNg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_SWZ04Ke3EeCfNM3HjUZ3Ag" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sc9I0Ke3EeCfNM3HjUZ3Ag" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I0ae3EeCfNM3HjUZ3Ag" key="Version" value="0.0.6"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I0qe3EeCfNM3HjUZ3Ag" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I06e3EeCfNM3HjUZ3Ag" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I1Ke3EeCfNM3HjUZ3Ag" key="Date" value="2011-07-06"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sc9I1ae3EeCfNM3HjUZ3Ag" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ04ae3EeCfNM3HjUZ3Ag" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ04qe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ046e3EeCfNM3HjUZ3Ag" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ05ae3EeCfNM3HjUZ3Ag" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ05qe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ056e3EeCfNM3HjUZ3Ag" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ066e3EeCfNM3HjUZ3Ag" name="transfFunct" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ07ae3EeCfNM3HjUZ3Ag" name="property" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ076e3EeCfNM3HjUZ3Ag" name="childFailure" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SW2g0Ke3EeCfNM3HjUZ3Ag" name="permanentProb" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_SWZ1RKe3EeCfNM3HjUZ3Ag" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1Rae3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SWZ1Rqe3EeCfNM3HjUZ3Ag" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1R6e3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1SKe3EeCfNM3HjUZ3Ag" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Sae3EeCfNM3HjUZ3Ag" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Sqe3EeCfNM3HjUZ3Ag" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1S6e3EeCfNM3HjUZ3Ag" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SWZ1TKe3EeCfNM3HjUZ3Ag" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1Tae3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Tqe3EeCfNM3HjUZ3Ag" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1T6e3EeCfNM3HjUZ3Ag" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1UKe3EeCfNM3HjUZ3Ag" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Uae3EeCfNM3HjUZ3Ag" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Uqe3EeCfNM3HjUZ3Ag" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1U6e3EeCfNM3HjUZ3Ag" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1VKe3EeCfNM3HjUZ3Ag" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Vae3EeCfNM3HjUZ3Ag" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Vqe3EeCfNM3HjUZ3Ag" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SWZ1V6e3EeCfNM3HjUZ3Ag" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1WKe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Wae3EeCfNM3HjUZ3Ag" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1Wqe3EeCfNM3HjUZ3Ag" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_SWZ1W6e3EeCfNM3HjUZ3Ag" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1XKe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_SWZ1Xae3EeCfNM3HjUZ3Ag" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1Xqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1X6e3EeCfNM3HjUZ3Ag" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1YKe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1Yae3EeCfNM3HjUZ3Ag" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1Y6e3EeCfNM3HjUZ3Ag" name="fromPort" ordered="false" lowerBound="1" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1Zae3EeCfNM3HjUZ3Ag" name="propagationCondition" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1Z6e3EeCfNM3HjUZ3Ag" name="Error">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1aKe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1aae3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1a6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1b6e3EeCfNM3HjUZ3Ag" name="type" ordered="false" lowerBound="1" eType="_SWZ1cae3EeCfNM3HjUZ3Ag"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SYL9kKe3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SWZ1cae3EeCfNM3HjUZ3Ag" name="DurationType">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1cqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1c6e3EeCfNM3HjUZ3Ag" name="transient"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SWZ1dKe3EeCfNM3HjUZ3Ag" name="permanent" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1dae3EeCfNM3HjUZ3Ag" name="ErrorFree">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1dqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1d6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1e6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SY7kcKe3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1fae3EeCfNM3HjUZ3Ag" name="UnclassifiedError">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1fqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1f6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1g6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SZ-tUKe3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1hae3EeCfNM3HjUZ3Ag" name="FailureMode">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1hqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1h6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1i6e3EeCfNM3HjUZ3Ag" name="affectedPorts" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1jae3EeCfNM3HjUZ3Ag" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1j6e3EeCfNM3HjUZ3Ag" name="type" ordered="false" lowerBound="1" eType="_SWZ1cae3EeCfNM3HjUZ3Ag"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Sa3eIKe3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1kae3EeCfNM3HjUZ3Ag" name="FailureFree">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1kqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1k6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1l6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SbnFAae3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_SWZ1mae3EeCfNM3HjUZ3Ag" name="UnclassifiedFailure">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SWZ1mqe3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SWZ1m6e3EeCfNM3HjUZ3Ag" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SWZ1n6e3EeCfNM3HjUZ3Ag" name="unit" ordered="false">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Scgc4Ke3EeCfNM3HjUZ3Ag" name="probability" ordered="false" lowerBound="1" eType="_SW2g0qe3EeCfNM3HjUZ3Ag"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_SW2g0qe3EeCfNM3HjUZ3Ag" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SW2g06e3EeCfNM3HjUZ3Ag" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_G6-koFquEeCgwNmo13tekQ" name="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HBYuoFquEeCgwNmo13tekQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYuoVquEeCgwNmo13tekQ" key="Version" value="0.0.5"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYuolquEeCgwNmo13tekQ" key="Comment" value="removed unnecessary Extension from the model"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYuo1quEeCgwNmo13tekQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYupFquEeCgwNmo13tekQ" key="Date" value="2011-03-30"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HBYupVquEeCgwNmo13tekQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-koVquEeCgwNmo13tekQ" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-kolquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-ko1quEeCgwNmo13tekQ" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-kpVquEeCgwNmo13tekQ" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-kplquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-kp1quEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G7uLgFquEeCgwNmo13tekQ" name="permanentProb" ordered="false" lowerBound="1" eType="_G7uLglquEeCgwNmo13tekQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6-k_lquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-k_1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6-lAFquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lAVquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lAlquEeCgwNmo13tekQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lA1quEeCgwNmo13tekQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lBFquEeCgwNmo13tekQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lBVquEeCgwNmo13tekQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6-lBlquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lB1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lCFquEeCgwNmo13tekQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lCVquEeCgwNmo13tekQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lClquEeCgwNmo13tekQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lC1quEeCgwNmo13tekQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lDFquEeCgwNmo13tekQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lDVquEeCgwNmo13tekQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lDlquEeCgwNmo13tekQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lD1quEeCgwNmo13tekQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lEFquEeCgwNmo13tekQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G6-lEVquEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lElquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lE1quEeCgwNmo13tekQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G6-lFFquEeCgwNmo13tekQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6-lFVquEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lFlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G6-lF1quEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lGFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lGVquEeCgwNmo13tekQ" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lGlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lG1quEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lHVquEeCgwNmo13tekQ" name="fromPort" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G6-lH1quEeCgwNmo13tekQ" name="logic" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lIVquEeCgwNmo13tekQ" name="Error">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lIlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lI1quEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lJVquEeCgwNmo13tekQ" name="ErrorFree">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lJlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lJ1quEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G9qsQFquEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_G7uLglquEeCgwNmo13tekQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lK1quEeCgwNmo13tekQ" name="Unclassified">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lLFquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lLVquEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G-2_EFquEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_G7uLglquEeCgwNmo13tekQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G6-lMVquEeCgwNmo13tekQ" name="FailureMode">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G6-lMlquEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lM1quEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G6-lN1quEeCgwNmo13tekQ" name="affectedPorts" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_HAMb0FquEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_G7uLglquEeCgwNmo13tekQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7uLglquEeCgwNmo13tekQ" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7uLg1quEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_-YopwFqlEeCgwNmo13tekQ" name="ThreatsPropagation" nsURI="http://CHESS.Dependability/schemas/ThreatsPropagation/_-YVu0FqlEeCgwNmo13tekQ/3" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-fCzwFqlEeCgwNmo13tekQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzwVqlEeCgwNmo13tekQ" key="Version" value="0.0.4"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzwlqlEeCgwNmo13tekQ" key="Comment" value="Merged DependableComponent::Propagation and ThreatsPropagation::Propagation"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzw1qlEeCgwNmo13tekQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzxFqlEeCgwNmo13tekQ" key="Date" value="2011-03-30"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-fCzxVqlEeCgwNmo13tekQ" key="Author" value="Stefano"/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YopwVqlEeCgwNmo13tekQ" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YopwlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-Yopw1qlEeCgwNmo13tekQ" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YopxVqlEeCgwNmo13tekQ" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YopxlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-Yopx1qlEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-ZYQoFqlEeCgwNmo13tekQ" name="permanentProb" ordered="false" lowerBound="1" eType="_-ZYQolqlEeCgwNmo13tekQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_-YoqHlqlEeCgwNmo13tekQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqH1qlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-YoqIFqlEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqIVqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqIlqlEeCgwNmo13tekQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqI1qlEeCgwNmo13tekQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqJFqlEeCgwNmo13tekQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqJVqlEeCgwNmo13tekQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-YoqJlqlEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqJ1qlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqKFqlEeCgwNmo13tekQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqKVqlEeCgwNmo13tekQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqKlqlEeCgwNmo13tekQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqK1qlEeCgwNmo13tekQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqLFqlEeCgwNmo13tekQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqLVqlEeCgwNmo13tekQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqLlqlEeCgwNmo13tekQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqL1qlEeCgwNmo13tekQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqMFqlEeCgwNmo13tekQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-YoqMVqlEeCgwNmo13tekQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqMlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqM1qlEeCgwNmo13tekQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_-YoqNFqlEeCgwNmo13tekQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_-YoqNVqlEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqNlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_-YoqN1qlEeCgwNmo13tekQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqOFqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqOVqlEeCgwNmo13tekQ" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqOlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqO1qlEeCgwNmo13tekQ" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqPVqlEeCgwNmo13tekQ" name="fromPort" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-YoqP1qlEeCgwNmo13tekQ" name="logic" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqQVqlEeCgwNmo13tekQ" name="Error">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqQlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqQ1qlEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqRVqlEeCgwNmo13tekQ" name="ErrorFree">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqRlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqR1qlEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-bKZUFqlEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_-ZYQolqlEeCgwNmo13tekQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqS1qlEeCgwNmo13tekQ" name="Unclassified">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqTFqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqTVqlEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-cgdIFqlEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_-ZYQolqlEeCgwNmo13tekQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_-YoqUVqlEeCgwNmo13tekQ" name="FailureMode">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-YoqUlqlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqU1qlEeCgwNmo13tekQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-YoqV1qlEeCgwNmo13tekQ" name="affectedPorts" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-dsv8FqlEeCgwNmo13tekQ" name="probability" ordered="false" lowerBound="1" eType="_-ZYQolqlEeCgwNmo13tekQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_-ZYQolqlEeCgwNmo13tekQ" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-ZYQo1qlEeCgwNmo13tekQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_2F5QYEQQEeCQRfAVtSc0sw" name="ThreatsPropagation" nsURI="http://CHESS.Dependability/schemas/ThreatsPropagation/_2FwGcEQQEeCQRfAVtSc0sw/2" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2gHuQEQQEeCQRfAVtSc0sw" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuQUQQEeCQRfAVtSc0sw" key="Version" value="0.0.3"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuQkQQEeCQRfAVtSc0sw" key="Comment" value="addedt target type for dependableMeasure"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuQ0QQEeCQRfAVtSc0sw" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuREQQEeCQRfAVtSc0sw" key="Date" value="2011-03-01"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2gHuRUQQEeCQRfAVtSc0sw" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5QYUQQEeCQRfAVtSc0sw" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5QYkQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5QY0QQEeCQRfAVtSc0sw" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5QZUQQEeCQRfAVtSc0sw" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5QZkQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5QZ0QQEeCQRfAVtSc0sw" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2aBGQEQQEeCQRfAVtSc0sw" name="permanentProb" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2F5QvkQQEeCQRfAVtSc0sw" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Qv0QQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_2F5QwEQQEeCQRfAVtSc0sw" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5QwUQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QwkQQEeCQRfAVtSc0sw" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Qw0QQEeCQRfAVtSc0sw" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QxEQQEeCQRfAVtSc0sw" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QxUQQEeCQRfAVtSc0sw" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_2F5QxkQQEeCQRfAVtSc0sw" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Qx0QQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QyEQQEeCQRfAVtSc0sw" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QyUQQEeCQRfAVtSc0sw" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QykQQEeCQRfAVtSc0sw" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Qy0QQEeCQRfAVtSc0sw" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QzEQQEeCQRfAVtSc0sw" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QzUQQEeCQRfAVtSc0sw" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5QzkQQEeCQRfAVtSc0sw" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Qz0QQEeCQRfAVtSc0sw" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Q0EQQEeCQRfAVtSc0sw" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_2F5Q0UQQEeCQRfAVtSc0sw" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q0kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Q00QQEeCQRfAVtSc0sw" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_2F5Q1EQQEeCQRfAVtSc0sw" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2F5Q1UQQEeCQRfAVtSc0sw" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q1kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2F5Q10QQEeCQRfAVtSc0sw" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q2EQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q2UQQEeCQRfAVtSc0sw" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q2kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q20QQEeCQRfAVtSc0sw" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q3UQQEeCQRfAVtSc0sw" name="fromPort" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2F5Q30QQEeCQRfAVtSc0sw" name="logic" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q4UQQEeCQRfAVtSc0sw" name="Error">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q4kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q40QQEeCQRfAVtSc0sw" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q5UQQEeCQRfAVtSc0sw" name="ErrorFree">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q5kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q50QQEeCQRfAVtSc0sw" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2bqFAEQQEeCQRfAVtSc0sw" name="probability" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q60QQEeCQRfAVtSc0sw" name="Unclassified">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q7EQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q7UQQEeCQRfAVtSc0sw" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2csm0EQQEeCQRfAVtSc0sw" name="probability" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q8UQQEeCQRfAVtSc0sw" name="FailureMode">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q8kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q80QQEeCQRfAVtSc0sw" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q90QQEeCQRfAVtSc0sw" name="affectedPorts" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2d45oEQQEeCQRfAVtSc0sw" name="probability" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_2F5Q-UQQEeCQRfAVtSc0sw" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2F5Q-kQQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_2F5Q-0QQEeCQRfAVtSc0sw" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2F5Q_0QQEeCQRfAVtSc0sw" name="tf" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_2fYHYEQQEeCQRfAVtSc0sw" name="probability" ordered="false" lowerBound="1" eType="_2aBGQkQQEeCQRfAVtSc0sw"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_2aBGQkQQEeCQRfAVtSc0sw" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2aBGQ0QQEeCQRfAVtSc0sw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_U0lJ8DRoEeCPrptoDUJcNQ" name="ThreatsPropagation" nsURI="http://CHESS.Dependability/schemas/ThreatsPropagation/_U0bY8DRoEeCPrptoDUJcNQ/1" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U5CzMDRoEeCPrptoDUJcNQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzMTRoEeCPrptoDUJcNQ" key="Version" value="0.0.2"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzMjRoEeCPrptoDUJcNQ" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzMzRoEeCPrptoDUJcNQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzNDRoEeCPrptoDUJcNQ" key="Date" value="2011-02-09"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U5CzNTRoEeCPrptoDUJcNQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lJ8TRoEeCPrptoDUJcNQ" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lJ8jRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lJ8zRoEeCPrptoDUJcNQ" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lJ9TRoEeCPrptoDUJcNQ" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lJ9jRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lJ9zRoEeCPrptoDUJcNQ" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U04E4DRoEeCPrptoDUJcNQ" name="permanentProb" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U0lKTjRoEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKTzRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_U0lKUDRoEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKUTRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKUjRoEeCPrptoDUJcNQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKUzRoEeCPrptoDUJcNQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKVDRoEeCPrptoDUJcNQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKVTRoEeCPrptoDUJcNQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_U0lKVjRoEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKVzRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKWDRoEeCPrptoDUJcNQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKWTRoEeCPrptoDUJcNQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKWjRoEeCPrptoDUJcNQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKWzRoEeCPrptoDUJcNQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKXDRoEeCPrptoDUJcNQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKXTRoEeCPrptoDUJcNQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKXjRoEeCPrptoDUJcNQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKXzRoEeCPrptoDUJcNQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKYDRoEeCPrptoDUJcNQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_U0lKYTRoEeCPrptoDUJcNQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKYjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKYzRoEeCPrptoDUJcNQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_U0lKZDRoEeCPrptoDUJcNQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U0lKZTRoEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKZjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U0lKZzRoEeCPrptoDUJcNQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKaDRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKaTRoEeCPrptoDUJcNQ" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKajRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKazRoEeCPrptoDUJcNQ" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKbTRoEeCPrptoDUJcNQ" name="fromPort" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U0lKbzRoEeCPrptoDUJcNQ" name="logic" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKcTRoEeCPrptoDUJcNQ" name="Error">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKcjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKczRoEeCPrptoDUJcNQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKdTRoEeCPrptoDUJcNQ" name="ErrorFree">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKdjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKdzRoEeCPrptoDUJcNQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U16msDRoEeCPrptoDUJcNQ" name="probability" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKezRoEeCPrptoDUJcNQ" name="Unclassified">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKfDRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKfTRoEeCPrptoDUJcNQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U2qNkDRoEeCPrptoDUJcNQ" name="probability" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKgTRoEeCPrptoDUJcNQ" name="FailureMode">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKgjRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKgzRoEeCPrptoDUJcNQ" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKhzRoEeCPrptoDUJcNQ" name="affectedPorts" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U3abgDRoEeCPrptoDUJcNQ" name="probability" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_U0lKiTRoEeCPrptoDUJcNQ" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0lKijRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_U0lKizRoEeCPrptoDUJcNQ" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U0lKjzRoEeCPrptoDUJcNQ" name="tf" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_U4TMUDRoEeCPrptoDUJcNQ" name="probability" ordered="false" lowerBound="1" eType="_U04E4jRoEeCPrptoDUJcNQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_U04E4jRoEeCPrptoDUJcNQ" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U04E4zRoEeCPrptoDUJcNQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_ljRY0DQ8EeC0ueejuetpgA" name="ThreatsPropagation" nsURI="http://CHESS.Dependability/schemas/ThreatsPropagation/_li0s4DQ8EeC0ueejuetpgA/0" nsPrefix="ThreatsPropagation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lncHIDQ8EeC0ueejuetpgA" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHITQ8EeC0ueejuetpgA" key="Version" value="0.0.1"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHIjQ8EeC0ueejuetpgA" key="Comment" value="New Dependability Profile"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHIzQ8EeC0ueejuetpgA" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHJDQ8EeC0ueejuetpgA" key="Date" value="2011-02-09"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lncHJTQ8EeC0ueejuetpgA" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRY0TQ8EeC0ueejuetpgA" name="ErrorModel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRY0jQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_90It8DQ3EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRY0zQ8EeC0ueejuetpgA" name="base_StateMachine" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRY1TQ8EeC0ueejuetpgA" name="InternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRY1jQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRY1zQ8EeC0ueejuetpgA" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lj3OsDQ8EeC0ueejuetpgA" name="permanentProb" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ljRZLjQ8EeC0ueejuetpgA" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZLzQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_ljRZMDQ8EeC0ueejuetpgA" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZMTQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZMjQ8EeC0ueejuetpgA" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZMzQ8EeC0ueejuetpgA" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZNDQ8EeC0ueejuetpgA" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZNTQ8EeC0ueejuetpgA" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_ljRZNjQ8EeC0ueejuetpgA" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZNzQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZODQ8EeC0ueejuetpgA" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZOTQ8EeC0ueejuetpgA" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZOjQ8EeC0ueejuetpgA" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZOzQ8EeC0ueejuetpgA" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZPDQ8EeC0ueejuetpgA" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZPTQ8EeC0ueejuetpgA" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZPjQ8EeC0ueejuetpgA" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZPzQ8EeC0ueejuetpgA" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZQDQ8EeC0ueejuetpgA" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_ljRZQTQ8EeC0ueejuetpgA" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZQjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZQzQ8EeC0ueejuetpgA" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_ljRZRDQ8EeC0ueejuetpgA" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ljRZRTQ8EeC0ueejuetpgA" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZRjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ljRZRzQ8EeC0ueejuetpgA" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZSDQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZSTQ8EeC0ueejuetpgA" name="ExternalFault">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZSjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZSzQ8EeC0ueejuetpgA" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZTTQ8EeC0ueejuetpgA" name="fromPort" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ljRZTzQ8EeC0ueejuetpgA" name="logic" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZUTQ8EeC0ueejuetpgA" name="Error">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZUjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_W3CKsDQ4EeC0ueejuetpgA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZUzQ8EeC0ueejuetpgA" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZVTQ8EeC0ueejuetpgA" name="ErrorFree">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZVjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZVzQ8EeC0ueejuetpgA" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lk6XkDQ8EeC0ueejuetpgA" name="probability" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZWzQ8EeC0ueejuetpgA" name="Unclassified">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZXDQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZXTQ8EeC0ueejuetpgA" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_llgNcDQ8EeC0ueejuetpgA" name="probability" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZYTQ8EeC0ueejuetpgA" name="FailureMode">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZYjQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZYzQ8EeC0ueejuetpgA" name="base_State" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lmGqYDQ8EeC0ueejuetpgA" name="probability" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_ljRZZzQ8EeC0ueejuetpgA" name="Propagation">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ljRZaDQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ljRZaTQ8EeC0ueejuetpgA" name="base_Transition" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ljRZbTQ8EeC0ueejuetpgA" name="tf" ordered="false" upperBound="-1">

+                <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lmsgQTQ8EeC0ueejuetpgA" name="probability" ordered="false" lowerBound="1" eType="_lj3OsjQ8EeC0ueejuetpgA"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_lj3OsjQ8EeC0ueejuetpgA" name="NFP_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lj3OszQ8EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+        </eAnnotations>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_0B-ykM1VEeSrt5YehnIlig" annotatedElement="_tdSWgM1VEeSrt5YehnIlig _ksxYIDbJEeW314N4GP8y1Q">

+          <body>New Dep profile</body>

+        </ownedComment>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_AGLpEDQ4EeC0ueejuetpgA" alias="StateMachine">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#StateMachine"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_EsXKADQ4EeC0ueejuetpgA" alias="Transition">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_YOEPEDQ4EeC0ueejuetpgA" alias="State">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_T6fIcMvmEeSajLw6mg2A8Q" alias="Constraint">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_-JLxoM2NEeSrt5YehnIlig" alias="Event">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Event"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_4CmFkFIREembUrnKQet3ag" alias="Actor">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_JOdF4FIYEembUrnKQet3ag" alias="Classifier">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_OJBicFIYEembUrnKQet3ag" alias="Message">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Message"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_jTGREFn7Eem9Ld3PFj4MvA" alias="Port">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_342y8HctEemivKCZR-OnLQ" alias="Interaction">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interaction"/>

+        </elementImport>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_90It8DQ3EeC0ueejuetpgA" name="ErrorModel">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Ag2y4DQ4EeC0ueejuetpgA" name="base_StateMachine" association="_Ag2y4TQ4EeC0ueejuetpgA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#StateMachine"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_Ag2y4TQ4EeC0ueejuetpgA" name="E_ErrorModel_StateMachine1" memberEnd="_Ag2y4jQ4EeC0ueejuetpgA _Ag2y4DQ4EeC0ueejuetpgA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Ag2y4jQ4EeC0ueejuetpgA" name="extension_ErrorModel" type="_90It8DQ3EeC0ueejuetpgA" aggregation="composite" association="_Ag2y4TQ4EeC0ueejuetpgA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_W3CKsDQ4EeC0ueejuetpgA" name="ErrorState">

+          <generalization xmi:type="uml:Generalization" xmi:id="_Me6MML9UEeCOtecSzivGvQ" general="_C-dwsL9UEeCOtecSzivGvQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_C-dwsL9UEeCOtecSzivGvQ" name="ThreatState">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_FwZFwL9UEeCOtecSzivGvQ" name="base_State" association="_FwZFwb9UEeCOtecSzivGvQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_O6e2wL9UEeCOtecSzivGvQ" name="probability">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_KEuMQL9VEeCOtecSzivGvQ" name="unit">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KEuMQb9VEeCOtecSzivGvQ"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_FwZFwb9UEeCOtecSzivGvQ" name="E_ThreatState_State0" memberEnd="_FwZFwr9UEeCOtecSzivGvQ _FwZFwL9UEeCOtecSzivGvQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_FwZFwr9UEeCOtecSzivGvQ" name="extension_ThreatState" type="_C-dwsL9UEeCOtecSzivGvQ" aggregation="composite" association="_FwZFwb9UEeCOtecSzivGvQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_yQjfEImOEeODrcgAiMzRCg" name="StuckAt">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_tuF6IImGEeODrcgAiMzRCg" name="property">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_7ABDMImGEeODrcgAiMzRCg" name="value">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_lSG3EI19EeOAr5SJygOCbw" name="base_State" association="_lSIFMI19EeOAr5SJygOCbw">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_lSIFMI19EeOAr5SJygOCbw" name="E_StuckAt_State1" memberEnd="_lSIFMY19EeOAr5SJygOCbw _lSG3EI19EeOAr5SJygOCbw">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_lSIFMY19EeOAr5SJygOCbw" name="extension_StuckAt" type="_yQjfEImOEeODrcgAiMzRCg" aggregation="composite" association="_lSIFMI19EeOAr5SJygOCbw"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Et5L0I5rEeOCpeH37jWMhw" name="StuckAtFixed">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_xlMnMI5rEeOCpeH37jWMhw" name="base_State" association="_xlNOQI5rEeOCpeH37jWMhw">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_FUyFUI5uEeOjpOW2pJw89Q" name="property">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_F1BL8I5rEeOCpeH37jWMhw" name="Inverted">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_x_xDUI5rEeOCpeH37jWMhw" name="base_State" association="_x_xDUY5rEeOCpeH37jWMhw">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Fx2b0I5uEeOjpOW2pJw89Q" name="property">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_GdDcUI5rEeOCpeH37jWMhw" name="RampDown">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_yaNjoI5rEeOCpeH37jWMhw" name="base_State" association="_yaOKsI5rEeOCpeH37jWMhw">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_eN93UI5sEeOCpeH37jWMhw" name="property">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_fkMDYI5sEeOCpeH37jWMhw" name="decr">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_glHU4I5sEeOCpeH37jWMhw" name="endValue">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_xlNOQI5rEeOCpeH37jWMhw" name="E_StuckAtFixed_State1" memberEnd="_xlNOQY5rEeOCpeH37jWMhw _xlMnMI5rEeOCpeH37jWMhw">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_xlNOQY5rEeOCpeH37jWMhw" name="extension_StuckAtFixed" type="_Et5L0I5rEeOCpeH37jWMhw" aggregation="composite" association="_xlNOQI5rEeOCpeH37jWMhw"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_x_xDUY5rEeOCpeH37jWMhw" name="E_Inverted_State1" memberEnd="_x_xDUo5rEeOCpeH37jWMhw _x_xDUI5rEeOCpeH37jWMhw">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_x_xDUo5rEeOCpeH37jWMhw" name="extension_Inverted" type="_F1BL8I5rEeOCpeH37jWMhw" aggregation="composite" association="_x_xDUY5rEeOCpeH37jWMhw"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_yaOKsI5rEeOCpeH37jWMhw" name="E_RampDown_State1" memberEnd="_yaOKsY5rEeOCpeH37jWMhw _yaNjoI5rEeOCpeH37jWMhw">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_yaOKsY5rEeOCpeH37jWMhw" name="extension_RampDown" type="_GdDcUI5rEeOCpeH37jWMhw" aggregation="composite" association="_yaOKsI5rEeOCpeH37jWMhw"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_tdSWgM1VEeSrt5YehnIlig" name="DegradedState">

+          <generalization xmi:type="uml:Generalization" xmi:id="_yV7gcM1VEeSrt5YehnIlig" general="_C-dwsL9UEeCOtecSzivGvQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_3p_goM2NEeSrt5YehnIlig" name="NormalInput">

+          <generalization xmi:type="uml:Generalization" xmi:id="_5pRQwM2NEeSrt5YehnIlig" general="_SHHqQM2PEeSrt5YehnIlig"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_WHUlwM2OEeSrt5YehnIlig" name="NormalOutput">

+          <generalization xmi:type="uml:Generalization" xmi:id="_X18qwM2OEeSrt5YehnIlig" general="_SHHqQM2PEeSrt5YehnIlig"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_YSCJ0M2OEeSrt5YehnIlig" name="Failure">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Q1MJsDbJEeW314N4GP8y1Q" name="base_Transition" association="_Q1MwwDbJEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_UhbK4DbJEeW314N4GP8y1Q" name="mode">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UhbK4TbJEeW314N4GP8y1Q" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UhbK4jbJEeW314N4GP8y1Q" value="*"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_aybO4DbJEeW314N4GP8y1Q" name="delay">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aybO4TbJEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aybO4jbJEeW314N4GP8y1Q" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_TTPuYHJPEeWA88Dv12-yjw" name="weight" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TTPuYXJPEeWA88Dv12-yjw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TTPuYnJPEeWA88Dv12-yjw" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_TTPuY3JPEeWA88Dv12-yjw">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_SHHqQM2PEeSrt5YehnIlig" name="DepEvent" isAbstract="true">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_2cXNMHJPEeWA88Dv12-yjw" name="port">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2cXNMXJPEeWA88Dv12-yjw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2cXNMnJPEeWA88Dv12-yjw" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_NJ2RwHJQEeWA88Dv12-yjw" name="base_Transition" association="_NJ5VEHJQEeWA88Dv12-yjw">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_SAIEMHJQEeWA88Dv12-yjw" name="weight">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SAIEMXJQEeWA88Dv12-yjw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SAIEMnJQEeWA88Dv12-yjw" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_p7yZUM2PEeSrt5YehnIlig" name="InternalFault">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_W6WBUM2SEeSrt5YehnIlig" name="occurrence">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ye9yIDbIEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ye-ZMDbIEeW314N4GP8y1Q" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_rOvFwDbIEeW314N4GP8y1Q" name="base_Transition" association="_rOvs0DbIEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_uJCTsDbIEeW314N4GP8y1Q" name="weight">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zUwxsDbIEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zUxYwDbIEeW314N4GP8y1Q" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_rjZ3YM2PEeSrt5YehnIlig" name="InternalPropagation">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_5lwOoDbIEeW314N4GP8y1Q" name="base_Transition" association="_5lxcwDbIEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_9nxSkDbIEeW314N4GP8y1Q" name="externalFaults">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9nxSkTbIEeW314N4GP8y1Q" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AUbtIDbJEeW314N4GP8y1Q" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_GJRZkDbJEeW314N4GP8y1Q" name="delay">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GJRZkTbJEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GJRZkjbJEeW314N4GP8y1Q" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_JDw0wDbJEeW314N4GP8y1Q" name="weight">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JDw0wTbJEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JDw0wjbJEeW314N4GP8y1Q" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Enumeration" xmi:id="_wYnS0M2PEeSrt5YehnIlig" name="RecoveryKind">

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_zWbHwM2PEeSrt5YehnIlig" name="Repair"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_0nAl4M2PEeSrt5YehnIlig" name="Compensation"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_1stCoM2PEeSrt5YehnIlig" name="ErrorDetection"/>

+          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_2s-M0M2PEeSrt5YehnIlig" name="Reconfiguration"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_rOvs0DbIEeW314N4GP8y1Q" name="E_InternalFault_Transition1" memberEnd="_rOvs0TbIEeW314N4GP8y1Q _rOvFwDbIEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_rOvs0TbIEeW314N4GP8y1Q" name="extension_InternalFault" type="_p7yZUM2PEeSrt5YehnIlig" aggregation="composite" association="_rOvs0DbIEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_5lxcwDbIEeW314N4GP8y1Q" name="E_InternalPropagation_Transition1" memberEnd="_5lxcwTbIEeW314N4GP8y1Q _5lwOoDbIEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_5lxcwTbIEeW314N4GP8y1Q" name="extension_InternalPropagation" type="_rjZ3YM2PEeSrt5YehnIlig" aggregation="composite" association="_5lxcwDbIEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_Q1MwwDbJEeW314N4GP8y1Q" name="E_Failure_Transition1" memberEnd="_Q1MwwTbJEeW314N4GP8y1Q _Q1MJsDbJEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Q1MwwTbJEeW314N4GP8y1Q" name="extension_Failure" type="_YSCJ0M2OEeSrt5YehnIlig" aggregation="composite" association="_Q1MwwDbJEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_ksxYIDbJEeW314N4GP8y1Q" name="NormalState">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_myE3wDbJEeW314N4GP8y1Q" name="base_State" association="_myFe0DbJEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#State"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_myFe0DbJEeW314N4GP8y1Q" name="E_NormalState_State1" memberEnd="_myFe0TbJEeW314N4GP8y1Q _myE3wDbJEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_myFe0TbJEeW314N4GP8y1Q" name="extension_NormalState" type="_ksxYIDbJEeW314N4GP8y1Q" aggregation="composite" association="_myFe0DbJEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_CJFsMDbKEeW314N4GP8y1Q" name="ErrorDetection">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_DtBkIDbKEeW314N4GP8y1Q" name="base_Transition" association="_DtBkITbKEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_EsjugDbKEeW314N4GP8y1Q" name="delay">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EsjugTbKEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EsjugjbKEeW314N4GP8y1Q" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_FRtqADbKEeW314N4GP8y1Q" name="successProbability">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FRtqATbKEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FRtqAjbKEeW314N4GP8y1Q" value="1"/>

+            <qualifier xmi:type="uml:Property" xmi:id="_R7lUkDbKEeW314N4GP8y1Q" name="successProbability">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R7lUkTbKEeW314N4GP8y1Q"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R7lUkjbKEeW314N4GP8y1Q" value="1"/>

+            </qualifier>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_WK20sHJPEeWA88Dv12-yjw" name="weight" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WK20sXJPEeWA88Dv12-yjw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WK20snJPEeWA88Dv12-yjw" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_WK20s3JPEeWA88Dv12-yjw">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_DtBkITbKEeW314N4GP8y1Q" name="E_ErrorDetection_Transition1" memberEnd="_DtBkIjbKEeW314N4GP8y1Q _DtBkIDbKEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DtBkIjbKEeW314N4GP8y1Q" name="extension_ErrorDetection" type="_CJFsMDbKEeW314N4GP8y1Q" aggregation="composite" association="_DtBkITbKEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_NzEnEDbKEeW314N4GP8y1Q" name="ErrorHandling">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Pxc_UDbKEeW314N4GP8y1Q" name="base_Transition" association="_PxdmYDbKEeW314N4GP8y1Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_QyIZMDbKEeW314N4GP8y1Q" name="delay">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QyIZMTbKEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QyIZMjbKEeW314N4GP8y1Q" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_TIo9kDbKEeW314N4GP8y1Q" name="successProbability">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TIo9kTbKEeW314N4GP8y1Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TIo9kjbKEeW314N4GP8y1Q" value="1"/>

+            <qualifier xmi:type="uml:Property" xmi:id="_TIo9kzbKEeW314N4GP8y1Q" name="successProbability">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TIo9lDbKEeW314N4GP8y1Q"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TIo9lTbKEeW314N4GP8y1Q" value="1"/>

+            </qualifier>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Whz8IHJPEeWA88Dv12-yjw" name="weight" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Whz8IXJPEeWA88Dv12-yjw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Whz8InJPEeWA88Dv12-yjw" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_Whz8I3JPEeWA88Dv12-yjw">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_PxdmYDbKEeW314N4GP8y1Q" name="E_ErrorHandling_Transition1" memberEnd="_PxdmYTbKEeW314N4GP8y1Q _Pxc_UDbKEeW314N4GP8y1Q">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_PxdmYTbKEeW314N4GP8y1Q" name="extension_ErrorHandling" type="_NzEnEDbKEeW314N4GP8y1Q" aggregation="composite" association="_PxdmYDbKEeW314N4GP8y1Q"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_i73wUDbLEeW5DJdhCjCHFw" name="FaultHandling">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_lT8a8DbLEeW5DJdhCjCHFw" name="base_Transition" association="_lT9pEDbLEeW5DJdhCjCHFw">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_nUn5QDbLEeW5DJdhCjCHFw" name="delay">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nUn5QTbLEeW5DJdhCjCHFw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nUn5QjbLEeW5DJdhCjCHFw" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_oRntADbLEeW5DJdhCjCHFw" name="successProbability">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oRntATbLEeW5DJdhCjCHFw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oRntAjbLEeW5DJdhCjCHFw" value="1"/>

+            <qualifier xmi:type="uml:Property" xmi:id="_oRntAzbLEeW5DJdhCjCHFw" name="successProbability">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oRntBDbLEeW5DJdhCjCHFw"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oRntBTbLEeW5DJdhCjCHFw" value="1"/>

+            </qualifier>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_W0_94HJPEeWA88Dv12-yjw" name="weight" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_W0_94XJPEeWA88Dv12-yjw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_W0_94nJPEeWA88Dv12-yjw" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_W0_943JPEeWA88Dv12-yjw">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_lT9pEDbLEeW5DJdhCjCHFw" name="E_FaultHandling_Transition1" memberEnd="_lT9pETbLEeW5DJdhCjCHFw _lT8a8DbLEeW5DJdhCjCHFw">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_lT9pETbLEeW5DJdhCjCHFw" name="extension_FaultHandling" type="_i73wUDbLEeW5DJdhCjCHFw" aggregation="composite" association="_lT9pEDbLEeW5DJdhCjCHFw"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_NJ5VEHJQEeWA88Dv12-yjw" name="E_DepEvent_Transition1" memberEnd="_NJ5VEXJQEeWA88Dv12-yjw _NJ2RwHJQEeWA88Dv12-yjw">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_NJ5VEXJQEeWA88Dv12-yjw" name="extension_DepEvent" type="_SHHqQM2PEeSrt5YehnIlig" aggregation="composite" association="_NJ5VEHJQEeWA88Dv12-yjw"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_fGBRkI_lEei_FpVxgbKIWA" name="Attack">

+          <generalization xmi:type="uml:Generalization" xmi:id="_yK_3AI_oEei_FpVxgbKIWA" general="_rjZ3YM2PEeSrt5YehnIlig"/>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_zcgpkI_lEei_FpVxgbKIWA" name="kind" type="_3I-eEI9SEei-PN4Wkk2WHg"/>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_7aX4AI_lEei_FpVxgbKIWA" name="severity">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_AxOA4I_mEei_FpVxgbKIWA" name="likelihood">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_3VdJsI_oEei_FpVxgbKIWA" name="vulnerability" type="_FxEmEI_mEei_FpVxgbKIWA"/>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="__pBzUI_xEei_FpVxgbKIWA" name="threat" type="_yZB9II9SEei-PN4Wkk2WHg"/>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_fyhvwlIYEembUrnKQet3ag" name="base_Message" association="_fyhvwFIYEembUrnKQet3ag">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Message"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_4jJUQFIZEembUrnKQet3ag" name="intensity">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4jJUQVIZEembUrnKQet3ag"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4jJUQlIZEembUrnKQet3ag" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_FxEmEI_mEei_FpVxgbKIWA" name="Vulnerability">

+          <generalization xmi:type="uml:Generalization" xmi:id="_1zPwEI_oEei_FpVxgbKIWA" general="_p7yZUM2PEeSrt5YehnIlig"/>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_ITyacI_mEei_FpVxgbKIWA" name="kind" type="_1D19kI9SEei-PN4Wkk2WHg"/>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_gLQ_4lIYEembUrnKQet3ag" name="base_Classifier" association="_gLQ_4FIYEembUrnKQet3ag">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_kBiEYFn7Eem9Ld3PFj4MvA" name="base_Port" association="_kBZhgFn7Eem9Ld3PFj4MvA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_4viEEFIREembUrnKQet3ag" name="Adversary">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_9o_GUlIREembUrnKQet3ag" name="base_Actor" association="_9o_GUFIREembUrnKQet3ag">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_9o_GUFIREembUrnKQet3ag" name="E_Adversary_Actor1" memberEnd="_9o_GUVIREembUrnKQet3ag _9o_GUlIREembUrnKQet3ag">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_9o_GUVIREembUrnKQet3ag" name="extension_Adversary" type="_4viEEFIREembUrnKQet3ag" aggregation="composite" association="_9o_GUFIREembUrnKQet3ag"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_fyhvwFIYEembUrnKQet3ag" name="E_Attack_Message1" memberEnd="_fyhvwVIYEembUrnKQet3ag _fyhvwlIYEembUrnKQet3ag">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_fyhvwVIYEembUrnKQet3ag" name="extension_Attack" type="_fGBRkI_lEei_FpVxgbKIWA" aggregation="composite" association="_fyhvwFIYEembUrnKQet3ag"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_gLQ_4FIYEembUrnKQet3ag" name="E_Vulnerability_Classifier1" memberEnd="_gLQ_4VIYEembUrnKQet3ag _gLQ_4lIYEembUrnKQet3ag">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gLQ_4VIYEembUrnKQet3ag" name="extension_Vulnerability" type="_FxEmEI_mEei_FpVxgbKIWA" aggregation="composite" association="_gLQ_4FIYEembUrnKQet3ag"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_kBZhgFn7Eem9Ld3PFj4MvA" name="E_Vulnerability_Port1" memberEnd="_kBhdUFn7Eem9Ld3PFj4MvA _kBiEYFn7Eem9Ld3PFj4MvA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_kBhdUFn7Eem9Ld3PFj4MvA" name="extension_Vulnerability" type="_FxEmEI_mEei_FpVxgbKIWA" aggregation="composite" association="_kBZhgFn7Eem9Ld3PFj4MvA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_xjoWQHctEemivKCZR-OnLQ" name="AttackScenario">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_4loZYHctEemivKCZR-OnLQ" name="base_Interaction" association="_4lkH8HctEemivKCZR-OnLQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interaction"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_9iulgHctEemivKCZR-OnLQ" name="frequency">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9iulgXctEemivKCZR-OnLQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9iulgnctEemivKCZR-OnLQ" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_DLasUHcuEemivKCZR-OnLQ" name="probSuccess">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DLasUXcuEemivKCZR-OnLQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DLasUncuEemivKCZR-OnLQ" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_4lkH8HctEemivKCZR-OnLQ" name="E_AttackScenario_Interaction1" memberEnd="_4lnLQHctEemivKCZR-OnLQ _4loZYHctEemivKCZR-OnLQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_4lnLQHctEemivKCZR-OnLQ" name="extension_AttackScenario" type="_xjoWQHctEemivKCZR-OnLQ" aggregation="composite" association="_4lkH8HctEemivKCZR-OnLQ"/>

+        </packagedElement>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Profile" xmi:id="_kJICMFiIEeGbwa2cK55fPQ" name="MitigationMeans" URI="http://CHESS.Dependability/MitigationMeans" metaclassReference="_YoYtcFiJEeG7ipvuc3Lqcg">

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_YoYtcFiJEeG7ipvuc3Lqcg" alias="Connector">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+        </elementImport>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_VD3d0FiJEeG7ipvuc3Lqcg" name="TransmissionWithProtocol">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_ZSzjcFiJEeG7ipvuc3Lqcg" name="base_Connector" association="_ZS0xkFiJEeG7ipvuc3Lqcg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_bnimMFiJEeG7ipvuc3Lqcg" name="CRC">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_cicIMFiJEeG7ipvuc3Lqcg" name="UseSeqID">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_ZS0xkFiJEeG7ipvuc3Lqcg" name="E_TransmissionWithProtocol_Connector0" memberEnd="_ZS0xkViJEeG7ipvuc3Lqcg _ZSzjcFiJEeG7ipvuc3Lqcg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ZS0xkViJEeG7ipvuc3Lqcg" name="extension_TransmissionWithProtocol" type="_VD3d0FiJEeG7ipvuc3Lqcg" aggregation="composite" association="_ZS0xkFiJEeG7ipvuc3Lqcg"/>

+        </packagedElement>

+      </packagedElement>

+    </packagedElement>

+    <packagedElement xmi:type="uml:Package" xmi:id="_ioSQkMGMEd--atLXXafOiQ" name="Predictability">

+      <packagedElement xmi:type="uml:Profile" xmi:id="_nyQ7MLwzEd-CDNLmLgazUQ" name="DeploymentConfiguration" URI="http://CHESS/Predictability/DeploymentConfiguration">

+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JScF28GbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+          <contents xmi:type="ecore:EPackage" xmi:id="_S2Uq0ce6Ed-7etIj5eTw0Q" name="DeploymentConfiguration" nsURI="http://CHESS/Predictability/DeploymentConfiguration" nsPrefix="DeploymentConfiguration">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZlbnJse6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnJ8e6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnKMe6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnKce6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnKse6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZlbnK8e6Ed-7etIj5eTw0Q" key="Author" value=""/>

+            </eAnnotations>

+          </contents>

+        </eAnnotations>

+        <packagedElement xmi:type="uml:Profile" xmi:id="_1TsX8MCpEd-RT45s8cwWMg" name="HardwareBaseline" URI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" metaclassReference="_6F2tEKlhEeC6PYeyk6yc0A _Y4qjsKu3EeCQLtqIc6Ik6Q _wlZ-cKu6EeCQLtqIc6Ik6Q _4T7iMCZBEeGlQNX6ViU5DA">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Je820MGbEd--atLXXafOiQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+            <contents xmi:type="ecore:EPackage" xmi:id="_m5QdsKvEEeCQLtqIc6Ik6Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-NPIKvEEeCQLtqIc6Ik6Q" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPIavEEeCQLtqIc6Ik6Q" key="Version" value="0.1.13"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPIqvEEeCQLtqIc6Ik6Q" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPI6vEEeCQLtqIc6Ik6Q" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPJKvEEeCQLtqIc6Ik6Q" key="Date" value="2011-07-11"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-NPJavEEeCQLtqIc6Ik6Q" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QdsavEEeCQLtqIc6Ik6Q" name="CH_HwProcessor">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QdsqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5Qds6vEEeCQLtqIc6Ik6Q" name="dataType" ordered="false" lowerBound="1" eType="_m5QduqvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdtavEEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_m5QdxqvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5u-0KvEEeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_m5u-0qvEEeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QduqvEEeCQLtqIc6Ik6Q" name="HWDataType">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5Qdu6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QdvKvEEeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdvqvEEeCQLtqIc6Ik6Q" name="bitLength" ordered="false">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdwKvEEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_m5QdxqvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdwqvEEeCQLtqIc6Ik6Q" name="executionCylces" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QdxKvEEeCQLtqIc6Ik6Q" name="type" ordered="false" lowerBound="1" eType="_m5QdzavEEeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QdxqvEEeCQLtqIc6Ik6Q" name="BasicOperation">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5Qdx6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QdyKvEEeCQLtqIc6Ik6Q" name="add"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QdyavEEeCQLtqIc6Ik6Q" name="mul" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QdyqvEEeCQLtqIc6Ik6Q" name="div" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qdy6vEEeCQLtqIc6Ik6Q" name="mod" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QdzKvEEeCQLtqIc6Ik6Q" name="shift" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QdzavEEeCQLtqIc6Ik6Q" name="BasicDataType">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QdzqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qdz6vEEeCQLtqIc6Ik6Q" name="Signed"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qd0KvEEeCQLtqIc6Ik6Q" name="Integer" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qd0avEEeCQLtqIc6Ik6Q" name="Fixed_Point" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5Qd0qvEEeCQLtqIc6Ik6Q" name="Float" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m5QeJqvEEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeJ6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QeKKvEEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeKavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeKqvEEeCQLtqIc6Ik6Q" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeK6vEEeCQLtqIc6Ik6Q" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeLKvEEeCQLtqIc6Ik6Q" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeLavEEeCQLtqIc6Ik6Q" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QeLqvEEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeL6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeMKvEEeCQLtqIc6Ik6Q" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeMavEEeCQLtqIc6Ik6Q" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeMqvEEeCQLtqIc6Ik6Q" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeM6vEEeCQLtqIc6Ik6Q" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeNKvEEeCQLtqIc6Ik6Q" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeNavEEeCQLtqIc6Ik6Q" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeNqvEEeCQLtqIc6Ik6Q" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeN6vEEeCQLtqIc6Ik6Q" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeOKvEEeCQLtqIc6Ik6Q" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m5QeOavEEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeOqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QeO6vEEeCQLtqIc6Ik6Q" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_m5QePKvEEeCQLtqIc6Ik6Q" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m5QePavEEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QePqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m5QeP6vEEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeQKvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeQavEEeCQLtqIc6Ik6Q" name="DataTypeAllocate">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeQqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeQ6vEEeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1" eType="_m5QeSqvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeRavEEeCQLtqIc6Ik6Q" name="hwDataType" ordered="false" lowerBound="1" eType="_m5QduqvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m7f5YKvEEeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_m5u-0qvEEeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeSqvEEeCQLtqIc6Ik6Q" name="SWDataType" abstract="true">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeS6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeTKvEEeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeTqvEEeCQLtqIc6Ik6Q" name="bitSize" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeUKvEEeCQLtqIc6Ik6Q" name="ComputeComplexity">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeUavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeUqvEEeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1" eType="_m5QeSqvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeVKvEEeCQLtqIc6Ik6Q" name="opCount" ordered="false" lowerBound="1" upperBound="-1" eType="_m5QeWKvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeVqvEEeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeWKvEEeCQLtqIc6Ik6Q" name="OperationCount">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeWavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeWqvEEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_m5QdxqvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeXKvEEeCQLtqIc6Ik6Q" name="count" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeXqvEEeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QeYKvEEeCQLtqIc6Ik6Q" name="CHControlFlow">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QeYavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeYqvEEeCQLtqIc6Ik6Q" name="base_ControlFlow" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ControlFlow"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeZKvEEeCQLtqIc6Ik6Q" name="rep" ordered="false" eType="_m9kV8KvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeZqvEEeCQLtqIc6Ik6Q" name="prob" ordered="false" eType="_m9kV8KvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeaKvEEeCQLtqIc6Ik6Q" name="order" ordered="false" eType="_m9kV8KvEEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m5QeaqvEEeCQLtqIc6Ik6Q" name="compComplex" ordered="false" upperBound="-1" eType="_m5QeUKvEEeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QebKvEEeCQLtqIc6Ik6Q" name="FloatSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QebavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QebqvEEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QecavEEeCQLtqIc6Ik6Q" name="FixedSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QecqvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5Qec6vEEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QedqvEEeCQLtqIc6Ik6Q" name="IntegerSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5Qed6vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QeeKvEEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5Qee6vEEeCQLtqIc6Ik6Q" name="CharSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QefKvEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m5QefavEEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_m5QegKvEEeCQLtqIc6Ik6Q" name="BooleanSWDataType" eSuperTypes="_m5QeSqvEEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5QegavEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m5u-0qvEEeCQLtqIc6Ik6Q" name="NFP_Integer" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m5u-06vEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_m9kV8KvEEeCQLtqIc6Ik6Q" name="Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m9kV8avEEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+            <contents xmi:type="ecore:EPackage" xmi:id="_dI9lIKvAEeCQLtqIc6Ik6Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dNYyIKvAEeCQLtqIc6Ik6Q" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyIavAEeCQLtqIc6Ik6Q" key="Version" value="0.1.12"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyIqvAEeCQLtqIc6Ik6Q" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyI6vAEeCQLtqIc6Ik6Q" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyJKvAEeCQLtqIc6Ik6Q" key="Date" value="2011-07-11"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dNYyJavAEeCQLtqIc6Ik6Q" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI9lIavAEeCQLtqIc6Ik6Q" name="CH_HwProcessor">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lIqvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9lI6vAEeCQLtqIc6Ik6Q" name="dataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9lJavAEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_dI9lKqvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dJMOoKvAEeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_dJMOoqvAEeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI9lKqvAEeCQLtqIc6Ik6Q" name="BasicOperation">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lK6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lLKvAEeCQLtqIc6Ik6Q" name="add"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lLavAEeCQLtqIc6Ik6Q" name="mul" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lLqvAEeCQLtqIc6Ik6Q" name="div" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lL6vAEeCQLtqIc6Ik6Q" name="mod" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lMKvAEeCQLtqIc6Ik6Q" name="shift" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dI9lhKvAEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lhavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI9lhqvAEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lh6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9liKvAEeCQLtqIc6Ik6Q" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9liavAEeCQLtqIc6Ik6Q" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9liqvAEeCQLtqIc6Ik6Q" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9li6vAEeCQLtqIc6Ik6Q" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI9ljKvAEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9ljavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9ljqvAEeCQLtqIc6Ik6Q" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lj6vAEeCQLtqIc6Ik6Q" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lkKvAEeCQLtqIc6Ik6Q" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lkavAEeCQLtqIc6Ik6Q" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lkqvAEeCQLtqIc6Ik6Q" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lk6vAEeCQLtqIc6Ik6Q" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9llKvAEeCQLtqIc6Ik6Q" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9llavAEeCQLtqIc6Ik6Q" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9llqvAEeCQLtqIc6Ik6Q" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI9ll6vAEeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lmKvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lmavAEeCQLtqIc6Ik6Q" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI9lmqvAEeCQLtqIc6Ik6Q" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dI9lm6vAEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lnKvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dI9lnavAEeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lnqvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI9ln6vAEeCQLtqIc6Ik6Q" name="DataTypeAllocate">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9loKvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI9loavAEeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1" eType="_dI9lqKvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI9lo6vAEeCQLtqIc6Ik6Q" name="hwDataType" ordered="false" lowerBound="1" eType="_dI9lrqvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dKSa0KvAEeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_dJMOoqvAEeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI9lqKvAEeCQLtqIc6Ik6Q" name="SWDataType" abstract="true">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lqavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI9lqqvAEeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9lrKvAEeCQLtqIc6Ik6Q" name="bitSize" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI9lrqvAEeCQLtqIc6Ik6Q" name="HWDateType">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI9lr6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI9lsKvAEeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9lsqvAEeCQLtqIc6Ik6Q" name="bitLength" ordered="false">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9ltKvAEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_dI9lKqvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI9ltqvAEeCQLtqIc6Ik6Q" name="executionCylces" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MMKvAEeCQLtqIc6Ik6Q" name="type" ordered="false" lowerBound="1" eType="_dI-MMqvAEeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dI-MMqvAEeCQLtqIc6Ik6Q" name="BasicDataType">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MM6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI-MNKvAEeCQLtqIc6Ik6Q" name="Signed"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI-MNavAEeCQLtqIc6Ik6Q" name="Integer" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI-MNqvAEeCQLtqIc6Ik6Q" name="Fixed_Point" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_dI-MN6vAEeCQLtqIc6Ik6Q" name="Float" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MOKvAEeCQLtqIc6Ik6Q" name="ComputeComplexity">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MOavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MOqvAEeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1" eType="_dI9lqKvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MPKvAEeCQLtqIc6Ik6Q" name="opCount" ordered="false" lowerBound="1" upperBound="-1" eType="_dI-MQKvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MPqvAEeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MQKvAEeCQLtqIc6Ik6Q" name="OperationCount">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MQavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MQqvAEeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_dI9lKqvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MRKvAEeCQLtqIc6Ik6Q" name="count" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MRqvAEeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MSKvAEeCQLtqIc6Ik6Q" name="CHControlFlow">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MSavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MSqvAEeCQLtqIc6Ik6Q" name="base_ControlFlow" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ControlFlow"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MTKvAEeCQLtqIc6Ik6Q" name="rep" ordered="false" eType="_dMyVMKvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MTqvAEeCQLtqIc6Ik6Q" name="prob" ordered="false" eType="_dMyVMKvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MUKvAEeCQLtqIc6Ik6Q" name="order" ordered="false" eType="_dMyVMKvAEeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dI-MUqvAEeCQLtqIc6Ik6Q" name="compComplex" ordered="false" upperBound="-1" eType="_dI-MOKvAEeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MVKvAEeCQLtqIc6Ik6Q" name="FloatSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MVavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MVqvAEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MWavAEeCQLtqIc6Ik6Q" name="FixedSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MWqvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MW6vAEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MXqvAEeCQLtqIc6Ik6Q" name="IntegerSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MX6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MYKvAEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MY6vAEeCQLtqIc6Ik6Q" name="CharSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MZKvAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dI-MZavAEeCQLtqIc6Ik6Q" name="signed" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_dI-MaKvAEeCQLtqIc6Ik6Q" name="BooleanSWDataType" eSuperTypes="_dI9lqKvAEeCQLtqIc6Ik6Q">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dI-MaavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dJMOoqvAEeCQLtqIc6Ik6Q" name="NFP_Integer" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dJMOo6vAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_dMyVMKvAEeCQLtqIc6Ik6Q" name="Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dMyVMavAEeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+            <contents xmi:type="ecore:EPackage" xmi:id="_307gMKu6EeCQLtqIc6Ik6Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_359KIKu6EeCQLtqIc6Ik6Q" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KIau6EeCQLtqIc6Ik6Q" key="Version" value="0.1.11"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KIqu6EeCQLtqIc6Ik6Q" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KI6u6EeCQLtqIc6Ik6Q" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KJKu6EeCQLtqIc6Ik6Q" key="Date" value="2011-07-11"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_359KJau6EeCQLtqIc6Ik6Q" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_307gMau6EeCQLtqIc6Ik6Q" name="CH_HwProcessor">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_307gMqu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_307gM6u6EeCQLtqIc6Ik6Q" name="dataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_307gNau6EeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_307gOqu6EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_31KJsKu6EeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_31KJsqu6EeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_307gOqu6EeCQLtqIc6Ik6Q" name="CHESS_Predictability_DeploymentConfiguration_HwDataTypes_HwOperation">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_307gO6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gPKu6EeCQLtqIc6Ik6Q" name="add"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gPau6EeCQLtqIc6Ik6Q" name="mul" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gPqu6EeCQLtqIc6Ik6Q" name="div" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gP6u6EeCQLtqIc6Ik6Q" name="mod" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_307gQKu6EeCQLtqIc6Ik6Q" name="shift" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_307glKu6EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_307glau6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_308HQKu6EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HQau6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HQqu6EeCQLtqIc6Ik6Q" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HQ6u6EeCQLtqIc6Ik6Q" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HRKu6EeCQLtqIc6Ik6Q" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HRau6EeCQLtqIc6Ik6Q" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_308HRqu6EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HR6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HSKu6EeCQLtqIc6Ik6Q" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HSau6EeCQLtqIc6Ik6Q" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HSqu6EeCQLtqIc6Ik6Q" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HS6u6EeCQLtqIc6Ik6Q" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HTKu6EeCQLtqIc6Ik6Q" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HTau6EeCQLtqIc6Ik6Q" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HTqu6EeCQLtqIc6Ik6Q" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HT6u6EeCQLtqIc6Ik6Q" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HUKu6EeCQLtqIc6Ik6Q" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_308HUau6EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HUqu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HU6u6EeCQLtqIc6Ik6Q" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_308HVKu6EeCQLtqIc6Ik6Q" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_308HVau6EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HVqu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_308HV6u6EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HWKu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308HWau6EeCQLtqIc6Ik6Q" name="DataTypeAllocate">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HWqu6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_308HW6u6EeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_308HXau6EeCQLtqIc6Ik6Q" name="hwDataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_313UUKu6EeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_31KJsqu6EeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308HYqu6EeCQLtqIc6Ik6Q" name="ComputeComplexity">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308HY6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_308HZKu6EeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HZqu6EeCQLtqIc6Ik6Q" name="opCount" ordered="false" lowerBound="1" upperBound="-1" eType="_308Haqu6EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HaKu6EeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308Haqu6EeCQLtqIc6Ik6Q" name="OperationCount">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308Ha6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HbKu6EeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_308Hcqu6EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_308Hbqu6EeCQLtqIc6Ik6Q" name="count" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HcKu6EeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308Hcqu6EeCQLtqIc6Ik6Q" name="SWDataType">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308Hc6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HdKu6EeCQLtqIc6Ik6Q" name="base_DataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_308Hdqu6EeCQLtqIc6Ik6Q" name="CHControlFlow">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_308Hd6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HeKu6EeCQLtqIc6Ik6Q" name="base_ControlFlow" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ControlFlow"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_308HgKu6EeCQLtqIc6Ik6Q" name="compComplex" ordered="false" upperBound="-1" eType="_308HYqu6EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_33nAwKu6EeCQLtqIc6Ik6Q" name="rep" ordered="false" eType="_33nn0Ku6EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_339mEKu6EeCQLtqIc6Ik6Q" name="prob" ordered="false" eType="_33nn0Ku6EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_34tM8Ku6EeCQLtqIc6Ik6Q" name="order" ordered="false" eType="_33nn0Ku6EeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_31KJsqu6EeCQLtqIc6Ik6Q" name="NFP_Integer" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_31KJs6u6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_33nn0Ku6EeCQLtqIc6Ik6Q" name="NFP_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_33nn0au6EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+            <contents xmi:type="ecore:EPackage" xmi:id="_rbxdEKu4EeCQLtqIc6Ik6Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rgOfQKu4EeCQLtqIc6Ik6Q" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfQau4EeCQLtqIc6Ik6Q" key="Version" value="0.1.10"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfQqu4EeCQLtqIc6Ik6Q" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfQ6u4EeCQLtqIc6Ik6Q" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfRKu4EeCQLtqIc6Ik6Q" key="Date" value="2011-07-11"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rgOfRau4EeCQLtqIc6Ik6Q" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbxdEau4EeCQLtqIc6Ik6Q" name="CH_HwProcessor">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbxdEqu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbxdE6u4EeCQLtqIc6Ik6Q" name="dataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbxdFau4EeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1" eType="_rbxdGqu4EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rcCi0Ku4EeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_rcDJ4Ku4EeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_rbxdGqu4EeCQLtqIc6Ik6Q" name="CHESS_Predictability_DeploymentConfiguration_HwDataTypes_HwOperation">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbxdG6u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdHKu4EeCQLtqIc6Ik6Q" name="add"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdHau4EeCQLtqIc6Ik6Q" name="mul" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdHqu4EeCQLtqIc6Ik6Q" name="div" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdH6u4EeCQLtqIc6Ik6Q" name="mod" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbxdIKu4EeCQLtqIc6Ik6Q" name="shift" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_rbyET6u4EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEUKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_rbyEUau4EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEUqu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEU6u4EeCQLtqIc6Ik6Q" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEVKu4EeCQLtqIc6Ik6Q" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEVau4EeCQLtqIc6Ik6Q" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEVqu4EeCQLtqIc6Ik6Q" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_rbyEV6u4EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEWKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEWau4EeCQLtqIc6Ik6Q" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEWqu4EeCQLtqIc6Ik6Q" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEW6u4EeCQLtqIc6Ik6Q" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEXKu4EeCQLtqIc6Ik6Q" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEXau4EeCQLtqIc6Ik6Q" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEXqu4EeCQLtqIc6Ik6Q" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEX6u4EeCQLtqIc6Ik6Q" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEYKu4EeCQLtqIc6Ik6Q" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEYau4EeCQLtqIc6Ik6Q" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_rbyEYqu4EeCQLtqIc6Ik6Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEY6u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEZKu4EeCQLtqIc6Ik6Q" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_rbyEZau4EeCQLtqIc6Ik6Q" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_rbyEZqu4EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEZ6u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_rbyEaKu4EeCQLtqIc6Ik6Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEaau4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbyEaqu4EeCQLtqIc6Ik6Q" name="DataTypeAllocate">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEa6u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEbKu4EeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEbqu4EeCQLtqIc6Ik6Q" name="hwDataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rc10EKu4EeCQLtqIc6Ik6Q" name="executionCycles" ordered="false" lowerBound="1" eType="_rcDJ4Ku4EeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbyEc6u4EeCQLtqIc6Ik6Q" name="ComputeComplexity">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEdKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEdau4EeCQLtqIc6Ik6Q" name="swDataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEd6u4EeCQLtqIc6Ik6Q" name="opCount" ordered="false" lowerBound="1" upperBound="-1" eType="_rbyEe6u4EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEeau4EeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbyEe6u4EeCQLtqIc6Ik6Q" name="OperationCount">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEfKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEfau4EeCQLtqIc6Ik6Q" name="operation" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rbyEf6u4EeCQLtqIc6Ik6Q" name="count" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEgau4EeCQLtqIc6Ik6Q" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_rbyEg6u4EeCQLtqIc6Ik6Q" name="CHControlFlow">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rbyEhKu4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEhau4EeCQLtqIc6Ik6Q" name="base_ControlFlow" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ControlFlow"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_rbyEjau4EeCQLtqIc6Ik6Q" name="compComplex" ordered="false" upperBound="-1" eType="_rbyEc6u4EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_reMe8Ku4EeCQLtqIc6Ik6Q" name="rep" ordered="false" eType="_reMe8qu4EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_rejEQKu4EeCQLtqIc6Ik6Q" name="prob" ordered="false" eType="_reMe8qu4EeCQLtqIc6Ik6Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_re_JIKu4EeCQLtqIc6Ik6Q" name="order" ordered="false" eType="_reMe8qu4EeCQLtqIc6Ik6Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_rcDJ4Ku4EeCQLtqIc6Ik6Q" name="NFP_Integer" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rcDJ4au4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_reMe8qu4EeCQLtqIc6Ik6Q" name="NFP_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_reMe86u4EeCQLtqIc6Ik6Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+            <contents xmi:type="ecore:EPackage" xmi:id="_8RPmkKlhEeC6PYeyk6yc0A" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8TdNEKlhEeC6PYeyk6yc0A" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNEalhEeC6PYeyk6yc0A" key="Version" value="0.1.9"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNEqlhEeC6PYeyk6yc0A" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNE6lhEeC6PYeyk6yc0A" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNFKlhEeC6PYeyk6yc0A" key="Date" value="2011-07-08"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8TdNFalhEeC6PYeyk6yc0A" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8RPmkalhEeC6PYeyk6yc0A" name="CH_HwProcessor">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPmkqlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HwComputing/HwProcessor"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPmk6lhEeC6PYeyk6yc0A" name="dataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPmlalhEeC6PYeyk6yc0A" name="operation" ordered="false" lowerBound="1" eType="_8RPmmqlhEeC6PYeyk6yc0A"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RfeMKlhEeC6PYeyk6yc0A" name="executionCycles" ordered="false" lowerBound="1" eType="_8RfeMqlhEeC6PYeyk6yc0A"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8RPmmqlhEeC6PYeyk6yc0A" name="CHESS_Predictability_DeploymentConfiguration_HwDataTypes_HwOperation">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPmm6lhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmnKlhEeC6PYeyk6yc0A" name="add"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmnalhEeC6PYeyk6yc0A" name="mul" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmnqlhEeC6PYeyk6yc0A" name="div" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmn6lhEeC6PYeyk6yc0A" name="mod" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPmoKlhEeC6PYeyk6yc0A" name="shift" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8RPm9KlhEeC6PYeyk6yc0A" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPm9alhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8RPm9qlhEeC6PYeyk6yc0A" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPm96lhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm-KlhEeC6PYeyk6yc0A" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm-alhEeC6PYeyk6yc0A" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm-qlhEeC6PYeyk6yc0A" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm-6lhEeC6PYeyk6yc0A" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8RPm_KlhEeC6PYeyk6yc0A" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPm_alhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm_qlhEeC6PYeyk6yc0A" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPm_6lhEeC6PYeyk6yc0A" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnAKlhEeC6PYeyk6yc0A" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnAalhEeC6PYeyk6yc0A" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnAqlhEeC6PYeyk6yc0A" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnA6lhEeC6PYeyk6yc0A" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnBKlhEeC6PYeyk6yc0A" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnBalhEeC6PYeyk6yc0A" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnBqlhEeC6PYeyk6yc0A" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_8RPnB6lhEeC6PYeyk6yc0A" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnCKlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnCalhEeC6PYeyk6yc0A" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_8RPnCqlhEeC6PYeyk6yc0A" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8RPnC6lhEeC6PYeyk6yc0A" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnDKlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8RPnDalhEeC6PYeyk6yc0A" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnDqlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8RPnD6lhEeC6PYeyk6yc0A" name="DataTypeAllocate">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnEKlhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnEalhEeC6PYeyk6yc0A" name="swDataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnE6lhEeC6PYeyk6yc0A" name="hwDataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8SdukKlhEeC6PYeyk6yc0A" name="executionCycles" ordered="false" lowerBound="1" eType="_8RfeMqlhEeC6PYeyk6yc0A"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8RPnGKlhEeC6PYeyk6yc0A" name="ComputeComplexity">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnGalhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnGqlhEeC6PYeyk6yc0A" name="swDataType" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnHKlhEeC6PYeyk6yc0A" name="opCount" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8RPnHqlhEeC6PYeyk6yc0A" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_8RPnIKlhEeC6PYeyk6yc0A" name="OperationCount">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RPnIalhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnIqlhEeC6PYeyk6yc0A" name="operation" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8RPnJKlhEeC6PYeyk6yc0A" name="count" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>

+                </eStructuralFeatures>

+                <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8RPnJqlhEeC6PYeyk6yc0A" name="base_Class" ordered="false" lowerBound="1">

+                  <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>

+                </eStructuralFeatures>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8RfeMqlhEeC6PYeyk6yc0A" name="NFP_Integer" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8RfeM6lhEeC6PYeyk6yc0A" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+            </contents>

+            <contents xmi:type="ecore:EPackage" xmi:id="_TUueEMe6Ed-7etIj5eTw0Q" name="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" nsPrefix="HardwareBaseline">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aDrpYMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpYce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpYse6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpY8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpZMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aDrpZce6Ed-7etIj5eTw0Q" key="Author" value=""/>

+              </eAnnotations>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_TUueEce6Ed-7etIj5eTw0Q" name="CH_HwProcessor">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUueEse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_7_W-sMCpEd-RT45s8cwWMg"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_1fQ1mpi4Ed-m0Oaexd_lJA"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_TUueFce6Ed-7etIj5eTw0Q" name="operation" ordered="false" lowerBound="1" eType="_TU4Qlse6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Zmn58Me6Ed-7etIj5eTw0Q" name="dataType" ordered="false" lowerBound="1" eType="_Zmn58se6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ZpAfkMe6Ed-7etIj5eTw0Q" name="executionCycles" ordered="false" lowerBound="1" eType="_ZpAfkse6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TUuer8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuesMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TUuesce6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuesse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUues8e6Ed-7etIj5eTw0Q" name="est"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuetMe6Ed-7etIj5eTw0Q" name="meas" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuetce6Ed-7etIj5eTw0Q" name="calc" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuetse6Ed-7etIj5eTw0Q" name="req" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TUuet8e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUueuMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUueuce6Ed-7etIj5eTw0Q" name="max"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUueuse6Ed-7etIj5eTw0Q" name="min" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUueu8e6Ed-7etIj5eTw0Q" name="mean" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuevMe6Ed-7etIj5eTw0Q" name="range" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuevce6Ed-7etIj5eTw0Q" name="percent" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuevse6Ed-7etIj5eTw0Q" name="distrib" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuev8e6Ed-7etIj5eTw0Q" name="determ" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuewMe6Ed-7etIj5eTw0Q" name="other" value="7"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuewce6Ed-7etIj5eTw0Q" name="variance" value="8"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TUuewse6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuew8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuexMe6Ed-7etIj5eTw0Q" name="incr"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TUuexce6Ed-7etIj5eTw0Q" name="decr" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TUuexse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuex8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TUueyMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUueyce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TUueyse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUuey8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4PEse6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_SchedPolicyKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4PE8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_4GfMYBFaEdyUJeMeN__D-A"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PFMe6Ed-7etIj5eTw0Q" name="EarliestDeadlineFirst"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PFce6Ed-7etIj5eTw0Q" name="FIFO" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PFse6Ed-7etIj5eTw0Q" name="FixedPriority" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PF8e6Ed-7etIj5eTw0Q" name="LeastLaxityFirst" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PGMe6Ed-7etIj5eTw0Q" name="RoundRobin" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PGce6Ed-7etIj5eTw0Q" name="TimeTableDriven" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PGse6Ed-7etIj5eTw0Q" name="Undef" value="6"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PG8e6Ed-7etIj5eTw0Q" name="Other" value="7"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TU4PHMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4PHce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4PKce6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_ProtectProtocolKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4PKse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HkE7wBFbEdyUJeMeN__D-A"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PK8e6Ed-7etIj5eTw0Q" name="FIFO"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PLMe6Ed-7etIj5eTw0Q" name="NoPreemption" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PLce6Ed-7etIj5eTw0Q" name="PriorityCeiling" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PLse6Ed-7etIj5eTw0Q" name="PriorityInheritance" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PL8e6Ed-7etIj5eTw0Q" name="StackBased" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PMMe6Ed-7etIj5eTw0Q" name="Undef" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PMce6Ed-7etIj5eTw0Q" name="Other" value="6"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4PWMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4PWce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PWse6Ed-7etIj5eTw0Q" name="s"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PW8e6Ed-7etIj5eTw0Q" name="tick" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PXMe6Ed-7etIj5eTw0Q" name="ms" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PXce6Ed-7etIj5eTw0Q" name="us" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PXse6Ed-7etIj5eTw0Q" name="min" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PX8e6Ed-7etIj5eTw0Q" name="hrs" value="5"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PYMe6Ed-7etIj5eTw0Q" name="day" value="6"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4Pece6Ed-7etIj5eTw0Q" name="MARTE_Library_GRM_BasicTypes_PeriodicServerKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Pese6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UP5HEBFbEdyUJeMeN__D-A"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Pe8e6Ed-7etIj5eTw0Q" name="Sporadic"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PfMe6Ed-7etIj5eTw0Q" name="Deferrable" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Pfce6Ed-7etIj5eTw0Q" name="Undef" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Pfse6Ed-7etIj5eTw0Q" name="Other" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4PtMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_PowerUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Ptce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ijhHUA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Ptse6Ed-7etIj5eTw0Q" name="W"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Pt8e6Ed-7etIj5eTw0Q" name="mW" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4PuMe6Ed-7etIj5eTw0Q" name="KW" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4P3se6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_TransmModeKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4P38e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_wBn7gBEBEdyx6M3BlUjlCQ"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P4Me6Ed-7etIj5eTw0Q" name="simplex"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P4ce6Ed-7etIj5eTw0Q" name="halfDuplex" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P4se6Ed-7etIj5eTw0Q" name="fullDuplex" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4P6se6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataTxRateUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4P68e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_DyNg0A4zEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P7Me6Ed-7etIj5eTw0Q" name="b_per_s"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P7ce6Ed-7etIj5eTw0Q" name="Kb_per_s" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P7se6Ed-7etIj5eTw0Q" name="Mb_per_s" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4P-8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4P_Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P_ce6Ed-7etIj5eTw0Q" name="Hz"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P_se6Ed-7etIj5eTw0Q" name="KHz" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4P_8e6Ed-7etIj5eTw0Q" name="MHz" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QAMe6Ed-7etIj5eTw0Q" name="GHz" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QAce6Ed-7etIj5eTw0Q" name="rpm" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QDce6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QDse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QD8e6Ed-7etIj5eTw0Q" name="bit"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QEMe6Ed-7etIj5eTw0Q" name="Byte" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QEce6Ed-7etIj5eTw0Q" name="KB" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QEse6Ed-7etIj5eTw0Q" name="MB" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QE8e6Ed-7etIj5eTw0Q" name="GB" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_TU4QGce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_UnlimitedNatural" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_UnlimitedNatural">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QGse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_DBKa8AnsEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QJMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HRM_HwLogical_HwComputing_ISA_Type">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QJce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_HVDSgBJyEdygQ5HMNSpiZw"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QJse6Ed-7etIj5eTw0Q" name="RISC"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QJ8e6Ed-7etIj5eTw0Q" name="CISC" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QKMe6Ed-7etIj5eTw0Q" name="VLIW" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QKce6Ed-7etIj5eTw0Q" name="SIMD" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QKse6Ed-7etIj5eTw0Q" name="other" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QK8e6Ed-7etIj5eTw0Q" name="undef" value="5"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QVce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HRM_HwLogical_HwStorage_HwMemory_CacheType">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QVse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_xj2TMBJ1Edy4d8Ako8RhiQ"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QV8e6Ed-7etIj5eTw0Q" name="data"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QWMe6Ed-7etIj5eTw0Q" name="instruction" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QWce6Ed-7etIj5eTw0Q" name="unified" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QWse6Ed-7etIj5eTw0Q" name="other" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QW8e6Ed-7etIj5eTw0Q" name="undef" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QZMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HRM_HwLogical_HwStorage_HwMemory_Repl_Policy">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4QZce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_jpkJoBJ1Edy4d8Ako8RhiQ"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QZse6Ed-7etIj5eTw0Q" name="LRU"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QZ8e6Ed-7etIj5eTw0Q" name="NFU" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QaMe6Ed-7etIj5eTw0Q" name="FIFO" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qace6Ed-7etIj5eTw0Q" name="random" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qase6Ed-7etIj5eTw0Q" name="other" value="4"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qa8e6Ed-7etIj5eTw0Q" name="undef" value="5"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QbMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HRM_HwLogical_HwStorage_HwMemory_WritePolicy">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qbce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_qkeGQBJ1Edy4d8Ako8RhiQ"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qbse6Ed-7etIj5eTw0Q" name="writeBack"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qb8e6Ed-7etIj5eTw0Q" name="writeThrough" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QcMe6Ed-7etIj5eTw0Q" name="other" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qcce6Ed-7etIj5eTw0Q" name="undef" value="3"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4Qlse6Ed-7etIj5eTw0Q" name="CHESSML_Predictability_DeploymentConfiguration_HwDataTypes_HwOperation">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Ql8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QmMe6Ed-7etIj5eTw0Q" name="add"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qmce6Ed-7etIj5eTw0Q" name="mul" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qmse6Ed-7etIj5eTw0Q" name="div" value="2"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qm8e6Ed-7etIj5eTw0Q" name="mod" value="3"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QnMe6Ed-7etIj5eTw0Q" name="shift" value="4"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EClass" xmi:id="_TU4Qnce6Ed-7etIj5eTw0Q" name="DataTypeAllocate">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qnse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+                <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_b7sgXLG3Ed-tmN4hwNCxXQ"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Z10zkMe6Ed-7etIj5eTw0Q" name="swDataType" ordered="false" lowerBound="1" eType="_Z10zkse6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Z4NZMMe6Ed-7etIj5eTw0Q" name="hwDataType" ordered="false" lowerBound="1" eType="_Zmn58se6Ed-7etIj5eTw0Q"/>

+                <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Z7evoMe6Ed-7etIj5eTw0Q" name="executionCycles" ordered="false" lowerBound="1" eType="_ZpAfkse6Ed-7etIj5eTw0Q"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4QsMe6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_Alloc_AllocationKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qsce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VxKdYBHbEdyWC5IKDhzksw"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qsse6Ed-7etIj5eTw0Q" name="structural"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qs8e6Ed-7etIj5eTw0Q" name="behavioral" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QtMe6Ed-7etIj5eTw0Q" name="hybrid" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4Qtce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_Alloc_AllocationNature">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qtse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VYSDUBHbEdyWC5IKDhzksw"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qt8e6Ed-7etIj5eTw0Q" name="spatialDistribution"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QuMe6Ed-7etIj5eTw0Q" name="timeScheduling" value="1"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EEnum" xmi:id="_TU4Qwce6Ed-7etIj5eTw0Q" name="MARTE_MARTE_Foundations_NFPs_ConstraintKind">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TU4Qwse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ZCtm0A4vEdysTsAUPnp57Q"/>

+                </eAnnotations>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qw8e6Ed-7etIj5eTw0Q" name="required"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4QxMe6Ed-7etIj5eTw0Q" name="offered" value="1"/>

+                <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_TU4Qxce6Ed-7etIj5eTw0Q" name="contract" value="2"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Zmn58se6Ed-7etIj5eTw0Q" name="HwDataType" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zmn588e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZpAfkse6Ed-7etIj5eTw0Q" name="NFP_Integer" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZpAfk8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Zq8ZQMe6Ed-7etIj5eTw0Q" name="Boolean" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq8ZQce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYAce6Ed-7etIj5eTw0Q" name="NFP_Real" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYAse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYBMe6Ed-7etIj5eTw0Q" name="NFP_String" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYBce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYB8e6Ed-7etIj5eTw0Q" name="NFP_Frequency" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYCMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_UDZSQBFSEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYCse6Ed-7etIj5eTw0Q" name="NFP_FrequencyInterval" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYC8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_DaoHAB14EdyUAqqkOL30sg"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYDce6Ed-7etIj5eTw0Q" name="NFP_DataSize" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYDse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_ZslYEMe6Ed-7etIj5eTw0Q" name="NFP_Natural" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZslYEce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                  <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Asy1gBFIEdyUJeMeN__D-A"/>

+                </eAnnotations>

+              </eClassifiers>

+              <eClassifiers xmi:type="ecore:EDataType" xmi:id="_Z10zkse6Ed-7etIj5eTw0Q" name="SwDataType" instanceClassName="java.lang.String">

+                <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z10zk8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML"/>

+              </eClassifiers>

+            </contents>

+          </eAnnotations>

+          <ownedComment xmi:type="uml:Comment" xmi:id="_X4KZkPDLEeWB2dX6SBTUpA" annotatedElement="_7_W-sMCpEd-RT45s8cwWMg">

+            <body>deprecated, to be replaced with MARTE HWProcessor</body>

+          </ownedComment>

+          <ownedComment xmi:type="uml:Comment" xmi:id="_c05j4PDMEeWB2dX6SBTUpA" annotatedElement="_P7m7INq0EeCqi515KFb0xQ _YZ784Nq1EeCqi515KFb0xQ">

+            <body>to be reviewed</body>

+          </ownedComment>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_6F2tEKlhEeC6PYeyk6yc0A" alias="Class">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </elementImport>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_Y4qjsKu3EeCQLtqIc6Ik6Q" alias="ControlFlow">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ControlFlow"/>

+          </elementImport>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_wlZ-cKu6EeCQLtqIc6Ik6Q" alias="DataType">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>

+          </elementImport>

+          <elementImport xmi:type="uml:ElementImport" xmi:id="_4T7iMCZBEeGlQNX6ViU5DA" alias="Comment">

+            <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </elementImport>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_7_W-sMCpEd-RT45s8cwWMg" name="CH_HwProcessor">

+            <generalization xmi:type="uml:Generalization" xmi:id="_a-JyIMCqEd-RT45s8cwWMg">

+              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_z0aH8BJyEdygQ5HMNSpiZw"/>

+            </generalization>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_WUlckOthEeCfNbchlqXqMg" name="utilization">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZJWDMOthEeCfNbchlqXqMg"/>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_P7m7INq0EeCqi515KFb0xQ" name="CH_HwBus">

+            <generalization xmi:type="uml:Generalization" xmi:id="_PBQWQNq1EeCqi515KFb0xQ">

+              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_7m3jYBKNEdy1B7_71Kp_8Q"/>

+            </generalization>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_wJcfINq1EeCqi515KFb0xQ" name="utilization">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1cwL0Nq1EeCqi515KFb0xQ"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1c580Nq1EeCqi515KFb0xQ" value="1"/>

+            </ownedAttribute>

+          </packagedElement>

+          <packagedElement xmi:type="uml:Stereotype" xmi:id="_YZ784Nq1EeCqi515KFb0xQ" name="CH_HwComputingResource">

+            <generalization xmi:type="uml:Generalization" xmi:id="_cfAU0Nq1EeCqi515KFb0xQ">

+              <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_NrpywBJzEdygQ5HMNSpiZw"/>

+            </generalization>

+            <ownedAttribute xmi:type="uml:Property" xmi:id="_3X_JcNq1EeCqi515KFb0xQ" name="utilization">

+              <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3X_Jctq1EeCqi515KFb0xQ"/>

+              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3X_Jcdq1EeCqi515KFb0xQ" value="1"/>

+            </ownedAttribute>

+          </packagedElement>

+        </packagedElement>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Profile" xmi:id="_WgatoDgVEd-68Z_bhNRGsA" name="RTComponentModel" URI="http://CHESS/Predictability/RTComponentModel" metaclassReference="_KH7CgDi7Ed-BkomQ9Pp_0A _d-TA0Dg0EeCE2sZUGxu35w _QvznAEAbEeCQKOeIf0epIQ _6dTt4NqwEeCgKdScvhOcyQ _T9iikDzbEeW-QPagynd_rQ _SwSXIG5xEeWR-9VJ87ZvRA">

+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p90hgDgVEd-68Z_bhNRGsA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+          <contents xmi:type="ecore:EPackage" xmi:id="_COpr0FbyEeCnrfzYY69gqg" name="RTComponentModel" nsURI="http://CHESS/Predictability/RTComponentModel" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CZiGIFbyEeCnrfzYY69gqg" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGIVbyEeCnrfzYY69gqg" key="Version" value="0.1.17"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGIlbyEeCnrfzYY69gqg" key="Comment" value="Removed duplicate attribute &quot;relativePriority&quot; in stereotype CHRtSpecification"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGI1byEeCnrfzYY69gqg" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGJFbyEeCnrfzYY69gqg" key="Date" value="2011-03-25"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CZiGJVbyEeCnrfzYY69gqg" key="Author" value="Stefano"/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_COpr0VbyEeCnrfzYY69gqg" name="CHRtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpr0lbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COpr01byEeCnrfzYY69gqg" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COpr41byEeCnrfzYY69gqg" name="slot" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COpr5VbyEeCnrfzYY69gqg" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_COpr6VbyEeCnrfzYY69gqg" name="protection" ordered="false">

+                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COpr7VbyEeCnrfzYY69gqg" name="context" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehavioralFeature"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CPGXwFbyEeCnrfzYY69gqg" name="WCET" ordered="false" eType="_CPGXwlbyEeCnrfzYY69gqg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CPsNoFbyEeCnrfzYY69gqg" name="localWCET" ordered="false" eType="_CPGXwlbyEeCnrfzYY69gqg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CQllgFbyEeCnrfzYY69gqg" name="relativePriority" ordered="false" eType="_CQllglbyEeCnrfzYY69gqg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CRCRcFbyEeCnrfzYY69gqg" name="ceiling" ordered="false" eType="_CQllglbyEeCnrfzYY69gqg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CRx4UFbyEeCnrfzYY69gqg" name="memorySizeFootprint" ordered="false" eType="_CRx4UlbyEeCnrfzYY69gqg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CSOkQFbyEeCnrfzYY69gqg" name="stackSize" ordered="false" eType="_CRx4UlbyEeCnrfzYY69gqg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CS-LIFbyEeCnrfzYY69gqg" name="heapSize" ordered="false" eType="_CRx4UlbyEeCnrfzYY69gqg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CUKd8FbyEeCnrfzYY69gqg" name="occKind" ordered="false" eType="_CUKd8lbyEeCnrfzYY69gqg"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_CUw64FbyEeCnrfzYY69gqg" name="rlDl" ordered="false" eType="_CPGXwlbyEeCnrfzYY69gqg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_COpsT1byEeCnrfzYY69gqg" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsUFbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsUVbyEeCnrfzYY69gqg" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsUlbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsU1byEeCnrfzYY69gqg" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsVFbyEeCnrfzYY69gqg" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsVVbyEeCnrfzYY69gqg" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsVlbyEeCnrfzYY69gqg" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsV1byEeCnrfzYY69gqg" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsWFbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsWVbyEeCnrfzYY69gqg" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsWlbyEeCnrfzYY69gqg" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsW1byEeCnrfzYY69gqg" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsXFbyEeCnrfzYY69gqg" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsXVbyEeCnrfzYY69gqg" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsXlbyEeCnrfzYY69gqg" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsX1byEeCnrfzYY69gqg" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsYFbyEeCnrfzYY69gqg" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsYVbyEeCnrfzYY69gqg" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsYlbyEeCnrfzYY69gqg" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsY1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsZFbyEeCnrfzYY69gqg" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsZVbyEeCnrfzYY69gqg" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_COpsZlbyEeCnrfzYY69gqg" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsZ1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_COpsaFbyEeCnrfzYY69gqg" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsaVbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsalbyEeCnrfzYY69gqg" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsa1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsbFbyEeCnrfzYY69gqg" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsbVbyEeCnrfzYY69gqg" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsblbyEeCnrfzYY69gqg" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsb1byEeCnrfzYY69gqg" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpscFbyEeCnrfzYY69gqg" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpscVbyEeCnrfzYY69gqg" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsclbyEeCnrfzYY69gqg" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_COpsc1byEeCnrfzYY69gqg" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsdFbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COpsgVbyEeCnrfzYY69gqg" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COpsglbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsg1byEeCnrfzYY69gqg" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpshFbyEeCnrfzYY69gqg" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpshVbyEeCnrfzYY69gqg" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpshlbyEeCnrfzYY69gqg" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COpsh1byEeCnrfzYY69gqg" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_COps2FbyEeCnrfzYY69gqg" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COps2VbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps2lbyEeCnrfzYY69gqg" name="Hz"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps21byEeCnrfzYY69gqg" name="KHz" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps3FbyEeCnrfzYY69gqg" name="MHz" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps3VbyEeCnrfzYY69gqg" name="GHz" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_COps3lbyEeCnrfzYY69gqg" name="rpm" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_COps31byEeCnrfzYY69gqg" name="CHRtPortSlot">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COps4FbyEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COps4VbyEeCnrfzYY69gqg" name="base_Slot" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_COps41byEeCnrfzYY69gqg" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_COpr0VbyEeCnrfzYY69gqg"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CPGXwlbyEeCnrfzYY69gqg" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CPGXw1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CQllglbyEeCnrfzYY69gqg" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CQllg1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CRx4UlbyEeCnrfzYY69gqg" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CRx4U1byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_CUKd8lbyEeCnrfzYY69gqg" name="ArrivalPattern" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CUKd81byEeCnrfzYY69gqg" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_3O6B0EApEeCgBsnPy5jVRQ" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_3OwQ0EApEeCgBsnPy5jVRQ/24" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3X_sYEApEeCgBsnPy5jVRQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sYUApEeCgBsnPy5jVRQ" key="Version" value="0.1.16"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sYkApEeCgBsnPy5jVRQ" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sY0ApEeCgBsnPy5jVRQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sZEApEeCgBsnPy5jVRQ" key="Date" value="2011-02-24"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3X_sZUApEeCgBsnPy5jVRQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_3O6B0UApEeCgBsnPy5jVRQ" name="CHRtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6B0kApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6B00ApEeCgBsnPy5jVRQ" source="duplicates"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6B10ApEeCgBsnPy5jVRQ" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6B50ApEeCgBsnPy5jVRQ" name="slot" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6B6UApEeCgBsnPy5jVRQ" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3O6B7UApEeCgBsnPy5jVRQ" name="protection" ordered="false">

+                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6B8UApEeCgBsnPy5jVRQ" name="context" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehavioralFeature"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3PWtwEApEeCgBsnPy5jVRQ" name="WCET" ordered="false" eType="_3PWtwkApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3PzZsEApEeCgBsnPy5jVRQ" name="localWCET" ordered="false" eType="_3PWtwkApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3QZPkEApEeCgBsnPy5jVRQ" name="relativePriority" ordered="false" eType="_3QZPkkApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3Q17gEApEeCgBsnPy5jVRQ" name="ceiling" ordered="false" eType="_3QZPkkApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3RcYcEApEeCgBsnPy5jVRQ" name="memorySizeFootprint" ordered="false" eType="_3RcYckApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3SCOUEApEeCgBsnPy5jVRQ" name="stackSize" ordered="false" eType="_3RcYckApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3Se6QEApEeCgBsnPy5jVRQ" name="heapSize" ordered="false" eType="_3RcYckApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3TrNEEApEeCgBsnPy5jVRQ" name="occKind" ordered="false" eType="_3TrNEkApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_3UH5AEApEeCgBsnPy5jVRQ" name="rlDl" ordered="false" eType="_3PWtwkApEeCgBsnPy5jVRQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3O6CU0ApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CVEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6CVUApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CVkApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CV0ApEeCgBsnPy5jVRQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CWEApEeCgBsnPy5jVRQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CWUApEeCgBsnPy5jVRQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CWkApEeCgBsnPy5jVRQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6CW0ApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CXEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CXUApEeCgBsnPy5jVRQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CXkApEeCgBsnPy5jVRQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CX0ApEeCgBsnPy5jVRQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CYEApEeCgBsnPy5jVRQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CYUApEeCgBsnPy5jVRQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CYkApEeCgBsnPy5jVRQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CY0ApEeCgBsnPy5jVRQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CZEApEeCgBsnPy5jVRQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CZUApEeCgBsnPy5jVRQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6CZkApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CZ0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CaEApEeCgBsnPy5jVRQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CaUApEeCgBsnPy5jVRQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3O6CakApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6Ca0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3O6CbEApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CbUApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6CbkApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6Cb0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CcEApEeCgBsnPy5jVRQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CcUApEeCgBsnPy5jVRQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CckApEeCgBsnPy5jVRQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6Cc0ApEeCgBsnPy5jVRQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CdEApEeCgBsnPy5jVRQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CdUApEeCgBsnPy5jVRQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CdkApEeCgBsnPy5jVRQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3O6Cd0ApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6CeEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6ChUApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6ChkApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6Ch0ApEeCgBsnPy5jVRQ" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CiEApEeCgBsnPy5jVRQ" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CiUApEeCgBsnPy5jVRQ" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6CikApEeCgBsnPy5jVRQ" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6Ci0ApEeCgBsnPy5jVRQ" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_3O6C3EApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6C3UApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C3kApEeCgBsnPy5jVRQ" name="Hz"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C30ApEeCgBsnPy5jVRQ" name="KHz" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C4EApEeCgBsnPy5jVRQ" name="MHz" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C4UApEeCgBsnPy5jVRQ" name="GHz" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_3O6C4kApEeCgBsnPy5jVRQ" name="rpm" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_3O6C40ApEeCgBsnPy5jVRQ" name="CHRtPortSlot">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3O6C5EApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6C5UApEeCgBsnPy5jVRQ" name="base_Slot" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_3O6C50ApEeCgBsnPy5jVRQ" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_3O6B0UApEeCgBsnPy5jVRQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3PWtwkApEeCgBsnPy5jVRQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PWtw0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3QZPkkApEeCgBsnPy5jVRQ" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3QZPk0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3RcYckApEeCgBsnPy5jVRQ" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3RcYc0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_3TrNEkApEeCgBsnPy5jVRQ" name="ArrivalPattern" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3TrNE0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_0wp2sEApEeCgBsnPy5jVRQ" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_0wgFsEApEeCgBsnPy5jVRQ/23" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_05vhQEApEeCgBsnPy5jVRQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhQUApEeCgBsnPy5jVRQ" key="Version" value="0.1.15"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhQkApEeCgBsnPy5jVRQ" key="Comment" value="updated CHRtSpecification with new PIM attributes"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhQ0ApEeCgBsnPy5jVRQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhREApEeCgBsnPy5jVRQ" key="Date" value="2011-02-24"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_05vhRUApEeCgBsnPy5jVRQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_0wp2sUApEeCgBsnPy5jVRQ" name="CHRtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp2skApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp2s0ApEeCgBsnPy5jVRQ" source="duplicates"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp2t0ApEeCgBsnPy5jVRQ" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp2x0ApEeCgBsnPy5jVRQ" name="slot" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp2yUApEeCgBsnPy5jVRQ" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0wp2zUApEeCgBsnPy5jVRQ" name="protection" ordered="false">

+                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp20UApEeCgBsnPy5jVRQ" name="context" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehavioralFeature"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0xGioEApEeCgBsnPy5jVRQ" name="WCET" ordered="false" eType="_0xGiokApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0xjOkEApEeCgBsnPy5jVRQ" name="localWCET" ordered="false" eType="_0xGiokApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0yJEcEApEeCgBsnPy5jVRQ" name="relativePriority" ordered="false" eType="_0yJEckApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0ylwYEApEeCgBsnPy5jVRQ" name="ceiling" ordered="false" eType="_0yJEckApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0zMNUEApEeCgBsnPy5jVRQ" name="memorySizeFootprint" ordered="false" eType="_0zMNUkApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_0zoSMEApEeCgBsnPy5jVRQ" name="stackSize" ordered="false" eType="_0zMNUkApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_00OvIEApEeCgBsnPy5jVRQ" name="heapSize" ordered="false" eType="_0zMNUkApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_01RQ8EApEeCgBsnPy5jVRQ" name="occKind" ordered="false" eType="_01RQ8kApEeCgBsnPy5jVRQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_01t84EApEeCgBsnPy5jVRQ" name="rlDl" ordered="false" eType="_0xGiokApEeCgBsnPy5jVRQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0wp3M0ApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3NEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3NUApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3NkApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3N0ApEeCgBsnPy5jVRQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3OEApEeCgBsnPy5jVRQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3OUApEeCgBsnPy5jVRQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3OkApEeCgBsnPy5jVRQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3O0ApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3PEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3PUApEeCgBsnPy5jVRQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3PkApEeCgBsnPy5jVRQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3P0ApEeCgBsnPy5jVRQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3QEApEeCgBsnPy5jVRQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3QUApEeCgBsnPy5jVRQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3QkApEeCgBsnPy5jVRQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3Q0ApEeCgBsnPy5jVRQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3REApEeCgBsnPy5jVRQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3RUApEeCgBsnPy5jVRQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3RkApEeCgBsnPy5jVRQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3R0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3SEApEeCgBsnPy5jVRQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3SUApEeCgBsnPy5jVRQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0wp3SkApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3S0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0wp3TEApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3TUApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3TkApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3T0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3UEApEeCgBsnPy5jVRQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3UUApEeCgBsnPy5jVRQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3UkApEeCgBsnPy5jVRQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3U0ApEeCgBsnPy5jVRQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3VEApEeCgBsnPy5jVRQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3VUApEeCgBsnPy5jVRQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3VkApEeCgBsnPy5jVRQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0wp3V0ApEeCgBsnPy5jVRQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3WEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3ZUApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3ZkApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3Z0ApEeCgBsnPy5jVRQ" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3aEApEeCgBsnPy5jVRQ" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3aUApEeCgBsnPy5jVRQ" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3akApEeCgBsnPy5jVRQ" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3a0ApEeCgBsnPy5jVRQ" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_0wp3vEApEeCgBsnPy5jVRQ" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3vUApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3vkApEeCgBsnPy5jVRQ" name="Hz"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3v0ApEeCgBsnPy5jVRQ" name="KHz" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3wEApEeCgBsnPy5jVRQ" name="MHz" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3wUApEeCgBsnPy5jVRQ" name="GHz" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_0wp3wkApEeCgBsnPy5jVRQ" name="rpm" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_0wp3w0ApEeCgBsnPy5jVRQ" name="CHRtPortSlot">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0wp3xEApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp3xUApEeCgBsnPy5jVRQ" name="base_Slot" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_0wp3x0ApEeCgBsnPy5jVRQ" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_0wp2sUApEeCgBsnPy5jVRQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0xGiokApEeCgBsnPy5jVRQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0xGio0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0yJEckApEeCgBsnPy5jVRQ" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0yJEc0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_0zMNUkApEeCgBsnPy5jVRQ" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0zMNU0ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_01RQ8kApEeCgBsnPy5jVRQ" name="ArrivalPattern" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_01RQ80ApEeCgBsnPy5jVRQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_WLInQUAbEeCQKOeIf0epIQ" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_WLInQEAbEeCQKOeIf0epIQ/22" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WSSYIEAbEeCQKOeIf0epIQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYIUAbEeCQKOeIf0epIQ" key="Version" value="0.1.14"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYIkAbEeCQKOeIf0epIQ" key="Comment" value="removed generalization from CHRtSpecifation due to MARTE bug in RtSpecification implementation"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYI0AbEeCQKOeIf0epIQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYJEAbEeCQKOeIf0epIQ" key="Date" value="2011-02-24"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WSSYJUAbEeCQKOeIf0epIQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_WLInQkAbEeCQKOeIf0epIQ" name="CHRtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInQ0AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLInREAbEeCQKOeIf0epIQ" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLInVEAbEeCQKOeIf0epIQ" name="slot" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLInVkAbEeCQKOeIf0epIQ" name="base_Comment" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WLlTMEAbEeCQKOeIf0epIQ" name="WCET" ordered="false" lowerBound="1" eType="_WLlTMkAbEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WMB_IEAbEeCQKOeIf0epIQ" name="localWCET" ordered="false" eType="_WLlTMkAbEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WMn1AEAbEeCQKOeIf0epIQ" name="relativePriority" ordered="false" eType="_WMn1AkAbEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WNEg8EAbEeCQKOeIf0epIQ" name="ceiling" ordered="false" eType="_WMn1AkAbEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WNq94EAbEeCQKOeIf0epIQ" name="memorySizeFootprint" ordered="false" eType="_WNq94kAbEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WOHp0EAbEeCQKOeIf0epIQ" name="stackSize" ordered="false" eType="_WNq94kAbEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WOtfsEAbEeCQKOeIf0epIQ" name="heapSize" ordered="false" eType="_WNq94kAbEeCQKOeIf0epIQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLInuEAbEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInuUAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLInukAbEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInu0AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInvEAbEeCQKOeIf0epIQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInvUAbEeCQKOeIf0epIQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInvkAbEeCQKOeIf0epIQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInv0AbEeCQKOeIf0epIQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLInwEAbEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInwUAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInwkAbEeCQKOeIf0epIQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInw0AbEeCQKOeIf0epIQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInxEAbEeCQKOeIf0epIQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInxUAbEeCQKOeIf0epIQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInxkAbEeCQKOeIf0epIQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInx0AbEeCQKOeIf0epIQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInyEAbEeCQKOeIf0epIQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInyUAbEeCQKOeIf0epIQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInykAbEeCQKOeIf0epIQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLIny0AbEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLInzEAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInzUAbEeCQKOeIf0epIQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLInzkAbEeCQKOeIf0epIQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLInz0AbEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn0EAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLIn0UAbEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn0kAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLIn00AbEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn1EAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn1UAbEeCQKOeIf0epIQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn1kAbEeCQKOeIf0epIQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn10AbEeCQKOeIf0epIQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn2EAbEeCQKOeIf0epIQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn2UAbEeCQKOeIf0epIQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn2kAbEeCQKOeIf0epIQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn20AbEeCQKOeIf0epIQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLIn3EAbEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn3UAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_WLIn6kAbEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn60AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn7EAbEeCQKOeIf0epIQ" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn7UAbEeCQKOeIf0epIQ" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn7kAbEeCQKOeIf0epIQ" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn70AbEeCQKOeIf0epIQ" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_WLIn8EAbEeCQKOeIf0epIQ" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_WLIn8UAbEeCQKOeIf0epIQ" name="CHRtPortSlot">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLIn8kAbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLIn80AbEeCQKOeIf0epIQ" name="base_Slot" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WLIn9UAbEeCQKOeIf0epIQ" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_WLInQkAbEeCQKOeIf0epIQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WLlTMkAbEeCQKOeIf0epIQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WLlTM0AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WMn1AkAbEeCQKOeIf0epIQ" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WMn1A0AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WNq94kAbEeCQKOeIf0epIQ" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WNq940AbEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_4g1jkEAEEeCQKOeIf0epIQ" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_4giBkEAEEeCQKOeIf0epIQ/21" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4n1jcEAEEeCQKOeIf0epIQ" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jcUAEEeCQKOeIf0epIQ" key="Version" value="0.1.13"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jckAEEeCQKOeIf0epIQ" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jc0AEEeCQKOeIf0epIQ" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jdEAEEeCQKOeIf0epIQ" key="Date" value="2011-02-24"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4n1jdUAEEeCQKOeIf0epIQ" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_4g1jkUAEEeCQKOeIf0epIQ" name="CHRtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1jkkAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_4g1jk0AEEeCQKOeIf0epIQ" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_4g1jo0AEEeCQKOeIf0epIQ" name="slot" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4hbZcEAEEeCQKOeIf0epIQ" name="WCET" ordered="false" lowerBound="1" eType="_4hbZckAEEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4h4FYEAEEeCQKOeIf0epIQ" name="localWCET" ordered="false" eType="_4hbZckAEEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4insQEAEEeCQKOeIf0epIQ" name="relativePriority" ordered="false" eType="_4insQkAEEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4jEYMEAEEeCQKOeIf0epIQ" name="ceiling" ordered="false" eType="_4insQkAEEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4jqOEEAEEeCQKOeIf0epIQ" name="memorySizeFootprint" ordered="false" eType="_4jqOEkAEEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4kG6AEAEEeCQKOeIf0epIQ" name="stackSize" ordered="false" eType="_4jqOEkAEEeCQKOeIf0epIQ"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4ktW8EAEEeCQKOeIf0epIQ" name="heapSize" ordered="false" eType="_4jqOEkAEEeCQKOeIf0epIQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4g1kBkAEEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kB0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kCEAEEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kCUAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kCkAEEeCQKOeIf0epIQ" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kC0AEEeCQKOeIf0epIQ" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kDEAEEeCQKOeIf0epIQ" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kDUAEEeCQKOeIf0epIQ" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kDkAEEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kD0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kEEAEEeCQKOeIf0epIQ" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kEUAEEeCQKOeIf0epIQ" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kEkAEEeCQKOeIf0epIQ" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kE0AEEeCQKOeIf0epIQ" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kFEAEEeCQKOeIf0epIQ" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kFUAEEeCQKOeIf0epIQ" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kFkAEEeCQKOeIf0epIQ" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kF0AEEeCQKOeIf0epIQ" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kGEAEEeCQKOeIf0epIQ" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kGUAEEeCQKOeIf0epIQ" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kGkAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kG0AEEeCQKOeIf0epIQ" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kHEAEEeCQKOeIf0epIQ" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4g1kHUAEEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kHkAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4g1kH0AEEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kIEAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kIUAEEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kIkAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kI0AEEeCQKOeIf0epIQ" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kJEAEEeCQKOeIf0epIQ" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kJUAEEeCQKOeIf0epIQ" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kJkAEEeCQKOeIf0epIQ" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kJ0AEEeCQKOeIf0epIQ" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kKEAEEeCQKOeIf0epIQ" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kKUAEEeCQKOeIf0epIQ" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4g1kKkAEEeCQKOeIf0epIQ" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kK0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4g1kOEAEEeCQKOeIf0epIQ" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kOUAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kOkAEEeCQKOeIf0epIQ" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kO0AEEeCQKOeIf0epIQ" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kPEAEEeCQKOeIf0epIQ" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kPUAEEeCQKOeIf0epIQ" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4g1kPkAEEeCQKOeIf0epIQ" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_4g1kP0AEEeCQKOeIf0epIQ" name="CHRtPortSlot">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4g1kQEAEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_4g1kQUAEEeCQKOeIf0epIQ" name="base_Slot" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_4g1kQ0AEEeCQKOeIf0epIQ" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_4g1jkUAEEeCQKOeIf0epIQ"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4hbZckAEEeCQKOeIf0epIQ" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4hbZc0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4insQkAEEeCQKOeIf0epIQ" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4insQ0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_4jqOEkAEEeCQKOeIf0epIQ" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4jqOE0AEEeCQKOeIf0epIQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_5RCccDg4EeCE2sZUGxu35w" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_5Q4rcDg4EeCE2sZUGxu35w/20" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5WGioDg4EeCE2sZUGxu35w" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGioTg4EeCE2sZUGxu35w" key="Version" value="0.1.12"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGiojg4EeCE2sZUGxu35w" key="Comment" value="Temporary patch: removed extension from CHRtSpecification to RtSpecification due to a bug in MARTE."/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGiozg4EeCE2sZUGxu35w" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGipDg4EeCE2sZUGxu35w" key="Date" value="2011-02-14"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5WGipTg4EeCE2sZUGxu35w" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_5RCccTg4EeCE2sZUGxu35w" name="CHRtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCccjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_5RCcczg4EeCE2sZUGxu35w" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_5RCcgzg4EeCE2sZUGxu35w" name="slot" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5RehUDg4EeCE2sZUGxu35w" name="WCET" ordered="false" lowerBound="1" eType="_5RehUjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5RyDUDg4EeCE2sZUGxu35w" name="localWCET" ordered="false" eType="_5RehUjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5SE-QDg4EeCE2sZUGxu35w" name="relativePriority" ordered="false" eType="_5SE-Qjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5SX5MDg4EeCE2sZUGxu35w" name="ceiling" ordered="false" eType="_5SE-Qjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5S0lIDg4EeCE2sZUGxu35w" name="memorySizeFootprint" ordered="false" eType="_5S0lIjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5THgEDg4EeCE2sZUGxu35w" name="stackSize" ordered="false" eType="_5S0lIjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_5T3G8Dg4EeCE2sZUGxu35w" name="heapSize" ordered="false" eType="_5S0lIjg4EeCE2sZUGxu35w"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RCc5jg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc5zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCc6Dg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc6Tg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc6jg4EeCE2sZUGxu35w" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc6zg4EeCE2sZUGxu35w" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc7Dg4EeCE2sZUGxu35w" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc7Tg4EeCE2sZUGxu35w" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCc7jg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc7zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc8Dg4EeCE2sZUGxu35w" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc8Tg4EeCE2sZUGxu35w" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc8jg4EeCE2sZUGxu35w" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc8zg4EeCE2sZUGxu35w" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc9Dg4EeCE2sZUGxu35w" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc9Tg4EeCE2sZUGxu35w" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc9jg4EeCE2sZUGxu35w" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc9zg4EeCE2sZUGxu35w" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc-Dg4EeCE2sZUGxu35w" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCc-Tg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc-jg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc-zg4EeCE2sZUGxu35w" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCc_Dg4EeCE2sZUGxu35w" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RCc_Tg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCc_jg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RCc_zg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdADg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCdATg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdAjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdAzg4EeCE2sZUGxu35w" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdBDg4EeCE2sZUGxu35w" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdBTg4EeCE2sZUGxu35w" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdBjg4EeCE2sZUGxu35w" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdBzg4EeCE2sZUGxu35w" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdCDg4EeCE2sZUGxu35w" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdCTg4EeCE2sZUGxu35w" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RCdCjg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdCzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_5RCdGDg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdGTg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdGjg4EeCE2sZUGxu35w" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdGzg4EeCE2sZUGxu35w" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdHDg4EeCE2sZUGxu35w" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdHTg4EeCE2sZUGxu35w" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_5RCdHjg4EeCE2sZUGxu35w" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_5RCdHzg4EeCE2sZUGxu35w" name="CHRtPortSlot">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RCdIDg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_5RCdITg4EeCE2sZUGxu35w" name="base_Slot" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_5RCdIzg4EeCE2sZUGxu35w" name="rtSpecification" ordered="false" upperBound="-1" eType="_5RCccTg4EeCE2sZUGxu35w"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5RehUjg4EeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5RehUzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5SE-Qjg4EeCE2sZUGxu35w" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5SE-Qzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_5S0lIjg4EeCE2sZUGxu35w" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5S0lIzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_meUkUTg4EeCE2sZUGxu35w" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_meUkUDg4EeCE2sZUGxu35w/19" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mjrlcDg4EeCE2sZUGxu35w" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrlcTg4EeCE2sZUGxu35w" key="Version" value="0.1.11"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrlcjg4EeCE2sZUGxu35w" key="Comment" value="Renamed CHRtSpecification, removed concurrencyKind"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrlczg4EeCE2sZUGxu35w" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrldDg4EeCE2sZUGxu35w" key="Date" value="2011-02-14"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mjrldTg4EeCE2sZUGxu35w" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_meUkUjg4EeCE2sZUGxu35w" name="CHRtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUkUzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_meUkVDg4EeCE2sZUGxu35w" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_meUkZDg4EeCE2sZUGxu35w" name="slot" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mfELMDg4EeCE2sZUGxu35w" name="WCET" ordered="false" lowerBound="1" eType="_mfELMjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mfXGIDg4EeCE2sZUGxu35w" name="localWCET" ordered="false" eType="_mfELMjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mfqBEDg4EeCE2sZUGxu35w" name="relativePriority" ordered="false" eType="_mfqBEjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mgGtADg4EeCE2sZUGxu35w" name="ceiling" ordered="false" eType="_mfqBEjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mgaPADg4EeCE2sZUGxu35w" name="memorySizeFootprint" ordered="false" eType="_mgaPAjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mg2T4Dg4EeCE2sZUGxu35w" name="stackSize" ordered="false" eType="_mgaPAjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_mhJ14Dg4EeCE2sZUGxu35w" name="heapSize" ordered="false" eType="_mgaPAjg4EeCE2sZUGxu35w"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_meUkxzg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUkyDg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUkyTg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUkyjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUkyzg4EeCE2sZUGxu35w" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUkzDg4EeCE2sZUGxu35w" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUkzTg4EeCE2sZUGxu35w" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUkzjg4EeCE2sZUGxu35w" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUkzzg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk0Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk0Tg4EeCE2sZUGxu35w" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk0jg4EeCE2sZUGxu35w" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk0zg4EeCE2sZUGxu35w" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk1Dg4EeCE2sZUGxu35w" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk1Tg4EeCE2sZUGxu35w" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk1jg4EeCE2sZUGxu35w" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk1zg4EeCE2sZUGxu35w" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk2Dg4EeCE2sZUGxu35w" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk2Tg4EeCE2sZUGxu35w" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUk2jg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk2zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk3Dg4EeCE2sZUGxu35w" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk3Tg4EeCE2sZUGxu35w" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_meUk3jg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk3zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_meUk4Dg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk4Tg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUk4jg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk4zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk5Dg4EeCE2sZUGxu35w" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk5Tg4EeCE2sZUGxu35w" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk5jg4EeCE2sZUGxu35w" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk5zg4EeCE2sZUGxu35w" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk6Dg4EeCE2sZUGxu35w" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk6Tg4EeCE2sZUGxu35w" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk6jg4EeCE2sZUGxu35w" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_meUk6zg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk7Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_meUk-Tg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUk-jg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk-zg4EeCE2sZUGxu35w" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk_Dg4EeCE2sZUGxu35w" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk_Tg4EeCE2sZUGxu35w" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk_jg4EeCE2sZUGxu35w" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_meUk_zg4EeCE2sZUGxu35w" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_meUlADg4EeCE2sZUGxu35w" name="CHRtPortSlot">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_meUlATg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_meUlAjg4EeCE2sZUGxu35w" name="base_Slot" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_meUlBDg4EeCE2sZUGxu35w" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_meUkUjg4EeCE2sZUGxu35w"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_mfELMjg4EeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mfELMzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_mfqBEjg4EeCE2sZUGxu35w" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mfqBEzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_mgaPAjg4EeCE2sZUGxu35w" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mgaPAzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_G7lWUDg4EeCE2sZUGxu35w" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_G7blUDg4EeCE2sZUGxu35w/18" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HAWhkDg4EeCE2sZUGxu35w" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhkTg4EeCE2sZUGxu35w" key="Version" value="0.1.10"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhkjg4EeCE2sZUGxu35w" key="Comment" value="AddedCHRtPortSlot"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhkzg4EeCE2sZUGxu35w" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhlDg4EeCE2sZUGxu35w" key="Date" value="2011-02-14"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HAWhlTg4EeCE2sZUGxu35w" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G7lWUTg4EeCE2sZUGxu35w" name="CH_RtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lWUjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G7lWUzg4EeCE2sZUGxu35w" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G7lWXTg4EeCE2sZUGxu35w" name="concPolicy" ordered="false">

+                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G7lWZTg4EeCE2sZUGxu35w" name="slot" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G8CCQDg4EeCE2sZUGxu35w" name="WCET" ordered="false" lowerBound="1" eType="_G8CCQjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G8U9MDg4EeCE2sZUGxu35w" name="localWCET" ordered="false" eType="_G8CCQjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G8xpIDg4EeCE2sZUGxu35w" name="relativePriority" ordered="false" eType="_G8xpIjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G9EkEDg4EeCE2sZUGxu35w" name="ceiling" ordered="false" eType="_G8xpIjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G9XfADg4EeCE2sZUGxu35w" name="memorySizeFootprint" ordered="false" eType="_G9XfAjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G9rBADg4EeCE2sZUGxu35w" name="stackSize" ordered="false" eType="_G9XfAjg4EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G-HF4Dg4EeCE2sZUGxu35w" name="heapSize" ordered="false" eType="_G9XfAjg4EeCE2sZUGxu35w"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7lWyDg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lWyTg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lWyjg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lWyzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lWzDg4EeCE2sZUGxu35w" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lWzTg4EeCE2sZUGxu35w" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lWzjg4EeCE2sZUGxu35w" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lWzzg4EeCE2sZUGxu35w" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lW0Dg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW0Tg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW0jg4EeCE2sZUGxu35w" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW0zg4EeCE2sZUGxu35w" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW1Dg4EeCE2sZUGxu35w" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW1Tg4EeCE2sZUGxu35w" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW1jg4EeCE2sZUGxu35w" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW1zg4EeCE2sZUGxu35w" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW2Dg4EeCE2sZUGxu35w" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW2Tg4EeCE2sZUGxu35w" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW2jg4EeCE2sZUGxu35w" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lW2zg4EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW3Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW3Tg4EeCE2sZUGxu35w" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW3jg4EeCE2sZUGxu35w" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7lW3zg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW4Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7lW4Tg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW4jg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lW4zg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW5Dg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW5Tg4EeCE2sZUGxu35w" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW5jg4EeCE2sZUGxu35w" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW5zg4EeCE2sZUGxu35w" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW6Dg4EeCE2sZUGxu35w" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW6Tg4EeCE2sZUGxu35w" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW6jg4EeCE2sZUGxu35w" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW6zg4EeCE2sZUGxu35w" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G7lW7Dg4EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW7Tg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_G7lW-jg4EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lW-zg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW_Dg4EeCE2sZUGxu35w" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW_Tg4EeCE2sZUGxu35w" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW_jg4EeCE2sZUGxu35w" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lW_zg4EeCE2sZUGxu35w" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_G7lXADg4EeCE2sZUGxu35w" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_G7lXATg4EeCE2sZUGxu35w" name="CHRtPortSlot">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G7lXAjg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="__uhSsDg3EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G7lXAzg4EeCE2sZUGxu35w" name="base_Slot" ordered="false" lowerBound="1">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G7lXBTg4EeCE2sZUGxu35w" name="cH_RtSpecification" ordered="false" upperBound="-1" eType="_G7lWUTg4EeCE2sZUGxu35w"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G8CCQjg4EeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G8CCQzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G8xpIjg4EeCE2sZUGxu35w" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G8xpIzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_G9XfAjg4EeCE2sZUGxu35w" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G9XfAzg4EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_xO8yIDg0EeCE2sZUGxu35w" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_xOzBIDg0EeCE2sZUGxu35w/17" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xTRRcTg0EeCE2sZUGxu35w" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRcjg0EeCE2sZUGxu35w" key="Version" value="0.1.9"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRczg0EeCE2sZUGxu35w" key="Comment" value="Updated CH_RtSpecification"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRdDg0EeCE2sZUGxu35w" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRdTg0EeCE2sZUGxu35w" key="Date" value="2011-02-14"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xTRRdjg0EeCE2sZUGxu35w" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_xO8yITg0EeCE2sZUGxu35w" name="CH_RtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yIjg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/RtSpecification"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xO8yIzg0EeCE2sZUGxu35w" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xO8yLTg0EeCE2sZUGxu35w" name="concPolicy" ordered="false">

+                <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM/CallConcurrencyKind"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xO8yNTg0EeCE2sZUGxu35w" name="slot" ordered="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xPPtEDg0EeCE2sZUGxu35w" name="WCET" ordered="false" lowerBound="1" eType="_xPPtEjg0EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xPioADg0EeCE2sZUGxu35w" name="localWCET" ordered="false" eType="_xPPtEjg0EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xP_T8Dg0EeCE2sZUGxu35w" name="relativePriority" ordered="false" eType="_xP_T8jg0EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xQSO4Dg0EeCE2sZUGxu35w" name="ceiling" ordered="false" eType="_xP_T8jg0EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xQu60Dg0EeCE2sZUGxu35w" name="memorySizeFootprint" ordered="false" eType="_xQu60jg0EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xRB1wDg0EeCE2sZUGxu35w" name="stackSize" ordered="false" eType="_xQu60jg0EeCE2sZUGxu35w"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xRehsDg0EeCE2sZUGxu35w" name="heapSize" ordered="false" eType="_xQu60jg0EeCE2sZUGxu35w"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xO8ymDg0EeCE2sZUGxu35w" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ymTg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8ymjg0EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ymzg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ynDg0EeCE2sZUGxu35w" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ynTg0EeCE2sZUGxu35w" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ynjg0EeCE2sZUGxu35w" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ynzg0EeCE2sZUGxu35w" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8yoDg0EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yoTg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yojg0EeCE2sZUGxu35w" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yozg0EeCE2sZUGxu35w" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ypDg0EeCE2sZUGxu35w" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ypTg0EeCE2sZUGxu35w" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ypjg0EeCE2sZUGxu35w" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ypzg0EeCE2sZUGxu35w" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yqDg0EeCE2sZUGxu35w" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yqTg0EeCE2sZUGxu35w" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yqjg0EeCE2sZUGxu35w" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8yqzg0EeCE2sZUGxu35w" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yrDg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yrTg0EeCE2sZUGxu35w" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yrjg0EeCE2sZUGxu35w" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xO8yrzg0EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ysDg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xO8ysTg0EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="int">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ysjg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8yszg0EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8ytDg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ytTg0EeCE2sZUGxu35w" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ytjg0EeCE2sZUGxu35w" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8ytzg0EeCE2sZUGxu35w" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yuDg0EeCE2sZUGxu35w" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yuTg0EeCE2sZUGxu35w" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yujg0EeCE2sZUGxu35w" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yuzg0EeCE2sZUGxu35w" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xO8yvDg0EeCE2sZUGxu35w" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yvTg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_xO8yyjg0EeCE2sZUGxu35w" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xO8yyzg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yzDg0EeCE2sZUGxu35w" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yzTg0EeCE2sZUGxu35w" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yzjg0EeCE2sZUGxu35w" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8yzzg0EeCE2sZUGxu35w" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_xO8y0Dg0EeCE2sZUGxu35w" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xPPtEjg0EeCE2sZUGxu35w" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xPPtEzg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xP_T8jg0EeCE2sZUGxu35w" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xP_T8zg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_xQu60jg0EeCE2sZUGxu35w" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xQu60zg0EeCE2sZUGxu35w" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+          <contents xmi:type="ecore:EPackage" xmi:id="_UVZQ4Me6Ed-7etIj5eTw0Q" name="RTComponentModel" nsURI="http://CHESS.Predictability/schemas/RTComponentModel/_T3cwoMe6Ed-7etIj5eTw0Q/16" nsPrefix="RTComponentModel">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a02noMe6Ed-7etIj5eTw0Q" source="PapyrusVersion">

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02noce6Ed-7etIj5eTw0Q" key="Version" value="0.1.8"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02nose6Ed-7etIj5eTw0Q" key="Comment" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02no8e6Ed-7etIj5eTw0Q" key="Copyright" value=""/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02npMe6Ed-7etIj5eTw0Q" key="Date" value="2010-09-24"/>

+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a02npce6Ed-7etIj5eTw0Q" key="Author" value=""/>

+            </eAnnotations>

+            <eClassifiers xmi:type="ecore:EClass" xmi:id="_UVZQ4ce6Ed-7etIj5eTw0Q" name="CH_RtSpecification">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZQ4se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Y4GZwDcwEd-mWLzcI61s7Q"/>

+              <eSuperTypes xmi:type="ecore:EClass" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_1R2sA5i4Ed-m0Oaexd_lJA"/>

+              <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UVZQ48e6Ed-7etIj5eTw0Q" name="partWithPort" ordered="false" unique="false">

+                <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+              </eStructuralFeatures>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UVZQ78e6Ed-7etIj5eTw0Q" name="concPolicy" ordered="false" eType="_UVZSb8e6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aSb3EMe6Ed-7etIj5eTw0Q" name="WCET" ordered="false" lowerBound="1" eType="_aSb3Ese6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aU9moMe6Ed-7etIj5eTw0Q" name="localWCET" ordered="false" eType="_aSb3Ese6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aYFzIMe6Ed-7etIj5eTw0Q" name="relativePriority" ordered="false" eType="_aYFzIse6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aaeYwMe6Ed-7etIj5eTw0Q" name="ceiling" ordered="false" eType="_aYFzIse6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_adnMUMe6Ed-7etIj5eTw0Q" name="memorySizeFootprint" ordered="false" eType="_adnMUse6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_agI74Me6Ed-7etIj5eTw0Q" name="stackSize" ordered="false" eType="_adnMUse6Ed-7etIj5eTw0Q"/>

+              <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ajRIYMe6Ed-7etIj5eTw0Q" name="heapSize" ordered="false" eType="_adnMUse6Ed-7etIj5eTw0Q"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRKMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Boolean" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Boolean">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRKce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Ddte8AnqEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRqce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_DataTypes_VSL_Expression" instanceClassName="MARTE_Library_MARTE_DataTypes_VSL_Expression">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRqse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_bManMBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZRq8e6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_SourceKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRrMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_oMZzEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRrce6Ed-7etIj5eTw0Q" name="est"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRrse6Ed-7etIj5eTw0Q" name="meas" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRr8e6Ed-7etIj5eTw0Q" name="calc" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRsMe6Ed-7etIj5eTw0Q" name="req" value="3"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZRsce6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_StatisticalQualifierKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRsse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0N52EBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRs8e6Ed-7etIj5eTw0Q" name="max"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRtMe6Ed-7etIj5eTw0Q" name="min" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRtce6Ed-7etIj5eTw0Q" name="mean" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRtse6Ed-7etIj5eTw0Q" name="range" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRt8e6Ed-7etIj5eTw0Q" name="percent" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRuMe6Ed-7etIj5eTw0Q" name="distrib" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRuce6Ed-7etIj5eTw0Q" name="determ" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRuse6Ed-7etIj5eTw0Q" name="other" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRu8e6Ed-7etIj5eTw0Q" name="variance" value="8"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZRvMe6Ed-7etIj5eTw0Q" name="MARTE_Library_BasicNFP_Types_DirectionKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRvce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_vvfxEBD-EdyybZnLxHsjyA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRvse6Ed-7etIj5eTw0Q" name="incr"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRv8e6Ed-7etIj5eTw0Q" name="decr" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRwMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Real" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Real">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRwce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_beo90AnpEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRwse6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_Integer" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_Integer">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRw8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_HJ1zcAnfEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZRxMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_TimeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRxce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Iaa3gA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRxse6Ed-7etIj5eTw0Q" name="s"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRx8e6Ed-7etIj5eTw0Q" name="tick" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRyMe6Ed-7etIj5eTw0Q" name="ms" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRyce6Ed-7etIj5eTw0Q" name="us" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRyse6Ed-7etIj5eTw0Q" name="min" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRy8e6Ed-7etIj5eTw0Q" name="hrs" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZRzMe6Ed-7etIj5eTw0Q" name="day" value="6"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZRzce6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_String" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZRzse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qZ3GUAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSCse6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_FrequencyUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSC8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_qFaygA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSDMe6Ed-7etIj5eTw0Q" name="Hz"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSDce6Ed-7etIj5eTw0Q" name="KHz" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSDse6Ed-7etIj5eTw0Q" name="MHz" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSD8e6Ed-7etIj5eTw0Q" name="GHz" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSEMe6Ed-7etIj5eTw0Q" name="rpm" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSK8e6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeStandardKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSLMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_MDyyoA-KEdyNj8xzjk-DoA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSLce6Ed-7etIj5eTw0Q" name="TAI"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSLse6Ed-7etIj5eTw0Q" name="UT0" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSL8e6Ed-7etIj5eTw0Q" name="UT1" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSMMe6Ed-7etIj5eTw0Q" name="UTC" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSMce6Ed-7etIj5eTw0Q" name="Local" value="4"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSMse6Ed-7etIj5eTw0Q" name="TT" value="5"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSM8e6Ed-7etIj5eTw0Q" name="TBD" value="6"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSNMe6Ed-7etIj5eTw0Q" name="TCG" value="7"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSNce6Ed-7etIj5eTw0Q" name="TCB" value="8"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSNse6Ed-7etIj5eTw0Q" name="Sidereal" value="9"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSN8e6Ed-7etIj5eTw0Q" name="GPS" value="10"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSTse6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_TimeNatureKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZST8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_WAvb0A75EdyML4mHwjNDrw"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSUMe6Ed-7etIj5eTw0Q" name="discrete"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSUce6Ed-7etIj5eTw0Q" name="dense" value="1"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSXMe6Ed-7etIj5eTw0Q" name="MARTE_Library_TimeTypesLibrary_EventKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSXce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_eMs4wA-KEdyNj8xzjk-DoA"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSXse6Ed-7etIj5eTw0Q" name="start"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSX8e6Ed-7etIj5eTw0Q" name="finish" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSYMe6Ed-7etIj5eTw0Q" name="send" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSYce6Ed-7etIj5eTw0Q" name="receive" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSYse6Ed-7etIj5eTw0Q" name="consume" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_UVZSaMe6Ed-7etIj5eTw0Q" name="MARTE_Library_MARTE_PrimitivesTypes_DateTime" instanceClassName="MARTE_Library_MARTE_PrimitivesTypes_DateTime">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSace6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:PrimitiveType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_sexkYAnxEdy9WM11hWri2g"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSb8e6Ed-7etIj5eTw0Q" name="MARTE_MARTE_DesignModel_HLAM_CallConcurrencyKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZScMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9CDJMBHjEdy7mJMaejUq5Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZScce6Ed-7etIj5eTw0Q" name="sequential"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZScse6Ed-7etIj5eTw0Q" name="guarded" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSc8e6Ed-7etIj5eTw0Q" name="concurrent" value="2"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UVZSe8e6Ed-7etIj5eTw0Q" name="MARTE_Library_MeasurementUnits_DataSizeUnitKind">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UVZSfMe6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_2pVmEA4yEdysTsAUPnp57Q"/>

+              </eAnnotations>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSfce6Ed-7etIj5eTw0Q" name="bit"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSfse6Ed-7etIj5eTw0Q" name="Byte" value="1"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSf8e6Ed-7etIj5eTw0Q" name="KB" value="2"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSgMe6Ed-7etIj5eTw0Q" name="MB" value="3"/>

+              <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_UVZSgce6Ed-7etIj5eTw0Q" name="GB" value="4"/>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aSb3Ese6Ed-7etIj5eTw0Q" name="NFP_Duration" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aSb3E8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aYFzIse6Ed-7etIj5eTw0Q" name="NFP_Integer" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aYFzI8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_adnMUse6Ed-7etIj5eTw0Q" name="NFP_DataSize" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_adnMU8e6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_amGZ8Me6Ed-7etIj5eTw0Q" name="UtilityType" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_amGZ8ce6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_4TENQBEBEdyx6M3BlUjlCQ"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_amGZ88e6Ed-7etIj5eTw0Q" name="ArrivalPattern" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_amGZ9Me6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_am_x0ce6Ed-7etIj5eTw0Q" name="NFP_DateTime" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_am_x0se6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_NIDGMBFREdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+            <eClassifiers xmi:type="ecore:EDataType" xmi:id="_aoowkce6Ed-7etIj5eTw0Q" name="NFP_Percentage" instanceClassName="java.lang.String">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aoowkse6Ed-7etIj5eTw0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">

+                <references xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_ZPC-IBFaEdyUJeMeN__D-A"/>

+              </eAnnotations>

+            </eClassifiers>

+          </contents>

+        </eAnnotations>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_a1ASIHD7EeWsMJjT42u20Q" annotatedElement="_Y4GZwDcwEd-mWLzcI61s7Q">

+          <body>The following attributes are deprecated:&#xD;

+-respT&#xD;

+-blockT</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_gAqz0HD9EeWsMJjT42u20Q" annotatedElement="_hMroYzg0EeCE2sZUGxu35w">

+          <body>deprecated</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_UbCWwHGoEeWnWZfsnDCUoA" annotatedElement="_Y4GZwDcwEd-mWLzcI61s7Q">

+          <body>operationReqForSporadicOcc: the list of operations that need to be invoked to allow the sporadic occurrence of the &quot;context&quot; operation.&#xD;

+&#xD;

+Constraints:&#xD;

+Only for sporadic occurrence kind.&#xD;

+The operations in the list must be owned by the Component which owns the 'context' operation.&#xD;

+If the list is not empty the &quot;context&quot; operation must have private visibility and it cannot be invoked directly by other operations.&#xD;

+If the list is empty the &quot;context&quot; operation must be invoked directly by other operations.&#xD;

+</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_AuLR4HJpEeWA88Dv12-yjw" annotatedElement="__uhSsDg3EeCE2sZUGxu35w">

+          <body>To be renamed with CHRtFeature, as extension of the MARTE RtFeature&#xD;

+</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_nCtD8OniEeWA_dLIUfgPeA" annotatedElement="_gmfo0DcwEd-mWLzcI61s7Q">

+          <body>allows to use CHRTSpecification in composite diagrams, where Properties are instances</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_rXQCUOniEeWA_dLIUfgPeA" annotatedElement="_AWhm4XJpEeWA88Dv12-yjw">

+          <body>allows to decorate private operations for component istances, i.e. operations which are not provided by any port instance (i.e. slot)</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_yuANcOniEeWA_dLIUfgPeA" annotatedElement="_BXSAQTg4EeCE2sZUGxu35w">

+          <body>allows to decorate public operations for component instances, i.e. operations which are provided by port instances (i.e. slot)</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_9XR5QOniEeWA_dLIUfgPeA" annotatedElement="_Y4GZwDcwEd-mWLzcI61s7Q">

+          <body>CHRtSpecification extends MARTE RtSpecification</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_5GHwoOnjEeWA_dLIUfgPeA" annotatedElement="_gDlVseniEeWA_dLIUfgPeA">

+          <body>To extend CHRtSpecification Comments&#xD;

+</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_RysYEOnkEeWA_dLIUfgPeA" annotatedElement="_kN5PAEApEeCgBsnPy5jVRQ">

+          <body>The operation to be decorated</body>

+        </ownedComment>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_WP3MMDcwEd-mWLzcI61s7Q" alias="RtSpecification">

+          <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_AZ8eMEFeEd6UW4qJC-Vahw"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_eScikDcwEd-mWLzcI61s7Q" alias="Property">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_KH7CgDi7Ed-BkomQ9Pp_0A" alias="BehavioralFeature">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#BehavioralFeature"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_d-TA0Dg0EeCE2sZUGxu35w" alias="Slot">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_QvznAEAbEeCQKOeIf0epIQ" alias="Comment">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_6dTt4NqwEeCgKdScvhOcyQ" alias="InstanceSpecification">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_T9iikDzbEeW-QPagynd_rQ" alias="Operation">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>

+        </elementImport>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_SwSXIG5xEeWR-9VJ87ZvRA" alias="Component">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+        </elementImport>

+        <packagedElement xmi:type="uml:Association" xmi:id="_gmfo0DcwEd-mWLzcI61s7Q" name="A_Stereotype_0_Property" memberEnd="_gnE3oDcwEd-mWLzcI61s7Q _gnGFwjcwEd-mWLzcI61s7Q">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_gnGFwjcwEd-mWLzcI61s7Q" name="stereotype_0" type="_Y4GZwDcwEd-mWLzcI61s7Q" isUnique="false" association="_gmfo0DcwEd-mWLzcI61s7Q">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gnHT4TcwEd-mWLzcI61s7Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gnHT4DcwEd-mWLzcI61s7Q" value="*"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Y4GZwDcwEd-mWLzcI61s7Q" name="CHRtSpecification">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_gnE3oDcwEd-mWLzcI61s7Q" name="partWithPort" isUnique="false" association="_gmfo0DcwEd-mWLzcI61s7Q">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gnGFwDcwEd-mWLzcI61s7Q"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gnGFwTcwEd-mWLzcI61s7Q" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_krv04MASEd-Dn5_MBIs5Vw" name="WCET" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l7BrcMASEd-Dn5_MBIs5Vw" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l7K1YMASEd-Dn5_MBIs5Vw" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_l7K1YcASEd-Dn5_MBIs5Vw">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_7t0z8MATEd-Dn5_MBIs5Vw" name="localWCET" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9PR_oMATEd-Dn5_MBIs5Vw"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9PbwoMATEd-Dn5_MBIs5Vw" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_9PbwocATEd-Dn5_MBIs5Vw">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_GLIWsMDMEd-RT45s8cwWMg" name="relativePriority" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JTtRMMDMEd-RT45s8cwWMg"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JT3CMMDMEd-RT45s8cwWMg" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_JT3CMcDMEd-RT45s8cwWMg">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_AzLIoMDOEd-RT45s8cwWMg" name="ceiling" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C8RjIMDOEd-RT45s8cwWMg"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C8atEMDOEd-RT45s8cwWMg" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_C8atEcDOEd-RT45s8cwWMg">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_p-hwQMGKEd--atLXXafOiQ" name="memorySizeFootprint" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zESa4MGKEd--atLXXafOiQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zEcL4MGKEd--atLXXafOiQ" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_zEcL4cGKEd--atLXXafOiQ">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_Fv3wQMGLEd--atLXXafOiQ" name="stackSize" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hm8moMGLEd--atLXXafOiQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HnFwkMGLEd--atLXXafOiQ" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_HnFwkcGLEd--atLXXafOiQ">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_IjvmEMGLEd--atLXXafOiQ" name="heapSize" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_5LrMcBFSEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LB3OUMGLEd--atLXXafOiQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LCAYQMGLEd--atLXXafOiQ" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_LCKJQMGLEd--atLXXafOiQ">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_hMroYDg0EeCE2sZUGxu35w" name="slot" association="_hMroYzg0EeCE2sZUGxu35w">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hMroYjg0EeCE2sZUGxu35w"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hMroYTg0EeCE2sZUGxu35w" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_RtpIQEAbEeCQKOeIf0epIQ" name="base_Comment" association="_RtpIQUAbEeCQKOeIf0epIQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_voeRYEAoEeCgBsnPy5jVRQ" name="occKind" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_VDec8BFXEdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y0orYEAoEeCgBsnPy5jVRQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y0x1UEAoEeCgBsnPy5jVRQ" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_y07mUEAoEeCgBsnPy5jVRQ">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_GcHoUEApEeCgBsnPy5jVRQ" name="protection" visibility="public">

+            <type xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9CDJMBHjEdy7mJMaejUq5Q"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ib02QEApEeCgBsnPy5jVRQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ib-nQEApEeCgBsnPy5jVRQ" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_IcIYQEApEeCgBsnPy5jVRQ">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_XJT-YEApEeCgBsnPy5jVRQ" name="rlDl" visibility="public">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZXBzIEApEeCgBsnPy5jVRQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZXLkIEApEeCgBsnPy5jVRQ" value="1"/>

+            <defaultValue xmi:type="uml:LiteralString" xmi:id="_ZXefEEApEeCgBsnPy5jVRQ">

+              <value xsi:nil="true"/>

+            </defaultValue>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_kNveAEApEeCgBsnPy5jVRQ" name="context" association="_kN5PAEApEeCgBsnPy5jVRQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#BehavioralFeature"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kNveAkApEeCgBsnPy5jVRQ" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kNveAUApEeCgBsnPy5jVRQ" value="1"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_4RoA0NqtEeCgKdScvhOcyQ" name="respT">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AtvRgNquEeCgKdScvhOcyQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_At4bcNquEeCgKdScvhOcyQ" value="*"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_jGsCMNqvEeCgKdScvhOcyQ" name="blockT">

+            <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_kMwX8BFREdyUJeMeN__D-A"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ox1AENqvEeCgKdScvhOcyQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ox-xENqvEeCgKdScvhOcyQ" value="*"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_8GvscHGnEeWnWZfsnDCUoA" name="operationReqForSporadicOcc" association="_8Gvsc3GnEeWnWZfsnDCUoA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8GvscXGnEeWnWZfsnDCUoA"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8GvscnGnEeWnWZfsnDCUoA" value="*"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_hMroYzg0EeCE2sZUGxu35w" name="cH_RtSpecification_slot_0" memberEnd="_hMroZDg0EeCE2sZUGxu35w _hMroYDg0EeCE2sZUGxu35w">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_hMroZDg0EeCE2sZUGxu35w" name="cH_RtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" association="_hMroYzg0EeCE2sZUGxu35w">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hMroZjg0EeCE2sZUGxu35w" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hMroZTg0EeCE2sZUGxu35w" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="__uhSsDg3EeCE2sZUGxu35w" name="CHRtPortSlot">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_BXSAQDg4EeCE2sZUGxu35w" name="base_Slot" association="_BXSAQTg4EeCE2sZUGxu35w">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Slot"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_CNOJwDg4EeCE2sZUGxu35w" name="cH_RtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" association="_CNOJwzg4EeCE2sZUGxu35w">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CNOJwjg4EeCE2sZUGxu35w"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CNOJwTg4EeCE2sZUGxu35w" value="*"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_AWhm4HJpEeWA88Dv12-yjw" name="base_InstanceSpecification" association="_AWhm4XJpEeWA88Dv12-yjw">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_BXSAQTg4EeCE2sZUGxu35w" name="E_CHRtPortSlot_Slot0" memberEnd="_BXSAQjg4EeCE2sZUGxu35w _BXSAQDg4EeCE2sZUGxu35w">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_BXSAQjg4EeCE2sZUGxu35w" name="extension_CHRtPortSlot" type="__uhSsDg3EeCE2sZUGxu35w" aggregation="composite" association="_BXSAQTg4EeCE2sZUGxu35w"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_CNOJwzg4EeCE2sZUGxu35w" name="cHRtPortSlot_cH_RtSpecification_0" memberEnd="_CNOJxDg4EeCE2sZUGxu35w _CNOJwDg4EeCE2sZUGxu35w">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_CNOJxDg4EeCE2sZUGxu35w" name="cHRtPortSlot" type="__uhSsDg3EeCE2sZUGxu35w" association="_CNOJwzg4EeCE2sZUGxu35w">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CNOJxjg4EeCE2sZUGxu35w" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CNOJxTg4EeCE2sZUGxu35w" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_RtpIQUAbEeCQKOeIf0epIQ" name="E_CHRtSpecification_Comment0" memberEnd="_RtpIQkAbEeCQKOeIf0epIQ _RtpIQEAbEeCQKOeIf0epIQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_RtpIQkAbEeCQKOeIf0epIQ" name="extension_CHRtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" aggregation="composite" association="_RtpIQUAbEeCQKOeIf0epIQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_kN5PAEApEeCgBsnPy5jVRQ" name="cHRtSpecification_behavioralFeature_0" memberEnd="_kN5PAUApEeCgBsnPy5jVRQ _kNveAEApEeCgBsnPy5jVRQ">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_kN5PAUApEeCgBsnPy5jVRQ" name="cHRtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" association="_kN5PAEApEeCgBsnPy5jVRQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kN5PA0ApEeCgBsnPy5jVRQ" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kN5PAkApEeCgBsnPy5jVRQ" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_8Gvsc3GnEeWnWZfsnDCUoA" name="cHRtSpecification_operation_1" memberEnd="_8GvsdHGnEeWnWZfsnDCUoA _8GvscHGnEeWnWZfsnDCUoA">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_8GvsdHGnEeWnWZfsnDCUoA" name="cHRtSpecification" type="_Y4GZwDcwEd-mWLzcI61s7Q" association="_8Gvsc3GnEeWnWZfsnDCUoA">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8GvsdXGnEeWnWZfsnDCUoA" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8GvsdnGnEeWnWZfsnDCUoA" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_AWhm4XJpEeWA88Dv12-yjw" name="E_CHRtPortSlot_InstanceSpecification1" memberEnd="_AWhm4nJpEeWA88Dv12-yjw _AWhm4HJpEeWA88Dv12-yjw">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_AWhm4nJpEeWA88Dv12-yjw" name="extension_CHRtPortSlot" type="__uhSsDg3EeCE2sZUGxu35w" aggregation="composite" association="_AWhm4XJpEeWA88Dv12-yjw"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_PfAJEOniEeWA_dLIUfgPeA" name="RunTimeSupport">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_U2KbAOniEeWA_dLIUfgPeA" name="monitoring">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_cspPEOniEeWA_dLIUfgPeA" name="verification">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_gDlVsOniEeWA_dLIUfgPeA" name="base_Comment" association="_gDlVseniEeWA_dLIUfgPeA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_gDlVseniEeWA_dLIUfgPeA" name="E_RunTimeSupport_Comment1" memberEnd="_gDlVsuniEeWA_dLIUfgPeA _gDlVsOniEeWA_dLIUfgPeA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gDlVsuniEeWA_dLIUfgPeA" name="extension_RunTimeSupport" type="_PfAJEOniEeWA_dLIUfgPeA" aggregation="composite" association="_gDlVseniEeWA_dLIUfgPeA"/>

+        </packagedElement>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Profile" xmi:id="_GMlQEGwuEeWvYIaEJT1qow" name="ARINCComponentModel">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_WVeDQDzbEeW-QPagynd_rQ" annotatedElement="_VhoykDzbEeW-QPagynd_rQ _f6fK0TzdEeW-QPagynd_rQ">

+          <body>to be applied together with CHRtSpecification to set ARINC properties at Component instance level</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_dQVjoDzbEeW-QPagynd_rQ" annotatedElement="_VKW7ATzbEeW-QPagynd_rQ _fCRJYTzdEeW-QPagynd_rQ">

+          <body>used to set ARINC properties at Component level</body>

+        </ownedComment>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_KGFdEDxeEeWGMtwulVMCiA" name="ARINCComponentImpl">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_WKYfcG5xEeWR-9VJ87ZvRA" name="base_Component" association="_WKYfcW5xEeWR-9VJ87ZvRA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_PQwyMDxeEeWGMtwulVMCiA" name="ARINCProcess">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_VKW7ADzbEeW-QPagynd_rQ" name="base_Operation" association="_VKW7ATzbEeW-QPagynd_rQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_VhlvQDzbEeW-QPagynd_rQ" name="base_Comment" association="_VhoykDzbEeW-QPagynd_rQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_fi-fMDzcEeW-QPagynd_rQ" name="operationsGroups">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T2bjEDzdEeW-QPagynd_rQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T2emYDzdEeW-QPagynd_rQ" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_QtSakDxeEeWGMtwulVMCiA" name="ARINCFunction">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_fCRJYDzdEeW-QPagynd_rQ" name="base_Operation" association="_fCRJYTzdEeW-QPagynd_rQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_f6fK0DzdEeW-QPagynd_rQ" name="base_Comment" association="_f6fK0TzdEeW-QPagynd_rQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_oMJfADzdEeW-QPagynd_rQ" name="followedBy" association="_oMJfAzzdEeW-QPagynd_rQ">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oMJfATzdEeW-QPagynd_rQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oMJfAjzdEeW-QPagynd_rQ" value="*"/>

+          </ownedAttribute>

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_yIfzYDzdEeW-QPagynd_rQ" name="rateDivider">

+            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0kBaoDzdEeW-QPagynd_rQ"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0kBaoTzdEeW-QPagynd_rQ" value="1"/>

+            <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_CWOWMIoBEeWJR8K6BvHC5w" value="1"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_VKW7ATzbEeW-QPagynd_rQ" name="E_ARINCProcess_Operation1" memberEnd="_VKW7AjzbEeW-QPagynd_rQ _VKW7ADzbEeW-QPagynd_rQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_VKW7AjzbEeW-QPagynd_rQ" name="extension_ARINCProcess" type="_PQwyMDxeEeWGMtwulVMCiA" aggregation="composite" association="_VKW7ATzbEeW-QPagynd_rQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_VhoykDzbEeW-QPagynd_rQ" name="E_ARINCProcess_Comment1" memberEnd="_VhoykTzbEeW-QPagynd_rQ _VhlvQDzbEeW-QPagynd_rQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_VhoykTzbEeW-QPagynd_rQ" name="extension_ARINCProcess" type="_PQwyMDxeEeWGMtwulVMCiA" aggregation="composite" association="_VhoykDzbEeW-QPagynd_rQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_fCRJYTzdEeW-QPagynd_rQ" name="E_ARINCFunction_Operation1" memberEnd="_fCRJYjzdEeW-QPagynd_rQ _fCRJYDzdEeW-QPagynd_rQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_fCRJYjzdEeW-QPagynd_rQ" name="extension_ARINCFunction" type="_QtSakDxeEeWGMtwulVMCiA" aggregation="composite" association="_fCRJYTzdEeW-QPagynd_rQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_f6fK0TzdEeW-QPagynd_rQ" name="E_ARINCFunction_Comment1" memberEnd="_f6fK0jzdEeW-QPagynd_rQ _f6fK0DzdEeW-QPagynd_rQ">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_f6fK0jzdEeW-QPagynd_rQ" name="extension_ARINCFunction" type="_QtSakDxeEeWGMtwulVMCiA" aggregation="composite" association="_f6fK0TzdEeW-QPagynd_rQ"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Association" xmi:id="_oMJfAzzdEeW-QPagynd_rQ" name="" memberEnd="_oMJfBDzdEeW-QPagynd_rQ _oMJfADzdEeW-QPagynd_rQ">

+          <ownedEnd xmi:type="uml:Property" xmi:id="_oMJfBDzdEeW-QPagynd_rQ" name="aRINCFunction" type="_QtSakDxeEeWGMtwulVMCiA" association="_oMJfAzzdEeW-QPagynd_rQ">

+            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oMJfBTzdEeW-QPagynd_rQ" value="1"/>

+            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oMJfBjzdEeW-QPagynd_rQ" value="1"/>

+          </ownedEnd>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_WKYfcW5xEeWR-9VJ87ZvRA" name="E_ARINCComponentImpl_Component1" memberEnd="_WKYfcm5xEeWR-9VJ87ZvRA _WKYfcG5xEeWR-9VJ87ZvRA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_WKYfcm5xEeWR-9VJ87ZvRA" name="extension_ARINCComponentImpl" type="_KGFdEDxeEeWGMtwulVMCiA" aggregation="composite" association="_WKYfcW5xEeWR-9VJ87ZvRA"/>

+        </packagedElement>

+      </packagedElement>

+    </packagedElement>

+    <packagedElement xmi:type="uml:Profile" xmi:id="_MftccDQ2EeC0ueejuetpgA" name="ComponentModel" URI="http://CHESS/ComponentModel" metaclassReference="_akN5ADQ2EeC0ueejuetpgA">

+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GzlGcTQ-EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML">

+        <contents xmi:type="ecore:EPackage" xmi:id="_xt9poDUkEeC3rNpnAhYo0w" name="ComponentModel" nsURI="http://CHESS/ComponentModel" nsPrefix="ComponentModel">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xuQkkDUkEeC3rNpnAhYo0w" source="PapyrusVersion">

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQkkTUkEeC3rNpnAhYo0w" key="Version" value="0.0.3"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQkkjUkEeC3rNpnAhYo0w" key="Comment" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQkkzUkEeC3rNpnAhYo0w" key="Copyright" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQklDUkEeC3rNpnAhYo0w" key="Date" value="2011-02-10"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xuQklTUkEeC3rNpnAhYo0w" key="Author" value=""/>

+          </eAnnotations>

+          <eClassifiers xmi:type="ecore:EClass" xmi:id="_xt9poTUkEeC3rNpnAhYo0w" name="ComponentType">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xt9pojUkEeC3rNpnAhYo0w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EfKMwDQ-EeC0ueejuetpgA"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xt9pozUkEeC3rNpnAhYo0w" name="base_Component" ordered="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+            </eStructuralFeatures>

+          </eClassifiers>

+          <eClassifiers xmi:type="ecore:EClass" xmi:id="_xt9ppTUkEeC3rNpnAhYo0w" name="ComponentImplementation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xt9ppjUkEeC3rNpnAhYo0w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CuRAcDRKEeChqekVLFmSjQ"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_xt9ppzUkEeC3rNpnAhYo0w" name="base_Component" ordered="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+            </eStructuralFeatures>

+            <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xt9pqTUkEeC3rNpnAhYo0w" name="language" ordered="false">

+              <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+            </eStructuralFeatures>

+            <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_xt9pqzUkEeC3rNpnAhYo0w" name="OS" ordered="false">

+              <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+            </eStructuralFeatures>

+          </eClassifiers>

+        </contents>

+        <contents xmi:type="ecore:EPackage" xmi:id="_OopHwDRKEeChqekVLFmSjQ" name="ComponentModel" nsURI="http://CHESS/schemas/ComponentModel/_OofWwDRKEeChqekVLFmSjQ/1" nsPrefix="ComponentModel">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oo8CsDRKEeChqekVLFmSjQ" source="PapyrusVersion">

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CsTRKEeChqekVLFmSjQ" key="Version" value="0.0.2"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CsjRKEeChqekVLFmSjQ" key="Comment" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CszRKEeChqekVLFmSjQ" key="Copyright" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CtDRKEeChqekVLFmSjQ" key="Date" value="2011-02-09"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oo8CtTRKEeChqekVLFmSjQ" key="Author" value=""/>

+          </eAnnotations>

+          <eClassifiers xmi:type="ecore:EClass" xmi:id="_OopHwTRKEeChqekVLFmSjQ" name="ComponentType">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OopHwjRKEeChqekVLFmSjQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EfKMwDQ-EeC0ueejuetpgA"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OopHwzRKEeChqekVLFmSjQ" name="base_Component" ordered="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+            </eStructuralFeatures>

+          </eClassifiers>

+          <eClassifiers xmi:type="ecore:EClass" xmi:id="_OopHxTRKEeChqekVLFmSjQ" name="ComponentImplementation">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OopHxjRKEeChqekVLFmSjQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_CuRAcDRKEeChqekVLFmSjQ"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OopHxzRKEeChqekVLFmSjQ" name="base_Component" ordered="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+            </eStructuralFeatures>

+            <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OopHyTRKEeChqekVLFmSjQ" name="language" ordered="false">

+              <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+            </eStructuralFeatures>

+            <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OopHyzRKEeChqekVLFmSjQ" name="OS" ordered="false">

+              <eType xmi:type="ecore:EDataType" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>

+            </eStructuralFeatures>

+          </eClassifiers>

+        </contents>

+        <contents xmi:type="ecore:EPackage" xmi:id="_GzlGcjQ-EeC0ueejuetpgA" name="ComponentModel" nsURI="http://CHESS/schemas/ComponentModel/_GzlGcDQ-EeC0ueejuetpgA/0" nsPrefix="ComponentModel">

+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gzu3cTQ-EeC0ueejuetpgA" source="PapyrusVersion">

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3cjQ-EeC0ueejuetpgA" key="Version" value="0.0.1"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3czQ-EeC0ueejuetpgA" key="Comment" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3dDQ-EeC0ueejuetpgA" key="Copyright" value=""/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3dTQ-EeC0ueejuetpgA" key="Date" value="2011-02-09"/>

+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gzu3djQ-EeC0ueejuetpgA" key="Author" value=""/>

+          </eAnnotations>

+          <eClassifiers xmi:type="ecore:EClass" xmi:id="_GzlGczQ-EeC0ueejuetpgA" name="ComponentType">

+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GzlGdDQ-EeC0ueejuetpgA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EfKMwDQ-EeC0ueejuetpgA"/>

+            <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GzlGdTQ-EeC0ueejuetpgA" name="base_Component" ordered="false" lowerBound="1">

+              <eType xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>

+            </eStructuralFeatures>

+          </eClassifiers>

+        </contents>

+      </eAnnotations>

+      <ownedComment xmi:type="uml:Comment" xmi:id="_w1_6sPDMEeWB2dX6SBTUpA" annotatedElement="_PYtcIKrFEeSm_c79BO815Q">

+        <body>Avioncs IMA concept</body>

+      </ownedComment>

+      <ownedComment xmi:type="uml:Comment" xmi:id="_0sNXQPDMEeWB2dX6SBTUpA" annotatedElement="_ONO1kPQFEeSYU563tLwCJg">

+        <body>represents a SW interface for a given HW component; to hide hardware properties from higher software layers</body>

+      </ownedComment>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_akN5ADQ2EeC0ueejuetpgA" alias="Component">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+      </elementImport>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_EfKMwDQ-EeC0ueejuetpgA" name="ComponentType">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_FrKF0DQ-EeC0ueejuetpgA" name="base_Component" association="_FrT20DQ-EeC0ueejuetpgA">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_FrT20DQ-EeC0ueejuetpgA" name="E_ComponentType_Component0" memberEnd="_FrT20TQ-EeC0ueejuetpgA _FrKF0DQ-EeC0ueejuetpgA">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_FrT20TQ-EeC0ueejuetpgA" name="extension_ComponentType" type="_EfKMwDQ-EeC0ueejuetpgA" aggregation="composite" association="_FrT20DQ-EeC0ueejuetpgA"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_CuRAcDRKEeChqekVLFmSjQ" name="ComponentImplementation">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_D0clYDRKEeChqekVLFmSjQ" name="base_Component" association="_D0clYTRKEeChqekVLFmSjQ">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_E_QLoDRKEeChqekVLFmSjQ" name="language" visibility="public">

+          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GhmvMDRKEeChqekVLFmSjQ"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GhmvMTRKEeChqekVLFmSjQ" value="1"/>

+          <defaultValue xmi:type="uml:LiteralString" xmi:id="_GhwgMDRKEeChqekVLFmSjQ">

+            <value xsi:nil="true"/>

+          </defaultValue>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_G55TYDRKEeChqekVLFmSjQ" name="OS" visibility="public">

+          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_H5hkYDRKEeChqekVLFmSjQ"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_H5rVYDRKEeChqekVLFmSjQ" value="1"/>

+          <defaultValue xmi:type="uml:LiteralString" xmi:id="_H51GYDRKEeChqekVLFmSjQ">

+            <value xsi:nil="true"/>

+          </defaultValue>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_qDnbgL85EeCLOv-_yLVzGQ" name="sourceCodeLocation" visibility="public">

+          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qDnbgr85EeCLOv-_yLVzGQ"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qDnbgb85EeCLOv-_yLVzGQ" value="*"/>

+          <defaultValue xmi:type="uml:LiteralString" xmi:id="_qDnbg785EeCLOv-_yLVzGQ">

+            <value xsi:nil="true"/>

+          </defaultValue>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_D0clYTRKEeChqekVLFmSjQ" name="E_ComponentImplementation_Component0" memberEnd="_D0clYjRKEeChqekVLFmSjQ _D0clYDRKEeChqekVLFmSjQ">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_D0clYjRKEeChqekVLFmSjQ" name="extension_ComponentImplementation" type="_CuRAcDRKEeChqekVLFmSjQ" aggregation="composite" association="_D0clYTRKEeChqekVLFmSjQ"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_PYtcIKrFEeSm_c79BO815Q" name="FunctionalPartition">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcIarFEeSm_c79BO815Q" name="utilization">

+          <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_Yq-MQBFQEdyUJeMeN__D-A"/>

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PYtcIqrFEeSm_c79BO815Q"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PYtcI6rFEeSm_c79BO815Q" value="1"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcJKrFEeSm_c79BO815Q" name="base_Component">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcJarFEeSm_c79BO815Q" name="MAF">

+          <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcJqrFEeSm_c79BO815Q" name="MIF">

+          <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_0KWSgBFQEdyUJeMeN__D-A"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_PYtcJ6rFEeSm_c79BO815Q" name="SchedulingTable">

+          <type xmi:type="uml:DataType" href="pathmap://Papyrus_PROFILES/MARTE_Library.library.uml#_B5VngBFQEdyUJeMeN__D-A"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_SfEJEKrFEeSm_c79BO815Q" name="base_Component" association="_SfEwIKrFEeSm_c79BO815Q">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_SfEwIKrFEeSm_c79BO815Q" name="E_FunctionalPartition_Component1" memberEnd="_SfEwIarFEeSm_c79BO815Q _SfEJEKrFEeSm_c79BO815Q">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_SfEwIarFEeSm_c79BO815Q" name="extension_FunctionalPartition" type="_PYtcIKrFEeSm_c79BO815Q" aggregation="composite" association="_SfEwIKrFEeSm_c79BO815Q"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_ONO1kPQFEeSYU563tLwCJg" name="HwAbstractionComponentImpl">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_QpZ9EPQFEeSYU563tLwCJg" name="hwRes">

+          <type xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_LDER0BJxEdygQ5HMNSpiZw"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_UqPN0PTMEeS54qNpVReixA" name="base_Component" association="_UqhhsPTMEeS54qNpVReixA">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_UqhhsPTMEeS54qNpVReixA" name="E_HwAbstractionComponentImpl_Component1" memberEnd="_UqhhsfTMEeS54qNpVReixA _UqPN0PTMEeS54qNpVReixA">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_UqhhsfTMEeS54qNpVReixA" name="extension_HwAbstractionComponentImpl" type="_ONO1kPQFEeSYU563tLwCJg" aggregation="composite" association="_UqhhsPTMEeS54qNpVReixA"/>

+      </packagedElement>

+    </packagedElement>

+    <packagedElement xmi:type="uml:DataType" xmi:id="__Ya2gGviEeCFqs3XUsvipQ" name="dummy"/>

+    <packagedElement xmi:type="uml:Package" xmi:id="_4NqqQKbREeSHP5PnCeTneg" name="SystemModel">

+      <packagedElement xmi:type="uml:Profile" xmi:id="_-aQIUKbREeSHP5PnCeTneg" name="STS" metaclassReference="_b8XiYKbSEeSHP5PnCeTneg">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_iQ5AQCxwEeWjv8DLIIHdmA" annotatedElement="_RSRXMKbSEeSHP5PnCeTneg">

+          <body>Human structured classes can be decomposed in HumanActuatorUnits</body>

+        </ownedComment>

+        <ownedComment xmi:type="uml:Comment" xmi:id="_nHQSQCxwEeWjv8DLIIHdmA" annotatedElement="_GJ0A0CxwEeWjv8DLIIHdmA">

+          <body>Organization structured classes can be decompsosed in OrganizationUnits</body>

+        </ownedComment>

+        <elementImport xmi:type="uml:ElementImport" xmi:id="_b8XiYKbSEeSHP5PnCeTneg" alias="Class">

+          <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+        </elementImport>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_RSRXMKbSEeSHP5PnCeTneg" name="Human">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_c_OGgKbSEeSHP5PnCeTneg" name="base_Class" association="_c_PUoKbSEeSHP5PnCeTneg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_SUV4MKbSEeSHP5PnCeTneg" name="OrganizationUnit" isAbstract="true">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_dW_tUKbSEeSHP5PnCeTneg" name="base_Class" association="_dXAUYKbSEeSHP5PnCeTneg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_VU1NsKbSEeSHP5PnCeTneg" name="Technological">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_dsomIKbSEeSHP5PnCeTneg" name="base_Class" association="_dsomIabSEeSHP5PnCeTneg">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_c_PUoKbSEeSHP5PnCeTneg" name="E_Human_Class1" memberEnd="_c_PUoabSEeSHP5PnCeTneg _c_OGgKbSEeSHP5PnCeTneg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_c_PUoabSEeSHP5PnCeTneg" name="extension_Human" type="_RSRXMKbSEeSHP5PnCeTneg" aggregation="composite" association="_c_PUoKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_dXAUYKbSEeSHP5PnCeTneg" name="E_OrganizationUnit_Class1" memberEnd="_dXAUYabSEeSHP5PnCeTneg _dW_tUKbSEeSHP5PnCeTneg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_dXAUYabSEeSHP5PnCeTneg" name="extension_OrganizationUnit" type="_SUV4MKbSEeSHP5PnCeTneg" aggregation="composite" association="_dXAUYKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_dsomIabSEeSHP5PnCeTneg" name="E_Technological_Class1" memberEnd="_dsomIqbSEeSHP5PnCeTneg _dsomIKbSEeSHP5PnCeTneg">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_dsomIqbSEeSHP5PnCeTneg" name="extension_Technological" type="_VU1NsKbSEeSHP5PnCeTneg" aggregation="composite" association="_dsomIabSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6RizgM1SEeSrt5YehnIlig" name="TimePressure">

+          <generalization xmi:type="uml:Generalization" xmi:id="_92drwM1SEeSrt5YehnIlig" general="_SUV4MKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_4OEDMCxlEeWjv8DLIIHdmA" name="OUMissionManagement">

+          <generalization xmi:type="uml:Generalization" xmi:id="_InRhwCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Eg1cYCxmEeWjv8DLIIHdmA" name="OURulesRegulationManagement">

+          <generalization xmi:type="uml:Generalization" xmi:id="_JXKtoCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_McNXgCxmEeWjv8DLIIHdmA" name="OUClimateManagement">

+          <generalization xmi:type="uml:Generalization" xmi:id="_I8oGsCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Pmh-cCxmEeWjv8DLIIHdmA" name="OUOversightManagement">

+          <generalization xmi:type="uml:Generalization" xmi:id="_JtwosCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_S1cxgCxmEeWjv8DLIIHdmA" name="OUProcessManagement">

+          <generalization xmi:type="uml:Generalization" xmi:id="_KuY_QCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_bYX_YCxnEeWjv8DLIIHdmA" name="OUResourceManagement">

+          <generalization xmi:type="uml:Generalization" xmi:id="_LJF-QCxwEeWjv8DLIIHdmA" general="_SUV4MKbSEeSHP5PnCeTneg"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_00-qsCxpEeWjv8DLIIHdmA" name="HSAttention">

+          <generalization xmi:type="uml:Generalization" xmi:id="_85r5QCxvEeWjv8DLIIHdmA" general="_6uraQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6pJowCxpEeWjv8DLIIHdmA" name="HSPerception">

+          <generalization xmi:type="uml:Generalization" xmi:id="_9UoI0CxvEeWjv8DLIIHdmA" general="_6uraQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_AGMgQCxqEeWjv8DLIIHdmA" name="HSKnowledgePerception">

+          <generalization xmi:type="uml:Generalization" xmi:id="_9vUgwCxvEeWjv8DLIIHdmA" general="_6uraQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_3mW7QCxrEeWjv8DLIIHdmA" name="HSSensory">

+          <generalization xmi:type="uml:Generalization" xmi:id="_-HWmQCxvEeWjv8DLIIHdmA" general="_6uraQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_CvekwCxsEeWjv8DLIIHdmA" name="HAFeedback">

+          <generalization xmi:type="uml:Generalization" xmi:id="_wRSOUCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_FmvFwCxsEeWjv8DLIIHdmA" name="HAIntent">

+          <generalization xmi:type="uml:Generalization" xmi:id="_xZ1x0CxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_KACBQCxsEeWjv8DLIIHdmA" name="HACommunication">

+          <generalization xmi:type="uml:Generalization" xmi:id="_yOtkUCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Nn4RsCxsEeWjv8DLIIHdmA" name="HATimeManagement">

+          <generalization xmi:type="uml:Generalization" xmi:id="_w_lewCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_Q3XsgCxsEeWjv8DLIIHdmA" name="HASelection">

+          <generalization xmi:type="uml:Generalization" xmi:id="_xztDUCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_UdqdwCxsEeWjv8DLIIHdmA" name="HAResponse">

+          <generalization xmi:type="uml:Generalization" xmi:id="_yt-6QCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_YPlQMCxsEeWjv8DLIIHdmA" name="HAKnowledgeDecision">

+          <generalization xmi:type="uml:Generalization" xmi:id="_zL0FwCxvEeWjv8DLIIHdmA" general="_kV4MQCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_kV4MQCxvEeWjv8DLIIHdmA" name="HumanActuatorUnit" isAbstract="true">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_0kkBYCxvEeWjv8DLIIHdmA" name="base_Class" association="_0klPgCxvEeWjv8DLIIHdmA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_0klPgCxvEeWjv8DLIIHdmA" name="E_HumanActuatorUnit_Class1" memberEnd="_0klPgSxvEeWjv8DLIIHdmA _0kkBYCxvEeWjv8DLIIHdmA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_0klPgSxvEeWjv8DLIIHdmA" name="extension_HumanActuatorUnit" type="_kV4MQCxvEeWjv8DLIIHdmA" aggregation="composite" association="_0klPgCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_6uraQCxvEeWjv8DLIIHdmA" name="HumanSensorUnit">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_-qnEUCxvEeWjv8DLIIHdmA" name="base_Class" association="_-qnrYCxvEeWjv8DLIIHdmA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_-qnrYCxvEeWjv8DLIIHdmA" name="E_HumanSensorUnit_Class1" memberEnd="_-qnrYSxvEeWjv8DLIIHdmA _-qnEUCxvEeWjv8DLIIHdmA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_-qnrYSxvEeWjv8DLIIHdmA" name="extension_HumanSensorUnit" type="_6uraQCxvEeWjv8DLIIHdmA" aggregation="composite" association="_-qnrYCxvEeWjv8DLIIHdmA"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Stereotype" xmi:id="_GJ0A0CxwEeWjv8DLIIHdmA" name="Organization">

+          <ownedAttribute xmi:type="uml:Property" xmi:id="_HQTu0CxwEeWjv8DLIIHdmA" name="base_Class" association="_HQUV4CxwEeWjv8DLIIHdmA">

+            <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          </ownedAttribute>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Extension" xmi:id="_HQUV4CxwEeWjv8DLIIHdmA" name="E_Organization_Class1" memberEnd="_HQUV4SxwEeWjv8DLIIHdmA _HQTu0CxwEeWjv8DLIIHdmA">

+          <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_HQUV4SxwEeWjv8DLIIHdmA" name="extension_Organization" type="_GJ0A0CxwEeWjv8DLIIHdmA" aggregation="composite" association="_HQUV4CxwEeWjv8DLIIHdmA"/>

+        </packagedElement>

+      </packagedElement>

+    </packagedElement>

+    <packagedElement xmi:type="uml:Profile" xmi:id="_f-f6oMvrEeSajLw6mg2A8Q" name="Safety" metaclassReference="_l5GQ0MvrEeSajLw6mg2A8Q _ekTGIMvuEeSajLw6mg2A8Q _-EGK8I_zEei_FpVxgbKIWA">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_OibvkMvvEeSajLw6mg2A8Q" annotatedElement="_cUQWIMvuEeSajLw6mg2A8Q">

+        <body>Allows for a given provided port of a component instance to constrains the criticality level that a given component isntance must have in order to be able to access the port.&#xD;

+In case of base Constraint, the constrained element must refer a provided port+ instance or a slot, the latter as instance of a provided port.&#xD;

+In case of base Comment, its usage is the same of the CHRTSpecification.</body>

+      </ownedComment>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_l5GQ0MvrEeSajLw6mg2A8Q" alias="Constraint">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+      </elementImport>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_ekTGIMvuEeSajLw6mg2A8Q" alias="Comment">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>

+      </elementImport>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_-EGK8I_zEei_FpVxgbKIWA" alias="Class">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+      </elementImport>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_0pf5IMviEeSajLw6mg2A8Q" name="CriticalityLevel">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_m5evwMvrEeSajLw6mg2A8Q" name="base_Constraint" association="_m5evwcvrEeSajLw6mg2A8Q">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_tydZwMvrEeSajLw6mg2A8Q" name="isHigherThan" type="_0pf5IMviEeSajLw6mg2A8Q" association="_tydZw8vrEeSajLw6mg2A8Q">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tydZwcvrEeSajLw6mg2A8Q"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tydZwsvrEeSajLw6mg2A8Q" value="*"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_AM7xAMvsEeSajLw6mg2A8Q" name="mapsTo" type="_0pf5IMviEeSajLw6mg2A8Q" association="_AM-0UMvsEeSajLw6mg2A8Q">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AM7xAcvsEeSajLw6mg2A8Q"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AM7xAsvsEeSajLw6mg2A8Q" value="*"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_m5evwcvrEeSajLw6mg2A8Q" name="E_CriticalityLevel_Constraint1" memberEnd="_m5evwsvrEeSajLw6mg2A8Q _m5evwMvrEeSajLw6mg2A8Q">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_m5evwsvrEeSajLw6mg2A8Q" name="extension_CriticalityLevel" type="_0pf5IMviEeSajLw6mg2A8Q" aggregation="composite" association="_m5evwcvrEeSajLw6mg2A8Q"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Association" xmi:id="_tydZw8vrEeSajLw6mg2A8Q" name="" memberEnd="_tydZxMvrEeSajLw6mg2A8Q _tydZwMvrEeSajLw6mg2A8Q">

+        <ownedEnd xmi:type="uml:Property" xmi:id="_tydZxMvrEeSajLw6mg2A8Q" name="criticalityLevel" type="_0pf5IMviEeSajLw6mg2A8Q" association="_tydZw8vrEeSajLw6mg2A8Q">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tydZxcvrEeSajLw6mg2A8Q" value="1"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tydZxsvrEeSajLw6mg2A8Q" value="1"/>

+        </ownedEnd>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Association" xmi:id="_AM-0UMvsEeSajLw6mg2A8Q" name="" memberEnd="_AM-0UcvsEeSajLw6mg2A8Q _AM7xAMvsEeSajLw6mg2A8Q">

+        <ownedEnd xmi:type="uml:Property" xmi:id="_AM-0UcvsEeSajLw6mg2A8Q" name="criticalityLevel" type="_0pf5IMviEeSajLw6mg2A8Q" association="_AM-0UMvsEeSajLw6mg2A8Q">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AM-0UsvsEeSajLw6mg2A8Q" value="1"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AM-0U8vsEeSajLw6mg2A8Q" value="1"/>

+        </ownedEnd>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_cUQWIMvuEeSajLw6mg2A8Q" name="CriticalityInterfaceSpecification">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_dBHcIMvuEeSajLw6mg2A8Q" name="base_Constraint" association="_dBIDMMvuEeSajLw6mg2A8Q">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_4NKWsMvuEeSajLw6mg2A8Q" name="acceptedCriticalityForClients" type="_0pf5IMviEeSajLw6mg2A8Q" association="_4NK9wMvuEeSajLw6mg2A8Q">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4NKWscvuEeSajLw6mg2A8Q"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4NKWssvuEeSajLw6mg2A8Q" value="*"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_dBIDMMvuEeSajLw6mg2A8Q" name="E_CriticalityInterfaceSpecification_Constraint1" memberEnd="_dBIDMcvuEeSajLw6mg2A8Q _dBHcIMvuEeSajLw6mg2A8Q">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_dBIDMcvuEeSajLw6mg2A8Q" name="extension_CriticalityInterfaceSpecification" type="_cUQWIMvuEeSajLw6mg2A8Q" aggregation="composite" association="_dBIDMMvuEeSajLw6mg2A8Q"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Association" xmi:id="_4NK9wMvuEeSajLw6mg2A8Q" name="" memberEnd="_4NK9wcvuEeSajLw6mg2A8Q _4NKWsMvuEeSajLw6mg2A8Q">

+        <ownedEnd xmi:type="uml:Property" xmi:id="_4NK9wcvuEeSajLw6mg2A8Q" name="criticalitySpecification" type="_cUQWIMvuEeSajLw6mg2A8Q" association="_4NK9wMvuEeSajLw6mg2A8Q">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4NK9wsvuEeSajLw6mg2A8Q" value="1"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4NK9w8vuEeSajLw6mg2A8Q" value="1"/>

+        </ownedEnd>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_C408QMv8EeSEo9BsJH4uuw" name="CriticalitySpecification">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_Glbw4Mv8EeSEo9BsJH4uuw" name="base_Constraint" association="_Glc_AMv8EeSEo9BsJH4uuw">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_HR4AIMv8EeSEo9BsJH4uuw" name="criticalityLevel" type="_0pf5IMviEeSajLw6mg2A8Q" association="_HR5OQMv8EeSEo9BsJH4uuw">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HR4AIcv8EeSEo9BsJH4uuw" value="1"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HR4AIsv8EeSEo9BsJH4uuw" value="1"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_Glc_AMv8EeSEo9BsJH4uuw" name="E_CriticalitySpecification_Constraint1" memberEnd="_Glc_Acv8EeSEo9BsJH4uuw _Glbw4Mv8EeSEo9BsJH4uuw">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Glc_Acv8EeSEo9BsJH4uuw" name="extension_CriticalitySpecification" type="_C408QMv8EeSEo9BsJH4uuw" aggregation="composite" association="_Glc_AMv8EeSEo9BsJH4uuw"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Association" xmi:id="_HR5OQMv8EeSEo9BsJH4uuw" name="" memberEnd="_HR5OQcv8EeSEo9BsJH4uuw _HR4AIMv8EeSEo9BsJH4uuw">

+        <ownedEnd xmi:type="uml:Property" xmi:id="_HR5OQcv8EeSEo9BsJH4uuw" name="criticalitySpecification" type="_C408QMv8EeSEo9BsJH4uuw" association="_HR5OQMv8EeSEo9BsJH4uuw">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HR5OQsv8EeSEo9BsJH4uuw" value="1"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HR5OQ8v8EeSEo9BsJH4uuw" value="1"/>

+        </ownedEnd>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_4exhMI_zEei_FpVxgbKIWA" name="Hazard">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_SG2HkY_0Eei_FpVxgbKIWA" name="base_Class" association="_SGYNgI_0Eei_FpVxgbKIWA">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_SGYNgI_0Eei_FpVxgbKIWA" name="E_Hazard_Class1" memberEnd="_SG2HkI_0Eei_FpVxgbKIWA _SG2HkY_0Eei_FpVxgbKIWA">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_SG2HkI_0Eei_FpVxgbKIWA" name="extension_Hazard" type="_4exhMI_zEei_FpVxgbKIWA" aggregation="composite" association="_SGYNgI_0Eei_FpVxgbKIWA"/>

+      </packagedElement>

+    </packagedElement>

+    <packagedElement xmi:type="uml:Package" xmi:id="_RL274MyCEeikFNSMhHHwbQ" name="ParameterizedArchitecture">

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_RL274cyCEeikFNSMhHHwbQ" name="InstantiatedArchitectureConfiguration">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_RL274syCEeikFNSMhHHwbQ" name="ParameterList">

+          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RL2748yCEeikFNSMhHHwbQ"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RL275MyCEeikFNSMhHHwbQ" value="*"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_RL275cyCEeikFNSMhHHwbQ" name="base_Property" association="_RL276cyCEeikFNSMhHHwbQ">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_RL275syCEeikFNSMhHHwbQ" name="InstantiatedRootComponent">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RL2758yCEeikFNSMhHHwbQ"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RL276MyCEeikFNSMhHHwbQ" value="1"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_RL276cyCEeikFNSMhHHwbQ" name="E_InstantiatedArchitectureConfiguration_Property1" memberEnd="_RL276syCEeikFNSMhHHwbQ _RL275cyCEeikFNSMhHHwbQ">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_RL276syCEeikFNSMhHHwbQ" name="extension_InstantiatedArchitectureConfiguration" type="_RL274cyCEeikFNSMhHHwbQ" aggregation="composite" association="_RL276cyCEeikFNSMhHHwbQ"/>

+      </packagedElement>

+    </packagedElement>

+    <packagedElement xmi:type="uml:Profile" xmi:id="_wx4LQOi5EeiVjJ5o5etgeg" name="Expressions" metaclassReference="_ELIe8Oi6EeiVjJ5o5etgeg">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_TprFAOjEEeiFtYjQlD0MEA" annotatedElement="_FDEMgOi6EeiVjJ5o5etgeg">

+        <body>A special type of Constraint

+used to store macros.</body>

+      </ownedComment>

+      <ownedComment xmi:type="uml:Comment" xmi:id="_dRVi0OjEEeiFtYjQlD0MEA" annotatedElement="_HB53wOi6EeiVjJ5o5etgeg">

+        <body>A special type of Constraint

+used to store assumptions.</body>

+      </ownedComment>

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_ELIe8Oi6EeiVjJ5o5etgeg" alias="Constraint">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+      </elementImport>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_FDEMgOi6EeiVjJ5o5etgeg" name="MacroDefinition">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_IbI7kei6EeiVjJ5o5etgeg" name="base_Constraint" association="_IbHGYOi6EeiVjJ5o5etgeg">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_HB53wOi6EeiVjJ5o5etgeg" name="ParameterAssumptions">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_I8eHAei6EeiVjJ5o5etgeg" name="base_Constraint" association="_I8df8Oi6EeiVjJ5o5etgeg">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Constraint"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_IbHGYOi6EeiVjJ5o5etgeg" name="E_MacroDefinition_Constraint1" memberEnd="_IbI7kOi6EeiVjJ5o5etgeg _IbI7kei6EeiVjJ5o5etgeg">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_IbI7kOi6EeiVjJ5o5etgeg" name="extension_MacroDefinition" type="_FDEMgOi6EeiVjJ5o5etgeg" aggregation="composite" association="_IbHGYOi6EeiVjJ5o5etgeg"/>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_I8df8Oi6EeiVjJ5o5etgeg" name="E_ParameterAssumptions_Constraint1" memberEnd="_I8eHAOi6EeiVjJ5o5etgeg _I8eHAei6EeiVjJ5o5etgeg">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_I8eHAOi6EeiVjJ5o5etgeg" name="extension_ParameterAssumptions" type="_HB53wOi6EeiVjJ5o5etgeg" aggregation="composite" association="_I8df8Oi6EeiVjJ5o5etgeg"/>

+      </packagedElement>

+    </packagedElement>

+    <packagedElement xmi:type="uml:Profile" xmi:id="_uzJoEAUxEemysu13G3QsXA" name="StateMachines" metaclassReference="_AjJe8AUyEemysu13G3QsXA">

+      <elementImport xmi:type="uml:ElementImport" xmi:id="_AjJe8AUyEemysu13G3QsXA" alias="Transition">

+        <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+      </elementImport>

+      <packagedElement xmi:type="uml:Stereotype" xmi:id="_BGUdcAUyEemysu13G3QsXA" name="PrioritizedTransition">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_EYicIAUyEemysu13G3QsXA" name="priority">

+          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>

+        </ownedAttribute>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_HuGCsAUyEemysu13G3QsXA" name="base_Transition" association="_HuC_YAUyEemysu13G3QsXA">

+          <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Transition"/>

+        </ownedAttribute>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Extension" xmi:id="_HuC_YAUyEemysu13G3QsXA" name="E_PrioritizedTransition_Transition1" memberEnd="_HuFboAUyEemysu13G3QsXA _HuGCsAUyEemysu13G3QsXA">

+        <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_HuFboAUyEemysu13G3QsXA" name="extension_PrioritizedTransition" type="_BGUdcAUyEemysu13G3QsXA" aggregation="composite" association="_HuC_YAUyEemysu13G3QsXA"/>

+      </packagedElement>

+    </packagedElement>

+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_4nGdAFt2EeCB9JyGkIbTqQ">

+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4nHEEFt2EeCB9JyGkIbTqQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

+        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>

+      </eAnnotations>

+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>

+    </profileApplication>

+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_zP9FcP3gEeOmz-4FDV-1Kw">

+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zT38IP3gEeOmz-4FDV-1Kw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//MARTE_Annexes/VSL/DataTypes"/>

+      </eAnnotations>

+      <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9FdqwA-MEdyLh7muGbCqMw"/>

+    </profileApplication>

+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GPBYEDbQEeW5DJdhCjCHFw">

+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GSvswJAHEeivwecyB74dKw" source="PapyrusVersion">

+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvswZAHEeivwecyB74dKw" key="Version" value="0.1.1"/>

+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvswpAHEeivwecyB74dKw" key="Comment" value=""/>

+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvsw5AHEeivwecyB74dKw" key="Copyright" value=""/>

+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvsxJAHEeivwecyB74dKw" key="Date" value="2015-01-21"/>

+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GSvsxZAHEeivwecyB74dKw" key="Author" value=""/>

+      </eAnnotations>

+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVgakDbQEeW5DJdhCjCHFw" source="http://www.eclipse.org/uml2/2.0.0/UML">

+        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>

+      </eAnnotations>

+      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>

+    </profileApplication>

+  </uml:Profile>

+  <Ecore:EPackage xmi:id="_5bIiAFt2EeCB9JyGkIbTqQ" base_Package="_EA6IcDcwEd-mWLzcI61s7Q" packageName="chessmlprofile" nsPrefix="CHESS" nsURI="http://CHESS" basePackage="org.polarsys.chess" prefix="chessmlprofile"/>

+  <Ecore:EPackage xmi:id="_rb2uQFt3EeCB9JyGkIbTqQ" base_Package="_ad4owDgVEd-68Z_bhNRGsA" packageName="Core" nsPrefix="Core" nsURI="http://CHESS/Core" prefix="Core"/>

+  <Ecore:EPackage xmi:id="_tNFbUFt3EeCB9JyGkIbTqQ" base_Package="_FttqgMJDEd-0jpzjleFnug" packageName="CHESSViews" nsPrefix="CHESSViews" nsURI="http://CHESS/Core/Views" prefix="CHESSViews"/>

+  <Ecore:EPackage xmi:id="_2MAeIFt3EeCB9JyGkIbTqQ" base_Package="_hdOrwLwzEd-CDNLmLgazUQ" packageName="FailurePropagation" nsPrefix="FailurePropagation" nsURI="http://CHESS/Dependability/FailurePropagation" prefix="FailurePropagation"/>

+  <Ecore:EPackage xmi:id="_GS96oFt4EeCB9JyGkIbTqQ" base_Package="_cE_bwLwzEd-CDNLmLgazUQ" packageName="StateBased" nsPrefix="StateBased" nsURI="http://CHESS/Dependability/StateBased" prefix="StateBased"/>

+  <Ecore:EPackage xmi:id="_IC9RkFt4EeCB9JyGkIbTqQ" base_Package="_d50lQL86Ed-TL8tpOyViyA" packageName="StateBasedComponents" nsPrefix="StateBasedComponents" nsURI="http://CHESS/Dependability/StateBased/StateBasedComponents" prefix="StateBasedComponents"/>

+  <Ecore:EPackage xmi:id="_KsQ2IFt4EeCB9JyGkIbTqQ" base_Package="_mbqqgL86Ed-TL8tpOyViyA" packageName="FaultTolerance" nsPrefix="FaultTolerance" nsURI="http://CHESS/Dependability/StateBased/FaultTolerance" prefix="FaultTolerance"/>

+  <Ecore:EPackage xmi:id="_LicQMFt4EeCB9JyGkIbTqQ" base_Package="_oUVxcL88Ed-TL8tpOyViyA" packageName="MaintenanceMonitoring" nsPrefix="MaintenanceMonitoring" nsURI="http://CHESS/Dependability/StateBased/MaintenanceMonitoring" prefix="MaintenanceMonitoring"/>

+  <Ecore:EPackage xmi:id="_Mt3FAFt5EeCB9JyGkIbTqQ" base_Package="_Wgxh0L8_Ed-TL8tpOyViyA" packageName="StateBasedAnalysis" nsPrefix="StateBasedAnalysis" nsURI="http://CHESS/Dependability/StateBased/StateBasedAnalysis" prefix="StateBasedAnalysis"/>

+  <Ecore:EPackage xmi:id="_eSL3YFt5EeCB9JyGkIbTqQ" base_Package="_uNKOgDQ2EeC0ueejuetpgA" packageName="DependableComponent" nsPrefix="DependableComponent" nsURI="http://CHESS/Dependability/DependableComponent" prefix="DependableComponent"/>

+  <Ecore:EPackage xmi:id="_fj9oUFt5EeCB9JyGkIbTqQ" base_Package="_5g4wEDQ3EeC0ueejuetpgA" packageName="ThreatsPropagation" nsPrefix="ThreatsPropagation" nsURI="http://CHESS/Dependability/ThreatsPropagation" prefix="ThreatsPropagation"/>

+  <Ecore:EPackage xmi:id="_tI1ikFt5EeCB9JyGkIbTqQ" base_Package="_nyQ7MLwzEd-CDNLmLgazUQ" packageName="DeploymentConfiguration" nsPrefix="DeploymentConfiguration" nsURI="http://CHESS/Predictability/DeploymentConfiguration" prefix="DeploymentConfiguration"/>

+  <Ecore:EPackage xmi:id="_uZ3soFt5EeCB9JyGkIbTqQ" base_Package="_1TsX8MCpEd-RT45s8cwWMg" packageName="HardwareBaseline" nsPrefix="HardwareBaseline" nsURI="http://CHESS/Predictability/DeploymentConfiguration/HardwareBaseline" prefix="HardwareBaseline"/>

+  <Ecore:EPackage xmi:id="_2qiiUFt5EeCB9JyGkIbTqQ" base_Package="_WgatoDgVEd-68Z_bhNRGsA" packageName="RTComponentModel" nsPrefix="RTComponentModel" nsURI="http://CHESS/Predictability/RTComponentModel" prefix="RTComponentModel"/>

+  <Ecore:EPackage xmi:id="_4jFYUFt5EeCB9JyGkIbTqQ" base_Package="_MftccDQ2EeC0ueejuetpgA" packageName="ComponentModel" nsPrefix="ComponentModel" nsURI="http://CHESS/ComponentModel" prefix="ComponentModel"/>

+  <Ecore:EPackage xmi:id="_mH408FiIEeGbwa2cK55fPQ" base_Package="_kJICMFiIEeGbwa2cK55fPQ" packageName="MitigationMeans" nsPrefix="MitigationMeans" nsURI="http://CHESS.Dependability/MitigationMeans" prefix="MitigationMeans"/>

+  <Ecore:EPackage xmi:id="_FUVlkKbSEeSHP5PnCeTneg" base_Package="_-aQIUKbREeSHP5PnCeTneg" packageName="STS" nsPrefix="STS" nsURI="http://CHESS/SystemModel/STS" prefix="STS"/>

+  <Ecore:EPackage xmi:id="_XV73cMvtEeSajLw6mg2A8Q" base_Package="_f-f6oMvrEeSajLw6mg2A8Q" packageName="Safety" nsPrefix="Safety" nsURI="http://CHESS/Safety" prefix="Safety"/>

+  <Ecore:EPackage xmi:id="_RT8mEGwuEeWvYIaEJT1qow" base_Package="_GMlQEGwuEeWvYIaEJT1qow" packageName="ARINCComponentModel" nsPrefix="ARINCComponentModel" nsURI="http://CHESS/Predictability/ARINCComponentModel" prefix="ARINCComponentModel"/>

+  <Ecore:EPackage xmi:id="__euaMOi5EeiVjJ5o5etgeg" base_Package="_wx4LQOi5EeiVjJ5o5etgeg" packageName="Expressions" nsPrefix="Expressions" nsURI="http://CHESS/Expressions" prefix="Expressions"/>

+  <Ecore:EPackage xmi:id="_x7ob8AUxEemysu13G3QsXA" base_Package="_uzJoEAUxEemysu13G3QsXA" packageName="StateMachines" nsPrefix="StateMachines" nsURI="http://CHESS/StateMachines" prefix="StateMachines"/>

+</xmi:XMI>

diff --git a/plugins/org.polarsys.chess.chessmlprofile/model/chessmlprofile.ecore b/plugins/org.polarsys.chess.chessmlprofile/model/chessmlprofile.ecore
index c0a1c1b..7163728 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/model/chessmlprofile.ecore
+++ b/plugins/org.polarsys.chess.chessmlprofile/model/chessmlprofile.ecore
@@ -102,7 +102,7 @@
         nsPrefix="FailurePropagation">

       <eClassifiers xsi:type="ecore:EClass" name="FPTCSpecification">

         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

-          <details key="documentation" value="this allows to work with FPTC at instance level by using composite diagrams. It allows to decorate ports of the parts.&#xA;attribute 'failure' is deprecated, use 'failureModes'"/>

+          <details key="documentation" value="this allows to work with FPTC at instance level by using composite diagrams. It allows to decorate ports of the parts.&#xD;&#xA;attribute 'failure' is deprecated, use 'failureModes'"/>

         </eAnnotations>

         <eStructuralFeatures xsi:type="ecore:EReference" name="base_Comment" ordered="false"

             lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>

@@ -254,7 +254,7 @@
         nsPrefix="DependableComponent">

       <eClassifiers xsi:type="ecore:EClass" name="FailureModes">

         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

-          <details key="documentation" value="allows to decorate a port\instance with information regarding the failureModes/threats possibly affecting the port\instance itself&#xA;if applied at the same time on the same entity, than each FailureMode referred by Threats.failureMode must be referred also by FailureModes.failureMode"/>

+          <details key="documentation" value="allows to decorate a port\instance with information regarding the failureModes/threats possibly affecting the port\instance itself&#xD;&#xA;if applied at the same time on the same entity, than each FailureMode referred by Threats.failureMode must be referred also by FailureModes.failureMode"/>

         </eAnnotations>

         <eStructuralFeatures xsi:type="ecore:EReference" name="base_Slot" ordered="false"

             lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>

@@ -528,10 +528,30 @@
             lowerBound="1" eType="#//Dependability/ThreatsPropagation/Vulnerability"/>

         <eStructuralFeatures xsi:type="ecore:EAttribute" name="threat" ordered="false"

             lowerBound="1" eType="#//Dependability/DependableComponent/ThreatType"/>

+        <eStructuralFeatures xsi:type="ecore:EReference" name="base_Message" ordered="false"

+            lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message"/>

+        <eStructuralFeatures xsi:type="ecore:EAttribute" name="intensity" ordered="false"

+            eType="ecore:EClass ../../org.eclipse.papyrus.marte.static.profile/resources/MARTE_Library.ecore#//BasicNFP_Types/NFP_Real"/>

       </eClassifiers>

       <eClassifiers xsi:type="ecore:EClass" name="Vulnerability" eSuperTypes="#//Dependability/ThreatsPropagation/InternalFault">

         <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false"

             lowerBound="1" eType="#//Dependability/DependableComponent/VulnerabilityType"/>

+        <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"

+            lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>

+        <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"

+            lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>

+      </eClassifiers>

+      <eClassifiers xsi:type="ecore:EClass" name="Adversary">

+        <eStructuralFeatures xsi:type="ecore:EReference" name="base_Actor" ordered="false"

+            lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Actor"/>

+      </eClassifiers>

+      <eClassifiers xsi:type="ecore:EClass" name="AttackScenario">

+        <eStructuralFeatures xsi:type="ecore:EReference" name="base_Interaction" ordered="false"

+            lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction"/>

+        <eStructuralFeatures xsi:type="ecore:EAttribute" name="frequency" ordered="false"

+            eType="ecore:EClass ../../org.eclipse.papyrus.marte.static.profile/resources/MARTE_Library.ecore#//BasicNFP_Types/NFP_Real"/>

+        <eStructuralFeatures xsi:type="ecore:EAttribute" name="probSuccess" ordered="false"

+            eType="ecore:EClass ../../org.eclipse.papyrus.marte.static.profile/resources/MARTE_Library.ecore#//BasicNFP_Types/NFP_Real"/>

       </eClassifiers>

       <eClassifiers xsi:type="ecore:EClass" name="ErrorModel">

         <eStructuralFeatures xsi:type="ecore:EReference" name="base_StateMachine"

@@ -686,6 +706,8 @@
         <eClassifiers xsi:type="ecore:EClass" name="Repair" eSuperTypes="#//Dependability/StateBased/MaintenanceMonitoring/MMActivities">

           <eStructuralFeatures xsi:type="ecore:EReference" name="targets" ordered="false"

               lowerBound="1" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

+          <eStructuralFeatures xsi:type="ecore:EReference" name="base_Transition"

+              ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>

         </eClassifiers>

         <eClassifiers xsi:type="ecore:EClass" name="Replace" eSuperTypes="#//Dependability/StateBased/MaintenanceMonitoring/MMActivities">

           <eStructuralFeatures xsi:type="ecore:EReference" name="targets" ordered="false"

@@ -706,6 +728,13 @@
       </eSubpackages>

       <eSubpackages name="StateBasedAnalysis" nsURI="http://CHESS/Dependability/StateBased/StateBasedAnalysis"

           nsPrefix="StateBasedAnalysis">

+        <eClassifiers xsi:type="ecore:EClass" name="SANAnalysis" eSuperTypes="../../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_AnalysisModel/GQAM/GaAnalysisContext">

+          <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+            <details key="documentation" value="tentative"/>

+          </eAnnotations>

+          <eStructuralFeatures xsi:type="ecore:EAttribute" name="condition" ordered="false"

+              lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"/>

+        </eClassifiers>

         <eClassifiers xsi:type="ecore:EClass" name="StateBasedAnalysis" eSuperTypes="../../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_AnalysisModel/GQAM/GaAnalysisContext">

           <eStructuralFeatures xsi:type="ecore:EAttribute" name="measure" ordered="false"

               lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"/>

@@ -787,7 +816,7 @@
         nsPrefix="RTComponentModel">

       <eClassifiers xsi:type="ecore:EClass" name="CHRtSpecification">

         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

-          <details key="documentation" value="The following attributes are deprecated:&#xD;&#xA;-respT&#xD;&#xA;-blockT&#xA;operationReqForSporadicOcc: the list of operations that need to be invoked to allow the sporadic occurrence of the &quot;context&quot; operation.&#xD;&#xA;&#xD;&#xA;Constraints:&#xD;&#xA;Only for sporadic occurrence kind.&#xD;&#xA;The operations in the list must be owned by the Component which owns the 'context' operation.&#xD;&#xA;If the list is not empty the &quot;context&quot; operation must have private visibility and it cannot be invoked directly by other operations.&#xD;&#xA;If the list is empty the &quot;context&quot; operation must be invoked directly by other operations.&#xD;&#xA;&#xA;CHRtSpecification extends MARTE RtSpecification"/>

+          <details key="documentation" value="The following attributes are deprecated:&#xD;&#xA;-respT&#xD;&#xA;-blockT&#xD;&#xA;operationReqForSporadicOcc: the list of operations that need to be invoked to allow the sporadic occurrence of the &quot;context&quot; operation.&#xD;&#xA;&#xD;&#xA;Constraints:&#xD;&#xA;Only for sporadic occurrence kind.&#xD;&#xA;The operations in the list must be owned by the Component which owns the 'context' operation.&#xD;&#xA;If the list is not empty the &quot;context&quot; operation must have private visibility and it cannot be invoked directly by other operations.&#xD;&#xA;If the list is empty the &quot;context&quot; operation must be invoked directly by other operations.&#xD;&#xA;&#xD;&#xA;CHRtSpecification extends MARTE RtSpecification"/>

         </eAnnotations>

         <eStructuralFeatures xsi:type="ecore:EReference" name="partWithPort" ordered="false"

             unique="false" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>

diff --git a/plugins/org.polarsys.chess.chessmlprofile/palettes/Activity-FV.Palette.xml b/plugins/org.polarsys.chess.chessmlprofile/palettes/Activity-FV.Palette.xml
index 3e66a03..7da042e 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/palettes/Activity-FV.Palette.xml
+++ b/plugins/org.polarsys.chess.chessmlprofile/palettes/Activity-FV.Palette.xml
@@ -11,7 +11,7 @@
 				id="createInitialnode1CreationTool_1309342089771" name="Initial node" refToolId="activity.nodes.controlnodes.initialnode"/>

 			<!--aspectTool description="Create a Call Operation Action node" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CallOperationAction.gif" id="createCallOperationAction12CreationTool_1309342114350" name="Call Operation Action" refToolId="activity.nodes.invocationactions.calloperationaction"/-->

 			<aspectTool description="Create an Call Behavior Action node" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CallBehaviorAction.gif" id="activity.nodes.invocationactions.callbehavioraction_1529310283143" name="Call Behavior Action" refToolId="activity.nodes.invocationactions.callbehavioraction"/>

-			<aspectTool description="Create a Decision node" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DecisionNode.gif" id="createDecisionnode4CreationTool_1309342122851" name="Decision node" refToolId="activity.nodes.controlnodes.decisionnode""/>

+			<aspectTool description="Create a Decision node" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DecisionNode.gif" id="createDecisionnode4CreationTool_1309342122851" name="Decision node" refToolId="activity.nodes.controlnodes.decisionnode"/>

 			<aspectTool description="Create an Activity final node" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/ActivityFinalNode.gif" id="createActivityfinal2CreationTool_1309342729356" name="Activity final" refToolId="activity.nodes.controlnodes.activityfinal"/>

 			<aspectTool description="Create a Control Flow" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/ControlFlow.gif" id="createControlFlow1CreationTool_1309342738936" name="Control Flow" refToolId="activity.edges.controlflow"/>

 		</drawer>

diff --git a/plugins/org.polarsys.chess.chessmlprofile/palettes/ClassDiag-DependAnalysis.Palette.xml b/plugins/org.polarsys.chess.chessmlprofile/palettes/ClassDiag-DependAnalysis.Palette.xml
index c0bf676..6f10d19 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/palettes/ClassDiag-DependAnalysis.Palette.xml
+++ b/plugins/org.polarsys.chess.chessmlprofile/palettes/ClassDiag-DependAnalysis.Palette.xml
@@ -6,7 +6,7 @@
 			name="DependabilityAnalysis">

 			<aspectTool description="Create an element with a stereotype"

 				iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Component.gif"

-				id="clazz.tool.component_1301932923050_1317300366021" name="StateBasedAnalysis (Component)"

+				id="clazz.tool.component_1301932923050_1317300366021" name="StateBasedAnalysis"

 				refToolId="clazz.tool.component">

 				<postAction id="org.eclipse.papyrus.applystereotypeactionprovider">

 					<stereotypesToApply>

@@ -17,7 +17,19 @@
 			</aspectTool>

 			<aspectTool description="Create an element with a stereotype"

 				iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Component.gif"

-				id="clazz.tool.component_1316779916487_1317300377613" name="FailurePropagationAnalysis (Component)"

+				id="clazz.tool.component_1301932923050_1317300366021" name="SANAnalysis"

+				refToolId="clazz.tool.component">

+				<postAction id="org.eclipse.papyrus.applystereotypeactionprovider">

+					<stereotypesToApply>

+						<stereotype

+							stereotypeName="CHESS::Dependability::StateBased::StateBasedAnalysis::SANAnalysis" />

+					</stereotypesToApply>

+				</postAction>

+			</aspectTool>

+			

+			<aspectTool description="Create an element with a stereotype"

+				iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Component.gif"

+				id="clazz.tool.component_1316779916487_1317300377613" name="FailurePropagationAnalysis"

 				refToolId="clazz.tool.component">

 				<postAction id="org.eclipse.papyrus.applystereotypeactionprovider">

 					<stereotypesToApply>

@@ -29,7 +41,7 @@
 			

 			<aspectTool description="Create an element with a stereotype"

 				iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Component.gif"

-				id="clazz.tool.component_1316779916487_1317300377614" name="xSAP FTA Analysis (Component)"

+				id="clazz.tool.component_1316779916487_1317300377614" name="xSAP FTA Analysis"

 				refToolId="clazz.tool.component">

 				<postAction id="org.eclipse.papyrus.applystereotypeactionprovider">

 					<stereotypesToApply>

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/MaintenanceMonitoringPackage.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/MaintenanceMonitoringPackage.java
index 6451f6d..ec67c29 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/MaintenanceMonitoringPackage.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/MaintenanceMonitoringPackage.java
@@ -247,13 +247,22 @@
 	int REPAIR__TARGETS = MM_ACTIVITIES_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Base Transition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPAIR__BASE_TRANSITION = MM_ACTIVITIES_FEATURE_COUNT + 1;
+
+	/**
 	 * The number of structural features of the '<em>Repair</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REPAIR_FEATURE_COUNT = MM_ACTIVITIES_FEATURE_COUNT + 1;
+	int REPAIR_FEATURE_COUNT = MM_ACTIVITIES_FEATURE_COUNT + 2;
 
 	/**
 	 * The meta object id for the '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.impl.ReplaceImpl <em>Replace</em>}' class.
@@ -694,6 +703,17 @@
 	EReference getRepair_Targets();
 
 	/**
+	 * Returns the meta object for the reference '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.Repair#getBase_Transition <em>Base Transition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Transition</em>'.
+	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.Repair#getBase_Transition()
+	 * @see #getRepair()
+	 * @generated
+	 */
+	EReference getRepair_Base_Transition();
+
+	/**
 	 * Returns the meta object for class '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.Replace <em>Replace</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -893,6 +913,14 @@
 		EReference REPAIR__TARGETS = eINSTANCE.getRepair_Targets();
 
 		/**
+		 * The meta object literal for the '<em><b>Base Transition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPAIR__BASE_TRANSITION = eINSTANCE.getRepair_Base_Transition();
+
+		/**
 		 * The meta object literal for the '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.impl.ReplaceImpl <em>Replace</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/Repair.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/Repair.java
index 42776dc..8bf303a 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/Repair.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/Repair.java
@@ -16,6 +16,7 @@
 import org.eclipse.emf.ecore.EClass;

 

 import org.eclipse.uml2.uml.Property;

+import org.eclipse.uml2.uml.Transition;

 import org.eclipse.uml2.uml.Type;

 

 /**

@@ -28,6 +29,7 @@
  * </p>

  * <ul>

  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.Repair#getTargets <em>Targets</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.Repair#getBase_Transition <em>Base Transition</em>}</li>

  * </ul>

  *

  * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.MaintenanceMonitoringPackage#getRepair()

@@ -77,4 +79,30 @@
 	 */

 	Property getTargets(String name, Type type, boolean ignoreCase, EClass eClass);

 

+	/**

+	 * Returns the value of the '<em><b>Base Transition</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Base Transition</em>' reference isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Base Transition</em>' reference.

+	 * @see #setBase_Transition(Transition)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.MaintenanceMonitoringPackage#getRepair_Base_Transition()

+	 * @model required="true" ordered="false"

+	 * @generated

+	 */

+	Transition getBase_Transition();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.Repair#getBase_Transition <em>Base Transition</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Base Transition</em>' reference.

+	 * @see #getBase_Transition()

+	 * @generated

+	 */

+	void setBase_Transition(Transition value);

+

 } // Repair

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/impl/MaintenanceMonitoringPackageImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/impl/MaintenanceMonitoringPackageImpl.java
index c32f9e3..8a0255a 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/impl/MaintenanceMonitoringPackageImpl.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/impl/MaintenanceMonitoringPackageImpl.java
@@ -363,6 +363,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EReference getRepair_Base_Transition() {
+		return (EReference)repairEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getReplace() {
 		return replaceEClass;
 	}
@@ -470,6 +479,7 @@
 
 		repairEClass = createEClass(REPAIR);
 		createEReference(repairEClass, REPAIR__TARGETS);
+		createEReference(repairEClass, REPAIR__BASE_TRANSITION);
 
 		replaceEClass = createEClass(REPLACE);
 		createEReference(replaceEClass, REPLACE__TARGETS);
@@ -534,6 +544,7 @@
 
 		initEClass(repairEClass, Repair.class, "Repair", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getRepair_Targets(), theUMLPackage.getProperty(), null, "targets", null, 1, -1, Repair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getRepair_Base_Transition(), theUMLPackage.getTransition(), null, "base_Transition", null, 1, 1, Repair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(replaceEClass, Replace.class, "Replace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getReplace_Targets(), theUMLPackage.getProperty(), null, "targets", null, 1, -1, Replace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/impl/RepairImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/impl/RepairImpl.java
index bc7124f..a2c87a5 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/impl/RepairImpl.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/MaintenanceMonitoring/impl/RepairImpl.java
@@ -13,10 +13,14 @@
 

 import java.util.Collection;

 

+import org.eclipse.emf.common.notify.Notification;

 import org.eclipse.emf.common.util.EList;

 import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.InternalEObject;

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

 import org.eclipse.emf.ecore.util.EObjectResolvingEList;

 import org.eclipse.uml2.uml.Property;

+import org.eclipse.uml2.uml.Transition;

 import org.eclipse.uml2.uml.Type;

 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.MaintenanceMonitoringPackage;

 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.Repair;

@@ -30,6 +34,7 @@
  * </p>

  * <ul>

  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.impl.RepairImpl#getTargets <em>Targets</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.impl.RepairImpl#getBase_Transition <em>Base Transition</em>}</li>

  * </ul>

  *

  * @generated

@@ -46,6 +51,16 @@
 	protected EList<Property> targets;

 

 	/**

+	 * The cached value of the '{@link #getBase_Transition() <em>Base Transition</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getBase_Transition()

+	 * @generated

+	 * @ordered

+	 */

+	protected Transition base_Transition;

+

+	/**

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

@@ -108,11 +123,52 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

+	public Transition getBase_Transition() {

+		if (base_Transition != null && base_Transition.eIsProxy()) {

+			InternalEObject oldBase_Transition = (InternalEObject)base_Transition;

+			base_Transition = (Transition)eResolveProxy(oldBase_Transition);

+			if (base_Transition != oldBase_Transition) {

+				if (eNotificationRequired())

+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MaintenanceMonitoringPackage.REPAIR__BASE_TRANSITION, oldBase_Transition, base_Transition));

+			}

+		}

+		return base_Transition;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Transition basicGetBase_Transition() {

+		return base_Transition;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setBase_Transition(Transition newBase_Transition) {

+		Transition oldBase_Transition = base_Transition;

+		base_Transition = newBase_Transition;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, MaintenanceMonitoringPackage.REPAIR__BASE_TRANSITION, oldBase_Transition, base_Transition));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

 	@Override

 	public Object eGet(int featureID, boolean resolve, boolean coreType) {

 		switch (featureID) {

 			case MaintenanceMonitoringPackage.REPAIR__TARGETS:

 				return getTargets();

+			case MaintenanceMonitoringPackage.REPAIR__BASE_TRANSITION:

+				if (resolve) return getBase_Transition();

+				return basicGetBase_Transition();

 		}

 		return super.eGet(featureID, resolve, coreType);

 	}

@@ -130,6 +186,9 @@
 				getTargets().clear();

 				getTargets().addAll((Collection<? extends Property>)newValue);

 				return;

+			case MaintenanceMonitoringPackage.REPAIR__BASE_TRANSITION:

+				setBase_Transition((Transition)newValue);

+				return;

 		}

 		super.eSet(featureID, newValue);

 	}

@@ -145,6 +204,9 @@
 			case MaintenanceMonitoringPackage.REPAIR__TARGETS:

 				getTargets().clear();

 				return;

+			case MaintenanceMonitoringPackage.REPAIR__BASE_TRANSITION:

+				setBase_Transition((Transition)null);

+				return;

 		}

 		super.eUnset(featureID);

 	}

@@ -159,6 +221,8 @@
 		switch (featureID) {

 			case MaintenanceMonitoringPackage.REPAIR__TARGETS:

 				return targets != null && !targets.isEmpty();

+			case MaintenanceMonitoringPackage.REPAIR__BASE_TRANSITION:

+				return base_Transition != null;

 		}

 		return super.eIsSet(featureID);

 	}

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/SANAnalysis.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/SANAnalysis.java
new file mode 100644
index 0000000..b401b68
--- /dev/null
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/SANAnalysis.java
@@ -0,0 +1,54 @@
+/**

+ */

+package org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis;

+

+import org.eclipse.papyrus.MARTE.MARTE_AnalysisModel.GQAM.GaAnalysisContext;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>SAN Analysis</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <!-- begin-model-doc -->

+ * tentative

+ * <!-- end-model-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis#getCondition <em>Condition</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.StateBasedAnalysisPackage#getSANAnalysis()

+ * @model

+ * @generated

+ */

+public interface SANAnalysis extends GaAnalysisContext {

+	/**

+	 * Returns the value of the '<em><b>Condition</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Condition</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Condition</em>' attribute.

+	 * @see #setCondition(String)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.StateBasedAnalysisPackage#getSANAnalysis_Condition()

+	 * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"

+	 * @generated

+	 */

+	String getCondition();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis#getCondition <em>Condition</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Condition</em>' attribute.

+	 * @see #getCondition()

+	 * @generated

+	 */

+	void setCondition(String value);

+

+} // SANAnalysis

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysisFactory.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysisFactory.java
index d0bdd40..e46c6d3 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysisFactory.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysisFactory.java
@@ -31,6 +31,15 @@
 	StateBasedAnalysisFactory eINSTANCE = org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.StateBasedAnalysisFactoryImpl.init();
 
 	/**
+	 * Returns a new object of class '<em>SAN Analysis</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>SAN Analysis</em>'.
+	 * @generated
+	 */
+	SANAnalysis createSANAnalysis();
+
+	/**
 	 * Returns a new object of class '<em>State Based Analysis</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysisPackage.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysisPackage.java
index bbf8f33..edd1bac 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysisPackage.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/StateBasedAnalysisPackage.java
@@ -67,6 +67,97 @@
 	StateBasedAnalysisPackage eINSTANCE = org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.StateBasedAnalysisPackageImpl.init();
 
 	/**
+	 * The meta object id for the '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.SANAnalysisImpl <em>SAN Analysis</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.SANAnalysisImpl
+	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.StateBasedAnalysisPackageImpl#getSANAnalysis()
+	 * @generated
+	 */
+	int SAN_ANALYSIS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Base Structured Classifier</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SAN_ANALYSIS__BASE_STRUCTURED_CLASSIFIER = GQAMPackage.GA_ANALYSIS_CONTEXT__BASE_STRUCTURED_CLASSIFIER;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SAN_ANALYSIS__BASE_PACKAGE = GQAMPackage.GA_ANALYSIS_CONTEXT__BASE_PACKAGE;
+
+	/**
+	 * The feature id for the '<em><b>Mode</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SAN_ANALYSIS__MODE = GQAMPackage.GA_ANALYSIS_CONTEXT__MODE;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SAN_ANALYSIS__BASE_NAMED_ELEMENT = GQAMPackage.GA_ANALYSIS_CONTEXT__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Context</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SAN_ANALYSIS__CONTEXT = GQAMPackage.GA_ANALYSIS_CONTEXT__CONTEXT;
+
+	/**
+	 * The feature id for the '<em><b>Workload</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SAN_ANALYSIS__WORKLOAD = GQAMPackage.GA_ANALYSIS_CONTEXT__WORKLOAD;
+
+	/**
+	 * The feature id for the '<em><b>Platform</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SAN_ANALYSIS__PLATFORM = GQAMPackage.GA_ANALYSIS_CONTEXT__PLATFORM;
+
+	/**
+	 * The feature id for the '<em><b>Condition</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SAN_ANALYSIS__CONDITION = GQAMPackage.GA_ANALYSIS_CONTEXT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>SAN Analysis</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SAN_ANALYSIS_FEATURE_COUNT = GQAMPackage.GA_ANALYSIS_CONTEXT_FEATURE_COUNT + 1;
+
+	/**
 	 * The meta object id for the '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.StateBasedAnalysisImpl <em>State Based Analysis</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -74,7 +165,7 @@
 	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.StateBasedAnalysisPackageImpl#getStateBasedAnalysis()
 	 * @generated
 	 */
-	int STATE_BASED_ANALYSIS = 0;
+	int STATE_BASED_ANALYSIS = 1;
 
 	/**
 	 * The feature id for the '<em><b>Base Structured Classifier</b></em>' reference.
@@ -220,7 +311,7 @@
 	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.StateBasedAnalysisPackageImpl#getSBAInitialConditions()
 	 * @generated
 	 */
-	int SBA_INITIAL_CONDITIONS = 1;
+	int SBA_INITIAL_CONDITIONS = 2;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -260,6 +351,27 @@
 
 
 	/**
+	 * Returns the meta object for class '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis <em>SAN Analysis</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SAN Analysis</em>'.
+	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis
+	 * @generated
+	 */
+	EClass getSANAnalysis();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis#getCondition <em>Condition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Condition</em>'.
+	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis#getCondition()
+	 * @see #getSANAnalysis()
+	 * @generated
+	 */
+	EAttribute getSANAnalysis_Condition();
+
+	/**
 	 * Returns the meta object for class '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.StateBasedAnalysis <em>State Based Analysis</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -412,6 +524,24 @@
 	 */
 	interface Literals {
 		/**
+		 * The meta object literal for the '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.SANAnalysisImpl <em>SAN Analysis</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.SANAnalysisImpl
+		 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.StateBasedAnalysisPackageImpl#getSANAnalysis()
+		 * @generated
+		 */
+		EClass SAN_ANALYSIS = eINSTANCE.getSANAnalysis();
+
+		/**
+		 * The meta object literal for the '<em><b>Condition</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SAN_ANALYSIS__CONDITION = eINSTANCE.getSANAnalysis_Condition();
+
+		/**
 		 * The meta object literal for the '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.StateBasedAnalysisImpl <em>State Based Analysis</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/SANAnalysisImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/SANAnalysisImpl.java
new file mode 100644
index 0000000..1b9c391
--- /dev/null
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/SANAnalysisImpl.java
@@ -0,0 +1,164 @@
+/**

+ */

+package org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl;

+

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+

+import org.eclipse.papyrus.MARTE.MARTE_AnalysisModel.GQAM.impl.GaAnalysisContextImpl;

+

+import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis;

+import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.StateBasedAnalysisPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>SAN Analysis</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.impl.SANAnalysisImpl#getCondition <em>Condition</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class SANAnalysisImpl extends GaAnalysisContextImpl implements SANAnalysis {

+	/**

+	 * The default value of the '{@link #getCondition() <em>Condition</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getCondition()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String CONDITION_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getCondition() <em>Condition</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getCondition()

+	 * @generated

+	 * @ordered

+	 */

+	protected String condition = CONDITION_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected SANAnalysisImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return StateBasedAnalysisPackage.Literals.SAN_ANALYSIS;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getCondition() {

+		return condition;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setCondition(String newCondition) {

+		String oldCondition = condition;

+		condition = newCondition;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, StateBasedAnalysisPackage.SAN_ANALYSIS__CONDITION, oldCondition, condition));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case StateBasedAnalysisPackage.SAN_ANALYSIS__CONDITION:

+				return getCondition();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case StateBasedAnalysisPackage.SAN_ANALYSIS__CONDITION:

+				setCondition((String)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case StateBasedAnalysisPackage.SAN_ANALYSIS__CONDITION:

+				setCondition(CONDITION_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case StateBasedAnalysisPackage.SAN_ANALYSIS__CONDITION:

+				return CONDITION_EDEFAULT == null ? condition != null : !CONDITION_EDEFAULT.equals(condition);

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (condition: ");

+		result.append(condition);

+		result.append(')');

+		return result.toString();

+	}

+

+} //SANAnalysisImpl

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/StateBasedAnalysisFactoryImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/StateBasedAnalysisFactoryImpl.java
index a814d8d..3cf6055 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/StateBasedAnalysisFactoryImpl.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/StateBasedAnalysisFactoryImpl.java
@@ -62,6 +62,7 @@
 	@Override
 	public EObject create(EClass eClass) {
 		switch (eClass.getClassifierID()) {
+			case StateBasedAnalysisPackage.SAN_ANALYSIS: return createSANAnalysis();
 			case StateBasedAnalysisPackage.STATE_BASED_ANALYSIS: return createStateBasedAnalysis();
 			case StateBasedAnalysisPackage.SBA_INITIAL_CONDITIONS: return createSBAInitialConditions();
 			default:
@@ -74,6 +75,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public SANAnalysis createSANAnalysis() {
+		SANAnalysisImpl sanAnalysis = new SANAnalysisImpl();
+		return sanAnalysis;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public StateBasedAnalysis createStateBasedAnalysis() {
 		StateBasedAnalysisImpl stateBasedAnalysis = new StateBasedAnalysisImpl();
 		return stateBasedAnalysis;
diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/StateBasedAnalysisPackageImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/StateBasedAnalysisPackageImpl.java
index 4fd374c..f55ca38 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/StateBasedAnalysisPackageImpl.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/impl/StateBasedAnalysisPackageImpl.java
@@ -47,6 +47,7 @@
 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.FaultTolerance.impl.FaultTolerancePackageImpl;
 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.MaintenanceMonitoringPackage;
 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.MaintenanceMonitoring.impl.MaintenanceMonitoringPackageImpl;
+import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis;
 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SBAInitialConditions;
 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.StateBasedAnalysis;
 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.StateBasedAnalysisFactory;
@@ -89,6 +90,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass sanAnalysisEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass stateBasedAnalysisEClass = null;
 
 	/**
@@ -241,6 +249,24 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EClass getSANAnalysis() {
+		return sanAnalysisEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSANAnalysis_Condition() {
+		return (EAttribute)sanAnalysisEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getStateBasedAnalysis() {
 		return stateBasedAnalysisEClass;
 	}
@@ -372,6 +398,9 @@
 		isCreated = true;
 
 		// Create classes and their features
+		sanAnalysisEClass = createEClass(SAN_ANALYSIS);
+		createEAttribute(sanAnalysisEClass, SAN_ANALYSIS__CONDITION);
+
 		stateBasedAnalysisEClass = createEClass(STATE_BASED_ANALYSIS);
 		createEAttribute(stateBasedAnalysisEClass, STATE_BASED_ANALYSIS__MEASURE);
 		createEAttribute(stateBasedAnalysisEClass, STATE_BASED_ANALYSIS__MEASURE_EVALUATION_RESULT);
@@ -420,9 +449,13 @@
 		// Set bounds for type parameters
 
 		// Add supertypes to classes
+		sanAnalysisEClass.getESuperTypes().add(theGQAMPackage.getGaAnalysisContext());
 		stateBasedAnalysisEClass.getESuperTypes().add(theGQAMPackage.getGaAnalysisContext());
 
 		// Initialize classes and features; add operations and parameters
+		initEClass(sanAnalysisEClass, SANAnalysis.class, "SANAnalysis", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSANAnalysis_Condition(), theTypesPackage.getString(), "condition", null, 1, 1, SANAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
 		initEClass(stateBasedAnalysisEClass, StateBasedAnalysis.class, "StateBasedAnalysis", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getStateBasedAnalysis_Measure(), theTypesPackage.getString(), "measure", null, 1, 1, StateBasedAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getStateBasedAnalysis_MeasureEvaluationResult(), theTypesPackage.getString(), "measureEvaluationResult", null, 0, 1, StateBasedAnalysis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/util/StateBasedAnalysisAdapterFactory.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/util/StateBasedAnalysisAdapterFactory.java
index e59957e..688e38a 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/util/StateBasedAnalysisAdapterFactory.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/util/StateBasedAnalysisAdapterFactory.java
@@ -77,6 +77,10 @@
 	protected StateBasedAnalysisSwitch<Adapter> modelSwitch =
 		new StateBasedAnalysisSwitch<Adapter>() {
 			@Override
+			public Adapter caseSANAnalysis(SANAnalysis object) {
+				return createSANAnalysisAdapter();
+			}
+			@Override
 			public Adapter caseStateBasedAnalysis(StateBasedAnalysis object) {
 				return createStateBasedAnalysisAdapter();
 			}
@@ -117,6 +121,20 @@
 
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis <em>SAN Analysis</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.SANAnalysis
+	 * @generated
+	 */
+	public Adapter createSANAnalysisAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedAnalysis.StateBasedAnalysis <em>State Based Analysis</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/util/StateBasedAnalysisSwitch.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/util/StateBasedAnalysisSwitch.java
index 66902ab..1caa335 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/util/StateBasedAnalysisSwitch.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/StateBased/StateBasedAnalysis/util/StateBasedAnalysisSwitch.java
@@ -79,6 +79,15 @@
 	@Override

 	protected T doSwitch(int classifierID, EObject theEObject) {

 		switch (classifierID) {

+			case StateBasedAnalysisPackage.SAN_ANALYSIS: {

+				SANAnalysis sanAnalysis = (SANAnalysis)theEObject;

+				T result = caseSANAnalysis(sanAnalysis);

+				if (result == null) result = caseGaAnalysisContext(sanAnalysis);

+				if (result == null) result = caseConfiguration(sanAnalysis);

+				if (result == null) result = caseExpressionContext(sanAnalysis);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

 			case StateBasedAnalysisPackage.STATE_BASED_ANALYSIS: {

 				StateBasedAnalysis stateBasedAnalysis = (StateBasedAnalysis)theEObject;

 				T result = caseStateBasedAnalysis(stateBasedAnalysis);

@@ -99,6 +108,21 @@
 	}

 

 	/**

+	 * Returns the result of interpreting the object as an instance of '<em>SAN Analysis</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>SAN Analysis</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseSANAnalysis(SANAnalysis object) {

+		return null;

+	}

+

+	/**

 	 * Returns the result of interpreting the object as an instance of '<em>State Based Analysis</em>'.

 	 * <!-- begin-user-doc -->

 	 * This implementation returns null;

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Adversary.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Adversary.java
new file mode 100644
index 0000000..edbd257
--- /dev/null
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Adversary.java
@@ -0,0 +1,52 @@
+/**

+ */

+package org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation;

+

+import org.eclipse.emf.ecore.EObject;

+

+import org.eclipse.uml2.uml.Actor;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Adversary</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary#getBase_Actor <em>Base Actor</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getAdversary()

+ * @model

+ * @generated

+ */

+public interface Adversary extends EObject {

+	/**

+	 * Returns the value of the '<em><b>Base Actor</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Base Actor</em>' reference isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Base Actor</em>' reference.

+	 * @see #setBase_Actor(Actor)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getAdversary_Base_Actor()

+	 * @model required="true" ordered="false"

+	 * @generated

+	 */

+	Actor getBase_Actor();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary#getBase_Actor <em>Base Actor</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Base Actor</em>' reference.

+	 * @see #getBase_Actor()

+	 * @generated

+	 */

+	void setBase_Actor(Actor value);

+

+} // Adversary

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Attack.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Attack.java
index a300907..5ce0815 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Attack.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Attack.java
@@ -2,6 +2,7 @@
  */

 package org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation;

 

+import org.eclipse.uml2.uml.Message;

 import org.polarsys.chess.chessmlprofile.Dependability.DependableComponent.AttackType;

 import org.polarsys.chess.chessmlprofile.Dependability.DependableComponent.Threat;

 import org.polarsys.chess.chessmlprofile.Dependability.DependableComponent.ThreatType;

@@ -20,6 +21,8 @@
  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getLikelihood <em>Likelihood</em>}</li>

  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getVulnerability <em>Vulnerability</em>}</li>

  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getThreat <em>Threat</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getBase_Message <em>Base Message</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getIntensity <em>Intensity</em>}</li>

  * </ul>

  *

  * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getAttack()

@@ -163,4 +166,56 @@
 	 */

 	void setThreat(ThreatType value);

 

+	/**

+	 * Returns the value of the '<em><b>Base Message</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Base Message</em>' reference isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Base Message</em>' reference.

+	 * @see #setBase_Message(Message)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getAttack_Base_Message()

+	 * @model required="true" ordered="false"

+	 * @generated

+	 */

+	Message getBase_Message();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getBase_Message <em>Base Message</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Base Message</em>' reference.

+	 * @see #getBase_Message()

+	 * @generated

+	 */

+	void setBase_Message(Message value);

+

+	/**

+	 * Returns the value of the '<em><b>Intensity</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Intensity</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Intensity</em>' attribute.

+	 * @see #setIntensity(String)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getAttack_Intensity()

+	 * @model dataType="org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.NFP_Real" ordered="false"

+	 * @generated

+	 */

+	String getIntensity();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getIntensity <em>Intensity</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Intensity</em>' attribute.

+	 * @see #getIntensity()

+	 * @generated

+	 */

+	void setIntensity(String value);

+

 } // Attack

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/AttackScenario.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/AttackScenario.java
new file mode 100644
index 0000000..85e0da7
--- /dev/null
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/AttackScenario.java
@@ -0,0 +1,106 @@
+/**

+ */

+package org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation;

+

+import org.eclipse.emf.ecore.EObject;

+

+import org.eclipse.uml2.uml.Interaction;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Attack Scenario</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getBase_Interaction <em>Base Interaction</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getFrequency <em>Frequency</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getProbSuccess <em>Prob Success</em>}</li>

+ * </ul>

+ *

+ * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getAttackScenario()

+ * @model

+ * @generated

+ */

+public interface AttackScenario extends EObject {

+	/**

+	 * Returns the value of the '<em><b>Base Interaction</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Base Interaction</em>' reference isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Base Interaction</em>' reference.

+	 * @see #setBase_Interaction(Interaction)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getAttackScenario_Base_Interaction()

+	 * @model required="true" ordered="false"

+	 * @generated

+	 */

+	Interaction getBase_Interaction();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getBase_Interaction <em>Base Interaction</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Base Interaction</em>' reference.

+	 * @see #getBase_Interaction()

+	 * @generated

+	 */

+	void setBase_Interaction(Interaction value);

+

+	/**

+	 * Returns the value of the '<em><b>Frequency</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Frequency</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Frequency</em>' attribute.

+	 * @see #setFrequency(String)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getAttackScenario_Frequency()

+	 * @model dataType="org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.NFP_Real" ordered="false"

+	 * @generated

+	 */

+	String getFrequency();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getFrequency <em>Frequency</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Frequency</em>' attribute.

+	 * @see #getFrequency()

+	 * @generated

+	 */

+	void setFrequency(String value);

+

+	/**

+	 * Returns the value of the '<em><b>Prob Success</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Prob Success</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Prob Success</em>' attribute.

+	 * @see #setProbSuccess(String)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getAttackScenario_ProbSuccess()

+	 * @model dataType="org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.NFP_Real" ordered="false"

+	 * @generated

+	 */

+	String getProbSuccess();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getProbSuccess <em>Prob Success</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Prob Success</em>' attribute.

+	 * @see #getProbSuccess()

+	 * @generated

+	 */

+	void setProbSuccess(String value);

+

+} // AttackScenario

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/ThreatsPropagationFactory.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/ThreatsPropagationFactory.java
index d47bf01..b976fcb 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/ThreatsPropagationFactory.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/ThreatsPropagationFactory.java
@@ -94,6 +94,24 @@
 	Vulnerability createVulnerability();

 

 	/**

+	 * Returns a new object of class '<em>Adversary</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Adversary</em>'.

+	 * @generated

+	 */

+	Adversary createAdversary();

+

+	/**

+	 * Returns a new object of class '<em>Attack Scenario</em>'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return a new object of class '<em>Attack Scenario</em>'.

+	 * @generated

+	 */

+	AttackScenario createAttackScenario();

+

+	/**

 	 * Returns a new object of class '<em>Error Model</em>'.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/ThreatsPropagationPackage.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/ThreatsPropagationPackage.java
index ec58bfe..010bd46 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/ThreatsPropagationPackage.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/ThreatsPropagationPackage.java
@@ -958,13 +958,31 @@
 	int ATTACK__THREAT = INTERNAL_PROPAGATION_FEATURE_COUNT + 4;

 

 	/**

+	 * The feature id for the '<em><b>Base Message</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATTACK__BASE_MESSAGE = INTERNAL_PROPAGATION_FEATURE_COUNT + 5;

+

+	/**

+	 * The feature id for the '<em><b>Intensity</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATTACK__INTENSITY = INTERNAL_PROPAGATION_FEATURE_COUNT + 6;

+

+	/**

 	 * The number of structural features of the '<em>Attack</em>' class.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

 	 * @ordered

 	 */

-	int ATTACK_FEATURE_COUNT = INTERNAL_PROPAGATION_FEATURE_COUNT + 5;

+	int ATTACK_FEATURE_COUNT = INTERNAL_PROPAGATION_FEATURE_COUNT + 7;

 

 	/**

 	 * The meta object id for the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.VulnerabilityImpl <em>Vulnerability</em>}' class.

@@ -1013,13 +1031,105 @@
 	int VULNERABILITY__KIND = INTERNAL_FAULT_FEATURE_COUNT + 0;

 

 	/**

+	 * The feature id for the '<em><b>Base Classifier</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int VULNERABILITY__BASE_CLASSIFIER = INTERNAL_FAULT_FEATURE_COUNT + 1;

+

+	/**

+	 * The feature id for the '<em><b>Base Port</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int VULNERABILITY__BASE_PORT = INTERNAL_FAULT_FEATURE_COUNT + 2;

+

+	/**

 	 * The number of structural features of the '<em>Vulnerability</em>' class.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

 	 * @ordered

 	 */

-	int VULNERABILITY_FEATURE_COUNT = INTERNAL_FAULT_FEATURE_COUNT + 1;

+	int VULNERABILITY_FEATURE_COUNT = INTERNAL_FAULT_FEATURE_COUNT + 3;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AdversaryImpl <em>Adversary</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AdversaryImpl

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.ThreatsPropagationPackageImpl#getAdversary()

+	 * @generated

+	 */

+	int ADVERSARY = 19;

+

+	/**

+	 * The feature id for the '<em><b>Base Actor</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ADVERSARY__BASE_ACTOR = 0;

+

+	/**

+	 * The number of structural features of the '<em>Adversary</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ADVERSARY_FEATURE_COUNT = 1;

+

+	/**

+	 * The meta object id for the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackScenarioImpl <em>Attack Scenario</em>}' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackScenarioImpl

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.ThreatsPropagationPackageImpl#getAttackScenario()

+	 * @generated

+	 */

+	int ATTACK_SCENARIO = 20;

+

+	/**

+	 * The feature id for the '<em><b>Base Interaction</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATTACK_SCENARIO__BASE_INTERACTION = 0;

+

+	/**

+	 * The feature id for the '<em><b>Frequency</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATTACK_SCENARIO__FREQUENCY = 1;

+

+	/**

+	 * The feature id for the '<em><b>Prob Success</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATTACK_SCENARIO__PROB_SUCCESS = 2;

+

+	/**

+	 * The number of structural features of the '<em>Attack Scenario</em>' class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int ATTACK_SCENARIO_FEATURE_COUNT = 3;

 

 	/**

 	 * The meta object id for the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.ErrorModelImpl <em>Error Model</em>}' class.

@@ -1029,7 +1139,7 @@
 	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.ThreatsPropagationPackageImpl#getErrorModel()

 	 * @generated

 	 */

-	int ERROR_MODEL = 19;

+	int ERROR_MODEL = 21;

 

 	/**

 	 * The feature id for the '<em><b>Base State Machine</b></em>' reference.

@@ -1057,7 +1167,7 @@
 	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.ThreatsPropagationPackageImpl#getRecoveryKind()

 	 * @generated

 	 */

-	int RECOVERY_KIND = 20;

+	int RECOVERY_KIND = 22;

 

 

 	/**

@@ -1385,6 +1495,28 @@
 	EAttribute getAttack_Threat();

 

 	/**

+	 * Returns the meta object for the reference '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getBase_Message <em>Base Message</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference '<em>Base Message</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getBase_Message()

+	 * @see #getAttack()

+	 * @generated

+	 */

+	EReference getAttack_Base_Message();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getIntensity <em>Intensity</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Intensity</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack#getIntensity()

+	 * @see #getAttack()

+	 * @generated

+	 */

+	EAttribute getAttack_Intensity();

+

+	/**

 	 * Returns the meta object for class '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability <em>Vulnerability</em>}'.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

@@ -1406,6 +1538,92 @@
 	EAttribute getVulnerability_Kind();

 

 	/**

+	 * Returns the meta object for the reference '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability#getBase_Classifier <em>Base Classifier</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference '<em>Base Classifier</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability#getBase_Classifier()

+	 * @see #getVulnerability()

+	 * @generated

+	 */

+	EReference getVulnerability_Base_Classifier();

+

+	/**

+	 * Returns the meta object for the reference '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability#getBase_Port <em>Base Port</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference '<em>Base Port</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability#getBase_Port()

+	 * @see #getVulnerability()

+	 * @generated

+	 */

+	EReference getVulnerability_Base_Port();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary <em>Adversary</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Adversary</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary

+	 * @generated

+	 */

+	EClass getAdversary();

+

+	/**

+	 * Returns the meta object for the reference '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary#getBase_Actor <em>Base Actor</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference '<em>Base Actor</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary#getBase_Actor()

+	 * @see #getAdversary()

+	 * @generated

+	 */

+	EReference getAdversary_Base_Actor();

+

+	/**

+	 * Returns the meta object for class '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario <em>Attack Scenario</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for class '<em>Attack Scenario</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario

+	 * @generated

+	 */

+	EClass getAttackScenario();

+

+	/**

+	 * Returns the meta object for the reference '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getBase_Interaction <em>Base Interaction</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the reference '<em>Base Interaction</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getBase_Interaction()

+	 * @see #getAttackScenario()

+	 * @generated

+	 */

+	EReference getAttackScenario_Base_Interaction();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getFrequency <em>Frequency</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Frequency</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getFrequency()

+	 * @see #getAttackScenario()

+	 * @generated

+	 */

+	EAttribute getAttackScenario_Frequency();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getProbSuccess <em>Prob Success</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Prob Success</em>'.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario#getProbSuccess()

+	 * @see #getAttackScenario()

+	 * @generated

+	 */

+	EAttribute getAttackScenario_ProbSuccess();

+

+	/**

 	 * Returns the meta object for class '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ErrorModel <em>Error Model</em>}'.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

@@ -2073,6 +2291,22 @@
 		EAttribute ATTACK__THREAT = eINSTANCE.getAttack_Threat();

 

 		/**

+		 * The meta object literal for the '<em><b>Base Message</b></em>' reference feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ATTACK__BASE_MESSAGE = eINSTANCE.getAttack_Base_Message();

+

+		/**

+		 * The meta object literal for the '<em><b>Intensity</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute ATTACK__INTENSITY = eINSTANCE.getAttack_Intensity();

+

+		/**

 		 * The meta object literal for the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.VulnerabilityImpl <em>Vulnerability</em>}' class.

 		 * <!-- begin-user-doc -->

 		 * <!-- end-user-doc -->

@@ -2091,6 +2325,74 @@
 		EAttribute VULNERABILITY__KIND = eINSTANCE.getVulnerability_Kind();

 

 		/**

+		 * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference VULNERABILITY__BASE_CLASSIFIER = eINSTANCE.getVulnerability_Base_Classifier();

+

+		/**

+		 * The meta object literal for the '<em><b>Base Port</b></em>' reference feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference VULNERABILITY__BASE_PORT = eINSTANCE.getVulnerability_Base_Port();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AdversaryImpl <em>Adversary</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AdversaryImpl

+		 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.ThreatsPropagationPackageImpl#getAdversary()

+		 * @generated

+		 */

+		EClass ADVERSARY = eINSTANCE.getAdversary();

+

+		/**

+		 * The meta object literal for the '<em><b>Base Actor</b></em>' reference feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ADVERSARY__BASE_ACTOR = eINSTANCE.getAdversary_Base_Actor();

+

+		/**

+		 * The meta object literal for the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackScenarioImpl <em>Attack Scenario</em>}' class.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackScenarioImpl

+		 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.ThreatsPropagationPackageImpl#getAttackScenario()

+		 * @generated

+		 */

+		EClass ATTACK_SCENARIO = eINSTANCE.getAttackScenario();

+

+		/**

+		 * The meta object literal for the '<em><b>Base Interaction</b></em>' reference feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EReference ATTACK_SCENARIO__BASE_INTERACTION = eINSTANCE.getAttackScenario_Base_Interaction();

+

+		/**

+		 * The meta object literal for the '<em><b>Frequency</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute ATTACK_SCENARIO__FREQUENCY = eINSTANCE.getAttackScenario_Frequency();

+

+		/**

+		 * The meta object literal for the '<em><b>Prob Success</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute ATTACK_SCENARIO__PROB_SUCCESS = eINSTANCE.getAttackScenario_ProbSuccess();

+

+		/**

 		 * The meta object literal for the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.ErrorModelImpl <em>Error Model</em>}' class.

 		 * <!-- begin-user-doc -->

 		 * <!-- end-user-doc -->

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Vulnerability.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Vulnerability.java
index a985451..57e7213 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Vulnerability.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/Vulnerability.java
@@ -2,6 +2,8 @@
  */

 package org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation;

 

+import org.eclipse.uml2.uml.Classifier;

+import org.eclipse.uml2.uml.Port;

 import org.polarsys.chess.chessmlprofile.Dependability.DependableComponent.VulnerabilityType;

 

 /**

@@ -14,6 +16,8 @@
  * </p>

  * <ul>

  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability#getKind <em>Kind</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability#getBase_Classifier <em>Base Classifier</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability#getBase_Port <em>Base Port</em>}</li>

  * </ul>

  *

  * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getVulnerability()

@@ -51,4 +55,56 @@
 	 */

 	void setKind(VulnerabilityType value);

 

+	/**

+	 * Returns the value of the '<em><b>Base Classifier</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Base Classifier</em>' reference isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Base Classifier</em>' reference.

+	 * @see #setBase_Classifier(Classifier)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getVulnerability_Base_Classifier()

+	 * @model required="true" ordered="false"

+	 * @generated

+	 */

+	Classifier getBase_Classifier();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability#getBase_Classifier <em>Base Classifier</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Base Classifier</em>' reference.

+	 * @see #getBase_Classifier()

+	 * @generated

+	 */

+	void setBase_Classifier(Classifier value);

+

+	/**

+	 * Returns the value of the '<em><b>Base Port</b></em>' reference.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Base Port</em>' reference isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Base Port</em>' reference.

+	 * @see #setBase_Port(Port)

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage#getVulnerability_Base_Port()

+	 * @model required="true" ordered="false"

+	 * @generated

+	 */

+	Port getBase_Port();

+

+	/**

+	 * Sets the value of the '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Vulnerability#getBase_Port <em>Base Port</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Base Port</em>' reference.

+	 * @see #getBase_Port()

+	 * @generated

+	 */

+	void setBase_Port(Port value);

+

 } // Vulnerability

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AdversaryImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AdversaryImpl.java
new file mode 100644
index 0000000..42bd775
--- /dev/null
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AdversaryImpl.java
@@ -0,0 +1,158 @@
+/**

+ */

+package org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl;

+

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.InternalEObject;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.eclipse.emf.ecore.impl.EObjectImpl;

+

+import org.eclipse.uml2.uml.Actor;

+

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary;

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Adversary</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AdversaryImpl#getBase_Actor <em>Base Actor</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class AdversaryImpl extends EObjectImpl implements Adversary {

+	/**

+	 * The cached value of the '{@link #getBase_Actor() <em>Base Actor</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getBase_Actor()

+	 * @generated

+	 * @ordered

+	 */

+	protected Actor base_Actor;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected AdversaryImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return ThreatsPropagationPackage.Literals.ADVERSARY;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Actor getBase_Actor() {

+		if (base_Actor != null && base_Actor.eIsProxy()) {

+			InternalEObject oldBase_Actor = (InternalEObject)base_Actor;

+			base_Actor = (Actor)eResolveProxy(oldBase_Actor);

+			if (base_Actor != oldBase_Actor) {

+				if (eNotificationRequired())

+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ThreatsPropagationPackage.ADVERSARY__BASE_ACTOR, oldBase_Actor, base_Actor));

+			}

+		}

+		return base_Actor;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Actor basicGetBase_Actor() {

+		return base_Actor;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setBase_Actor(Actor newBase_Actor) {

+		Actor oldBase_Actor = base_Actor;

+		base_Actor = newBase_Actor;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, ThreatsPropagationPackage.ADVERSARY__BASE_ACTOR, oldBase_Actor, base_Actor));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case ThreatsPropagationPackage.ADVERSARY__BASE_ACTOR:

+				if (resolve) return getBase_Actor();

+				return basicGetBase_Actor();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case ThreatsPropagationPackage.ADVERSARY__BASE_ACTOR:

+				setBase_Actor((Actor)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case ThreatsPropagationPackage.ADVERSARY__BASE_ACTOR:

+				setBase_Actor((Actor)null);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case ThreatsPropagationPackage.ADVERSARY__BASE_ACTOR:

+				return base_Actor != null;

+		}

+		return super.eIsSet(featureID);

+	}

+

+} //AdversaryImpl

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AttackImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AttackImpl.java
index fa5bd1d..0022254 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AttackImpl.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AttackImpl.java
@@ -9,6 +9,7 @@
 

 import org.eclipse.emf.ecore.impl.ENotificationImpl;

 

+import org.eclipse.uml2.uml.Message;

 import org.polarsys.chess.chessmlprofile.Dependability.DependableComponent.AttackType;

 import org.polarsys.chess.chessmlprofile.Dependability.DependableComponent.Threat;

 

@@ -30,6 +31,8 @@
  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackImpl#getLikelihood <em>Likelihood</em>}</li>

  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackImpl#getVulnerability <em>Vulnerability</em>}</li>

  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackImpl#getThreat <em>Threat</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackImpl#getBase_Message <em>Base Message</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackImpl#getIntensity <em>Intensity</em>}</li>

  * </ul>

  *

  * @generated

@@ -126,6 +129,36 @@
 	protected ThreatType threat = THREAT_EDEFAULT;

 

 	/**

+	 * The cached value of the '{@link #getBase_Message() <em>Base Message</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getBase_Message()

+	 * @generated

+	 * @ordered

+	 */

+	protected Message base_Message;

+

+	/**

+	 * The default value of the '{@link #getIntensity() <em>Intensity</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getIntensity()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String INTENSITY_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getIntensity() <em>Intensity</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getIntensity()

+	 * @generated

+	 * @ordered

+	 */

+	protected String intensity = INTENSITY_EDEFAULT;

+

+	/**

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

@@ -271,6 +304,65 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

+	public Message getBase_Message() {

+		if (base_Message != null && base_Message.eIsProxy()) {

+			InternalEObject oldBase_Message = (InternalEObject)base_Message;

+			base_Message = (Message)eResolveProxy(oldBase_Message);

+			if (base_Message != oldBase_Message) {

+				if (eNotificationRequired())

+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ThreatsPropagationPackage.ATTACK__BASE_MESSAGE, oldBase_Message, base_Message));

+			}

+		}

+		return base_Message;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Message basicGetBase_Message() {

+		return base_Message;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setBase_Message(Message newBase_Message) {

+		Message oldBase_Message = base_Message;

+		base_Message = newBase_Message;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, ThreatsPropagationPackage.ATTACK__BASE_MESSAGE, oldBase_Message, base_Message));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getIntensity() {

+		return intensity;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setIntensity(String newIntensity) {

+		String oldIntensity = intensity;

+		intensity = newIntensity;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, ThreatsPropagationPackage.ATTACK__INTENSITY, oldIntensity, intensity));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

 	@Override

 	public Object eGet(int featureID, boolean resolve, boolean coreType) {

 		switch (featureID) {

@@ -285,6 +377,11 @@
 				return basicGetVulnerability();

 			case ThreatsPropagationPackage.ATTACK__THREAT:

 				return getThreat();

+			case ThreatsPropagationPackage.ATTACK__BASE_MESSAGE:

+				if (resolve) return getBase_Message();

+				return basicGetBase_Message();

+			case ThreatsPropagationPackage.ATTACK__INTENSITY:

+				return getIntensity();

 		}

 		return super.eGet(featureID, resolve, coreType);

 	}

@@ -312,6 +409,12 @@
 			case ThreatsPropagationPackage.ATTACK__THREAT:

 				setThreat((ThreatType)newValue);

 				return;

+			case ThreatsPropagationPackage.ATTACK__BASE_MESSAGE:

+				setBase_Message((Message)newValue);

+				return;

+			case ThreatsPropagationPackage.ATTACK__INTENSITY:

+				setIntensity((String)newValue);

+				return;

 		}

 		super.eSet(featureID, newValue);

 	}

@@ -339,6 +442,12 @@
 			case ThreatsPropagationPackage.ATTACK__THREAT:

 				setThreat(THREAT_EDEFAULT);

 				return;

+			case ThreatsPropagationPackage.ATTACK__BASE_MESSAGE:

+				setBase_Message((Message)null);

+				return;

+			case ThreatsPropagationPackage.ATTACK__INTENSITY:

+				setIntensity(INTENSITY_EDEFAULT);

+				return;

 		}

 		super.eUnset(featureID);

 	}

@@ -361,6 +470,10 @@
 				return vulnerability != null;

 			case ThreatsPropagationPackage.ATTACK__THREAT:

 				return threat != THREAT_EDEFAULT;

+			case ThreatsPropagationPackage.ATTACK__BASE_MESSAGE:

+				return base_Message != null;

+			case ThreatsPropagationPackage.ATTACK__INTENSITY:

+				return INTENSITY_EDEFAULT == null ? intensity != null : !INTENSITY_EDEFAULT.equals(intensity);

 		}

 		return super.eIsSet(featureID);

 	}

@@ -383,6 +496,8 @@
 		result.append(likelihood);

 		result.append(", threat: ");

 		result.append(threat);

+		result.append(", intensity: ");

+		result.append(intensity);

 		result.append(')');

 		return result.toString();

 	}

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AttackScenarioImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AttackScenarioImpl.java
new file mode 100644
index 0000000..f484b94
--- /dev/null
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/AttackScenarioImpl.java
@@ -0,0 +1,280 @@
+/**

+ */

+package org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl;

+

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.InternalEObject;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+import org.eclipse.emf.ecore.impl.EObjectImpl;

+

+import org.eclipse.uml2.uml.Interaction;

+

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario;

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Attack Scenario</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * </p>

+ * <ul>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackScenarioImpl#getBase_Interaction <em>Base Interaction</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackScenarioImpl#getFrequency <em>Frequency</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.AttackScenarioImpl#getProbSuccess <em>Prob Success</em>}</li>

+ * </ul>

+ *

+ * @generated

+ */

+public class AttackScenarioImpl extends EObjectImpl implements AttackScenario {

+	/**

+	 * The cached value of the '{@link #getBase_Interaction() <em>Base Interaction</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getBase_Interaction()

+	 * @generated

+	 * @ordered

+	 */

+	protected Interaction base_Interaction;

+

+	/**

+	 * The default value of the '{@link #getFrequency() <em>Frequency</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getFrequency()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String FREQUENCY_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getFrequency() <em>Frequency</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getFrequency()

+	 * @generated

+	 * @ordered

+	 */

+	protected String frequency = FREQUENCY_EDEFAULT;

+

+	/**

+	 * The default value of the '{@link #getProbSuccess() <em>Prob Success</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getProbSuccess()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String PROB_SUCCESS_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getProbSuccess() <em>Prob Success</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getProbSuccess()

+	 * @generated

+	 * @ordered

+	 */

+	protected String probSuccess = PROB_SUCCESS_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected AttackScenarioImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	protected EClass eStaticClass() {

+		return ThreatsPropagationPackage.Literals.ATTACK_SCENARIO;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Interaction getBase_Interaction() {

+		if (base_Interaction != null && base_Interaction.eIsProxy()) {

+			InternalEObject oldBase_Interaction = (InternalEObject)base_Interaction;

+			base_Interaction = (Interaction)eResolveProxy(oldBase_Interaction);

+			if (base_Interaction != oldBase_Interaction) {

+				if (eNotificationRequired())

+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ThreatsPropagationPackage.ATTACK_SCENARIO__BASE_INTERACTION, oldBase_Interaction, base_Interaction));

+			}

+		}

+		return base_Interaction;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Interaction basicGetBase_Interaction() {

+		return base_Interaction;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setBase_Interaction(Interaction newBase_Interaction) {

+		Interaction oldBase_Interaction = base_Interaction;

+		base_Interaction = newBase_Interaction;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, ThreatsPropagationPackage.ATTACK_SCENARIO__BASE_INTERACTION, oldBase_Interaction, base_Interaction));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getFrequency() {

+		return frequency;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setFrequency(String newFrequency) {

+		String oldFrequency = frequency;

+		frequency = newFrequency;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, ThreatsPropagationPackage.ATTACK_SCENARIO__FREQUENCY, oldFrequency, frequency));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getProbSuccess() {

+		return probSuccess;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setProbSuccess(String newProbSuccess) {

+		String oldProbSuccess = probSuccess;

+		probSuccess = newProbSuccess;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, ThreatsPropagationPackage.ATTACK_SCENARIO__PROB_SUCCESS, oldProbSuccess, probSuccess));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__BASE_INTERACTION:

+				if (resolve) return getBase_Interaction();

+				return basicGetBase_Interaction();

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__FREQUENCY:

+				return getFrequency();

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__PROB_SUCCESS:

+				return getProbSuccess();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__BASE_INTERACTION:

+				setBase_Interaction((Interaction)newValue);

+				return;

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__FREQUENCY:

+				setFrequency((String)newValue);

+				return;

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__PROB_SUCCESS:

+				setProbSuccess((String)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__BASE_INTERACTION:

+				setBase_Interaction((Interaction)null);

+				return;

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__FREQUENCY:

+				setFrequency(FREQUENCY_EDEFAULT);

+				return;

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__PROB_SUCCESS:

+				setProbSuccess(PROB_SUCCESS_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__BASE_INTERACTION:

+				return base_Interaction != null;

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__FREQUENCY:

+				return FREQUENCY_EDEFAULT == null ? frequency != null : !FREQUENCY_EDEFAULT.equals(frequency);

+			case ThreatsPropagationPackage.ATTACK_SCENARIO__PROB_SUCCESS:

+				return PROB_SUCCESS_EDEFAULT == null ? probSuccess != null : !PROB_SUCCESS_EDEFAULT.equals(probSuccess);

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	@Override

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (frequency: ");

+		result.append(frequency);

+		result.append(", probSuccess: ");

+		result.append(probSuccess);

+		result.append(')');

+		return result.toString();

+	}

+

+} //AttackScenarioImpl

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/ThreatsPropagationFactoryImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/ThreatsPropagationFactoryImpl.java
index a2d251a..5cb78c1 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/ThreatsPropagationFactoryImpl.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/ThreatsPropagationFactoryImpl.java
@@ -97,6 +97,8 @@
 			case ThreatsPropagationPackage.FAULT_HANDLING: return createFaultHandling();

 			case ThreatsPropagationPackage.ATTACK: return createAttack();

 			case ThreatsPropagationPackage.VULNERABILITY: return createVulnerability();

+			case ThreatsPropagationPackage.ADVERSARY: return createAdversary();

+			case ThreatsPropagationPackage.ATTACK_SCENARIO: return createAttackScenario();

 			case ThreatsPropagationPackage.ERROR_MODEL: return createErrorModel();

 			default:

 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");

@@ -208,6 +210,26 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

+	public Adversary createAdversary() {

+		AdversaryImpl adversary = new AdversaryImpl();

+		return adversary;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public AttackScenario createAttackScenario() {

+		AttackScenarioImpl attackScenario = new AttackScenarioImpl();

+		return attackScenario;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

 	public ErrorModel createErrorModel() {

 		ErrorModelImpl errorModel = new ErrorModelImpl();

 		return errorModel;

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/ThreatsPropagationPackageImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/ThreatsPropagationPackageImpl.java
index da0469f..df4ae06 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/ThreatsPropagationPackageImpl.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/ThreatsPropagationPackageImpl.java
@@ -54,7 +54,9 @@
 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedDataTypes.StateBasedDataTypesPackage;

 import org.polarsys.chess.chessmlprofile.Dependability.StateBased.StateBasedDataTypes.impl.StateBasedDataTypesPackageImpl;

 

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary;

 import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Attack;

+import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario;

 import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.DegradedState;

 import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.DepEvent;

 import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ErrorDetection;

@@ -158,6 +160,20 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

+	private EClass adversaryEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	private EClass attackScenarioEClass = null;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

 	private EClass errorModelEClass = null;

 

 	/**

@@ -664,6 +680,24 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

+	public EReference getAttack_Base_Message() {

+		return (EReference)attackEClass.getEStructuralFeatures().get(5);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getAttack_Intensity() {

+		return (EAttribute)attackEClass.getEStructuralFeatures().get(6);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

 	public EClass getVulnerability() {

 		return vulnerabilityEClass;

 	}

@@ -682,6 +716,78 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

+	public EReference getVulnerability_Base_Classifier() {

+		return (EReference)vulnerabilityEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getVulnerability_Base_Port() {

+		return (EReference)vulnerabilityEClass.getEStructuralFeatures().get(2);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getAdversary() {

+		return adversaryEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getAdversary_Base_Actor() {

+		return (EReference)adversaryEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EClass getAttackScenario() {

+		return attackScenarioEClass;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EReference getAttackScenario_Base_Interaction() {

+		return (EReference)attackScenarioEClass.getEStructuralFeatures().get(0);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getAttackScenario_Frequency() {

+		return (EAttribute)attackScenarioEClass.getEStructuralFeatures().get(1);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public EAttribute getAttackScenario_ProbSuccess() {

+		return (EAttribute)attackScenarioEClass.getEStructuralFeatures().get(2);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

 	public EClass getErrorModel() {

 		return errorModelEClass;

 	}

@@ -1119,9 +1225,21 @@
 		createEAttribute(attackEClass, ATTACK__LIKELIHOOD);

 		createEReference(attackEClass, ATTACK__VULNERABILITY);

 		createEAttribute(attackEClass, ATTACK__THREAT);

+		createEReference(attackEClass, ATTACK__BASE_MESSAGE);

+		createEAttribute(attackEClass, ATTACK__INTENSITY);

 

 		vulnerabilityEClass = createEClass(VULNERABILITY);

 		createEAttribute(vulnerabilityEClass, VULNERABILITY__KIND);

+		createEReference(vulnerabilityEClass, VULNERABILITY__BASE_CLASSIFIER);

+		createEReference(vulnerabilityEClass, VULNERABILITY__BASE_PORT);

+

+		adversaryEClass = createEClass(ADVERSARY);

+		createEReference(adversaryEClass, ADVERSARY__BASE_ACTOR);

+

+		attackScenarioEClass = createEClass(ATTACK_SCENARIO);

+		createEReference(attackScenarioEClass, ATTACK_SCENARIO__BASE_INTERACTION);

+		createEAttribute(attackScenarioEClass, ATTACK_SCENARIO__FREQUENCY);

+		createEAttribute(attackScenarioEClass, ATTACK_SCENARIO__PROB_SUCCESS);

 

 		errorModelEClass = createEClass(ERROR_MODEL);

 		createEReference(errorModelEClass, ERROR_MODEL__BASE_STATE_MACHINE);

@@ -1253,9 +1371,21 @@
 		initEAttribute(getAttack_Likelihood(), theTypesPackage.getString(), "likelihood", null, 1, 1, Attack.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

 		initEReference(getAttack_Vulnerability(), this.getVulnerability(), null, "vulnerability", null, 1, 1, Attack.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

 		initEAttribute(getAttack_Threat(), theDependableComponentPackage.getThreatType(), "threat", null, 1, 1, Attack.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

+		initEReference(getAttack_Base_Message(), theUMLPackage.getMessage(), null, "base_Message", null, 1, 1, Attack.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

+		initEAttribute(getAttack_Intensity(), theBasicNFP_TypesPackage.getNFP_Real(), "intensity", null, 0, 1, Attack.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

 

 		initEClass(vulnerabilityEClass, Vulnerability.class, "Vulnerability", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

 		initEAttribute(getVulnerability_Kind(), theDependableComponentPackage.getVulnerabilityType(), "kind", null, 1, 1, Vulnerability.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

+		initEReference(getVulnerability_Base_Classifier(), theUMLPackage.getClassifier(), null, "base_Classifier", null, 1, 1, Vulnerability.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

+		initEReference(getVulnerability_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, Vulnerability.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

+

+		initEClass(adversaryEClass, Adversary.class, "Adversary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getAdversary_Base_Actor(), theUMLPackage.getActor(), null, "base_Actor", null, 1, 1, Adversary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

+

+		initEClass(attackScenarioEClass, AttackScenario.class, "AttackScenario", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

+		initEReference(getAttackScenario_Base_Interaction(), theUMLPackage.getInteraction(), null, "base_Interaction", null, 1, 1, AttackScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

+		initEAttribute(getAttackScenario_Frequency(), theBasicNFP_TypesPackage.getNFP_Real(), "frequency", null, 0, 1, AttackScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

+		initEAttribute(getAttackScenario_ProbSuccess(), theBasicNFP_TypesPackage.getNFP_Real(), "probSuccess", null, 0, 1, AttackScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

 

 		initEClass(errorModelEClass, ErrorModel.class, "ErrorModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

 		initEReference(getErrorModel_Base_StateMachine(), theUMLPackage.getStateMachine(), null, "base_StateMachine", null, 1, 1, ErrorModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/VulnerabilityImpl.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/VulnerabilityImpl.java
index e2154b7..a3af021 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/VulnerabilityImpl.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/impl/VulnerabilityImpl.java
@@ -6,8 +6,11 @@
 

 import org.eclipse.emf.ecore.EClass;

 

+import org.eclipse.emf.ecore.InternalEObject;

 import org.eclipse.emf.ecore.impl.ENotificationImpl;

 

+import org.eclipse.uml2.uml.Classifier;

+import org.eclipse.uml2.uml.Port;

 import org.polarsys.chess.chessmlprofile.Dependability.DependableComponent.VulnerabilityType;

 

 import org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ThreatsPropagationPackage;

@@ -22,6 +25,8 @@
  * </p>

  * <ul>

  *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.VulnerabilityImpl#getKind <em>Kind</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.VulnerabilityImpl#getBase_Classifier <em>Base Classifier</em>}</li>

+ *   <li>{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.impl.VulnerabilityImpl#getBase_Port <em>Base Port</em>}</li>

  * </ul>

  *

  * @generated

@@ -47,6 +52,26 @@
 	protected VulnerabilityType kind = KIND_EDEFAULT;

 

 	/**

+	 * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getBase_Classifier()

+	 * @generated

+	 * @ordered

+	 */

+	protected Classifier base_Classifier;

+

+	/**

+	 * The cached value of the '{@link #getBase_Port() <em>Base Port</em>}' reference.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getBase_Port()

+	 * @generated

+	 * @ordered

+	 */

+	protected Port base_Port;

+

+	/**

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

@@ -91,11 +116,93 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

+	public Classifier getBase_Classifier() {

+		if (base_Classifier != null && base_Classifier.eIsProxy()) {

+			InternalEObject oldBase_Classifier = (InternalEObject)base_Classifier;

+			base_Classifier = (Classifier)eResolveProxy(oldBase_Classifier);

+			if (base_Classifier != oldBase_Classifier) {

+				if (eNotificationRequired())

+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ThreatsPropagationPackage.VULNERABILITY__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));

+			}

+		}

+		return base_Classifier;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Classifier basicGetBase_Classifier() {

+		return base_Classifier;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setBase_Classifier(Classifier newBase_Classifier) {

+		Classifier oldBase_Classifier = base_Classifier;

+		base_Classifier = newBase_Classifier;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, ThreatsPropagationPackage.VULNERABILITY__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Port getBase_Port() {

+		if (base_Port != null && base_Port.eIsProxy()) {

+			InternalEObject oldBase_Port = (InternalEObject)base_Port;

+			base_Port = (Port)eResolveProxy(oldBase_Port);

+			if (base_Port != oldBase_Port) {

+				if (eNotificationRequired())

+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ThreatsPropagationPackage.VULNERABILITY__BASE_PORT, oldBase_Port, base_Port));

+			}

+		}

+		return base_Port;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Port basicGetBase_Port() {

+		return base_Port;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setBase_Port(Port newBase_Port) {

+		Port oldBase_Port = base_Port;

+		base_Port = newBase_Port;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, ThreatsPropagationPackage.VULNERABILITY__BASE_PORT, oldBase_Port, base_Port));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

 	@Override

 	public Object eGet(int featureID, boolean resolve, boolean coreType) {

 		switch (featureID) {

 			case ThreatsPropagationPackage.VULNERABILITY__KIND:

 				return getKind();

+			case ThreatsPropagationPackage.VULNERABILITY__BASE_CLASSIFIER:

+				if (resolve) return getBase_Classifier();

+				return basicGetBase_Classifier();

+			case ThreatsPropagationPackage.VULNERABILITY__BASE_PORT:

+				if (resolve) return getBase_Port();

+				return basicGetBase_Port();

 		}

 		return super.eGet(featureID, resolve, coreType);

 	}

@@ -111,6 +218,12 @@
 			case ThreatsPropagationPackage.VULNERABILITY__KIND:

 				setKind((VulnerabilityType)newValue);

 				return;

+			case ThreatsPropagationPackage.VULNERABILITY__BASE_CLASSIFIER:

+				setBase_Classifier((Classifier)newValue);

+				return;

+			case ThreatsPropagationPackage.VULNERABILITY__BASE_PORT:

+				setBase_Port((Port)newValue);

+				return;

 		}

 		super.eSet(featureID, newValue);

 	}

@@ -126,6 +239,12 @@
 			case ThreatsPropagationPackage.VULNERABILITY__KIND:

 				setKind(KIND_EDEFAULT);

 				return;

+			case ThreatsPropagationPackage.VULNERABILITY__BASE_CLASSIFIER:

+				setBase_Classifier((Classifier)null);

+				return;

+			case ThreatsPropagationPackage.VULNERABILITY__BASE_PORT:

+				setBase_Port((Port)null);

+				return;

 		}

 		super.eUnset(featureID);

 	}

@@ -140,6 +259,10 @@
 		switch (featureID) {

 			case ThreatsPropagationPackage.VULNERABILITY__KIND:

 				return kind != KIND_EDEFAULT;

+			case ThreatsPropagationPackage.VULNERABILITY__BASE_CLASSIFIER:

+				return base_Classifier != null;

+			case ThreatsPropagationPackage.VULNERABILITY__BASE_PORT:

+				return base_Port != null;

 		}

 		return super.eIsSet(featureID);

 	}

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/util/ThreatsPropagationAdapterFactory.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/util/ThreatsPropagationAdapterFactory.java
index 6bba17a..8388ad1 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/util/ThreatsPropagationAdapterFactory.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/util/ThreatsPropagationAdapterFactory.java
@@ -165,6 +165,14 @@
 				return createVulnerabilityAdapter();

 			}

 			@Override

+			public Adapter caseAdversary(Adversary object) {

+				return createAdversaryAdapter();

+			}

+			@Override

+			public Adapter caseAttackScenario(AttackScenario object) {

+				return createAttackScenarioAdapter();

+			}

+			@Override

 			public Adapter caseErrorModel(ErrorModel object) {

 				return createErrorModelAdapter();

 			}

@@ -287,6 +295,34 @@
 	}

 

 	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary <em>Adversary</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.Adversary

+	 * @generated

+	 */

+	public Adapter createAdversaryAdapter() {

+		return null;

+	}

+

+	/**

+	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario <em>Attack Scenario</em>}'.

+	 * <!-- begin-user-doc -->

+	 * This default implementation returns null so that we can easily ignore cases;

+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.

+	 * <!-- end-user-doc -->

+	 * @return the new adapter.

+	 * @see org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.AttackScenario

+	 * @generated

+	 */

+	public Adapter createAttackScenarioAdapter() {

+		return null;

+	}

+

+	/**

 	 * Creates a new adapter for an object of class '{@link org.polarsys.chess.chessmlprofile.Dependability.ThreatsPropagation.ErrorModel <em>Error Model</em>}'.

 	 * <!-- begin-user-doc -->

 	 * This default implementation returns null so that we can easily ignore cases;

diff --git a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/util/ThreatsPropagationSwitch.java b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/util/ThreatsPropagationSwitch.java
index 2a8ffee..06898db 100644
--- a/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/util/ThreatsPropagationSwitch.java
+++ b/plugins/org.polarsys.chess.chessmlprofile/src/org/polarsys/chess/chessmlprofile/Dependability/ThreatsPropagation/util/ThreatsPropagationSwitch.java
@@ -207,6 +207,18 @@
 				if (result == null) result = defaultCase(theEObject);

 				return result;

 			}

+			case ThreatsPropagationPackage.ADVERSARY: {

+				Adversary adversary = (Adversary)theEObject;

+				T result = caseAdversary(adversary);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

+			case ThreatsPropagationPackage.ATTACK_SCENARIO: {

+				AttackScenario attackScenario = (AttackScenario)theEObject;

+				T result = caseAttackScenario(attackScenario);

+				if (result == null) result = defaultCase(theEObject);

+				return result;

+			}

 			case ThreatsPropagationPackage.ERROR_MODEL: {

 				ErrorModel errorModel = (ErrorModel)theEObject;

 				T result = caseErrorModel(errorModel);

@@ -323,6 +335,36 @@
 	}

 

 	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Adversary</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Adversary</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseAdversary(Adversary object) {

+		return null;

+	}

+

+	/**

+	 * Returns the result of interpreting the object as an instance of '<em>Attack Scenario</em>'.

+	 * <!-- begin-user-doc -->

+	 * This implementation returns null;

+	 * returning a non-null result will terminate the switch.

+	 * <!-- end-user-doc -->

+	 * @param object the target of the switch.

+	 * @return the result of interpreting the object as an instance of '<em>Attack Scenario</em>'.

+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

+	 * @generated

+	 */

+	public T caseAttackScenario(AttackScenario object) {

+		return null;

+	}

+

+	/**

 	 * Returns the result of interpreting the object as an instance of '<em>Error Model</em>'.

 	 * <!-- begin-user-doc -->

 	 * This implementation returns null;

diff --git a/plugins/org.polarsys.chess.codegen.ada/plugin.xml b/plugins/org.polarsys.chess.codegen.ada/plugin.xml
index 67f20b2..6b13967 100644
--- a/plugins/org.polarsys.chess.codegen.ada/plugin.xml
+++ b/plugins/org.polarsys.chess.codegen.ada/plugin.xml
@@ -14,41 +14,36 @@
          point="org.eclipse.ui.menus">
       <menuContribution
             allPopups="false"
-            locationURI="menu:org.eclipse.ui.main.menu">
+            locationURI="menu:org.polarsys.chess.mainMenu?after=org.polarsys.chess.mainmenu.separator4">
          <menu
-               id="org.polarsys.chess.mainMenu"
-               label="CHESS"
-               mnemonic="E">
-            <menu
-                  id="org.polarsys.chess.codegen.adaerationMenu"
-                  label="Code generation">
-               <command
-                     commandId="org.polarsys.chess.codegen.ada.ada.id"
-                     label="Ada infrastructural code generator"
-                     style="push">
-                  <visibleWhen
-                        checkEnabled="false">
-                     <or>
-                        <with
-                              variable="activeEditorId">
-                           <equals
-                                 value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
-                           </equals>
-                        </with>
-                        <with
-                              variable="activeEditorInput">
-                           <adapt
-                                 type="org.eclipse.core.resources.IResource">
-                              <test
-                                    property="org.eclipse.core.resources.projectNature"
-                                    value="org.polarsys.chess.CHESSNature">
-                              </test>
-                           </adapt>
-                        </with>
-                     </or>
-                  </visibleWhen>
-               </command>
-            </menu>
+               id="chess.menu.codegen.id"
+               label="Code generation">
+            <command
+                  commandId="org.polarsys.chess.codegen.ada.ada.id"
+                  label="Ada infrastructural code generator"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <with
+                           variable="activeEditorId">
+                        <equals
+                              value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
+                        </equals>
+                     </with>
+                     <with
+                           variable="activeEditorInput">
+                        <adapt
+                              type="org.eclipse.core.resources.IResource">
+                           <test
+                                 property="org.eclipse.core.resources.projectNature"
+                                 value="org.polarsys.chess.CHESSNature">
+                           </test>
+                        </adapt>
+                     </with>
+                  </or>
+               </visibleWhen>
+            </command>
          </menu>
       </menuContribution>
    </extension>
diff --git a/plugins/org.polarsys.chess.codegen.ada/tasks/generateInfrastructure.xml b/plugins/org.polarsys.chess.codegen.ada/tasks/generateInfrastructure.xml
index 23f8e89..b6058aa 100644
--- a/plugins/org.polarsys.chess.codegen.ada/tasks/generateInfrastructure.xml
+++ b/plugins/org.polarsys.chess.codegen.ada/tasks/generateInfrastructure.xml
@@ -1,14 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project default="generateInfrastructure" name="org.polarsys.chess.codegen.ada">
+<<<<<<< HEAD
+    <property name="ECLIPSE_HOME" value="../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515"/>
+    <property name="ECLIPSE_WORKSPACE" value="../../../../../Programmi/PolarsysCHESS-Neon-win32-x86_64_20190515/workspace"/>
+=======
     <property name="ECLIPSE_HOME" value="../../../../../Eclipse/eclipse"/>
     <property name="ECLIPSE_WORKSPACE" value="../../../../../Workspaces/FirstConfig/ws"/>
+>>>>>>> refs/remotes/origin/master
 
     <!-- The classpath with only the dependencies used by the project -->
     <path id="org.polarsys.chess.codegen.ada.libraryclasspath">
         <pathelement location="${ECLIPSE_WORKSPACE}/org.polarsys.chess.codegen.ada/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/resources.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/rt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jsse.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jce.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/charsets.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/jfr.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/access-bridge-64.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/cldrdata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/dnsns.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jaccess.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/jfxrt.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/localedata.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/nashorn.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunec.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunjce_provider.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunmscapi.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/sunpkcs11.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/jre/lib/ext/zipfs.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.12.0.v20160606-1342.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/javax.inject_1.0.0.v20091030.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.11.3.v20170209-1843.jar"/>
+<<<<<<< HEAD
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.fx.osgi_2.4.0.201605100504.jar"/>
+=======
+>>>>>>> refs/remotes/origin/master
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.8.0.v20160509-1230.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.8.0.v20160509-0411.jar"/>
@@ -35,10 +62,14 @@
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.12.0.v20160526-0356.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.11.0.v20160526-0356.jar"/>
 <<<<<<< HEAD
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201810170111.jar"/>
+=======
+<<<<<<< HEAD
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.3.201903050251.jar"/>
 =======
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.marte.static.profile_1.2.0.201703081153.jar"/>
 >>>>>>> branch 'master' of git@gitlab.fbk.eu:CPS_Design/CHESS.git
+>>>>>>> refs/remotes/origin/master
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.commands_3.8.1.v20161221-1651.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.11.1.v20161107-2032.jar"/>
         <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.infra.core_2.1.1.201703080851.jar"/>
diff --git a/plugins/org.polarsys.chess.commands/plugin.xml b/plugins/org.polarsys.chess.commands/plugin.xml
index f25d04a..5dcad98 100644
--- a/plugins/org.polarsys.chess.commands/plugin.xml
+++ b/plugins/org.polarsys.chess.commands/plugin.xml
@@ -25,10 +25,99 @@
          
 	<extension
          point="org.eclipse.ui.menus">
+    <menuContribution
+          allPopups="false"
+          locationURI="menu:org.polarsys.chess.mainMenu?after=org.polarsys.chess.mainmenu.separator3">
+       <menu
+             id="chess.menu.filters.id"
+             label="Filters">
+          <menu
+                id="CHRtSpecification_ID"
+                label="CHRtSpecification">
+             <command
+                   commandId="org.chess.HideRTCommandID"
+                   label="Hide"
+                   style="pulldown">
+                <visibleWhen
+                      checkEnabled="false">
+                   <or>
+                      <with
+                            variable="activeEditorInput">
+                         <adapt
+                               type="org.eclipse.core.resources.IResource">
+                            <test
+                                  property="org.eclipse.core.resources.projectNature"
+                                  value="org.polarsys.chess.CHESSNature">
+                            </test>
+                         </adapt>
+                      </with>
+                      <with
+                            variable="activeEditorId">
+                         <equals
+                               value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
+                         </equals>
+                      </with>
+                   </or>
+                </visibleWhen>
+             </command>
+             <command
+                   commandId="org.chess.ShowRTCommandID"
+                   label="Show"
+                   style="push">
+                <visibleWhen
+                      checkEnabled="false">
+                   <or>
+                      <with
+                            variable="activeEditorInput">
+                         <adapt
+                               type="org.eclipse.core.resources.IResource">
+                            <test
+                                  property="org.eclipse.core.resources.projectNature"
+                                  value="org.polarsys.chess.CHESSNature">
+                            </test>
+                         </adapt>
+                      </with>
+                      <with
+                            variable="activeEditorId">
+                         <equals
+                               value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
+                         </equals>
+                      </with>
+                   </or>
+                </visibleWhen>
+             </command>
+          </menu>
+          <visibleWhen
+                checkEnabled="false">
+             <or>
+                <with
+                      variable="activeEditorInput">
+                   <adapt
+                         type="org.eclipse.core.resources.IResource">
+                      <test
+                            property="org.eclipse.core.resources.projectNature"
+                            value="org.polarsys.chess.CHESSNature">
+                      </test>
+                   </adapt>
+                </with>
+                <with
+                      variable="activeEditorId">
+                   <equals
+                         value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
+                   </equals>
+                </with>
+             </or>
+          </visibleWhen>
+       </menu>
+    </menuContribution>
       <menuContribution
             locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu?after=filtersMenu">
          <menu
                icon="resources/CHESSicon.gif"
+               id="org.polarsys.chess.modelexplorerpopupmenu.id"
+               label="CHESS">
+         <menu
+               icon="resources/CHESSicon.gif"
                id="chess.popup.filters.id"
                label="Filters">
             <menu
@@ -88,90 +177,6 @@
                </command>
             </menu>
          </menu>
-      </menuContribution>
-      <menuContribution
-            allPopups="false"
-            locationURI="menu:org.polarsys.chess.mainMenu">
-         <menu
-               id="chess.menu.filters.id"
-               label="Filters">
-            <menu
-                  id="CHRtSpecification_ID"
-                  label="CHRtSpecification">
-               <command
-                     commandId="org.chess.HideRTCommandID"
-                     label="Hide"
-                     style="pulldown">
-                  <visibleWhen
-                        checkEnabled="false">
-                     <or>
-                        <with
-                              variable="activeEditorInput">
-                           <adapt
-                                 type="org.eclipse.core.resources.IResource">
-                              <test
-                                    property="org.eclipse.core.resources.projectNature"
-                                    value="org.polarsys.chess.CHESSNature">
-                              </test>
-                           </adapt>
-                        </with>
-                        <with
-                              variable="activeEditorId">
-                           <equals
-                                 value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
-                           </equals>
-                        </with>
-                     </or>
-                  </visibleWhen>
-               </command>
-               <command
-                     commandId="org.chess.ShowRTCommandID"
-                     label="Show"
-                     style="push">
-                  <visibleWhen
-                        checkEnabled="false">
-                     <or>
-                        <with
-                              variable="activeEditorInput">
-                           <adapt
-                                 type="org.eclipse.core.resources.IResource">
-                              <test
-                                    property="org.eclipse.core.resources.projectNature"
-                                    value="org.polarsys.chess.CHESSNature">
-                              </test>
-                           </adapt>
-                        </with>
-                        <with
-                              variable="activeEditorId">
-                           <equals
-                                 value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
-                           </equals>
-                        </with>
-                     </or>
-                  </visibleWhen>
-               </command>
-            </menu>
-            <visibleWhen
-                  checkEnabled="false">
-               <or>
-                  <with
-                        variable="activeEditorInput">
-                     <adapt
-                           type="org.eclipse.core.resources.IResource">
-                        <test
-                              property="org.eclipse.core.resources.projectNature"
-                              value="org.polarsys.chess.CHESSNature">
-                        </test>
-                     </adapt>
-                  </with>
-                  <with
-                        variable="activeEditorId">
-                     <equals
-                           value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
-                     </equals>
-                  </with>
-               </or>
-            </visibleWhen>
          </menu>
       </menuContribution>
       <menuContribution
diff --git a/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/BuildModelInstanceCommand.java b/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/BuildModelInstanceCommand.java
index e4d0a3f..63718dd 100644
--- a/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/BuildModelInstanceCommand.java
+++ b/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/BuildModelInstanceCommand.java
@@ -81,6 +81,8 @@
 	/** The Constant MARTE_CSP. */
 	private static final String MARTE_CSP = "MARTE::MARTE_DesignModel::GCM::ClientServerPort";
 	
+	private static final String MARTE_FLOWPORT = "MARTE::MARTE_DesignModel::GCM::FlowPort";
+	
 	/** The Constant MARTE_RESOURCE. */
 	private static final String MARTE_RESOURCE = "MARTE::MARTE_Foundations::GRM::Resource";
 	
@@ -318,7 +320,8 @@
 
 			}
 			//ports
-			else if(subProp.getAppliedStereotype(MARTE_CSP) != null || (UMLUtils.getStereotypeApplication(subProp, FlowPort.class)!=null)){
+			else if(subProp.getAppliedStereotype(MARTE_CSP) != null || (UMLUtils.getStereotypeApplication(subProp, FlowPort.class)!=null)
+					|| subProp.getAppliedStereotype(MARTE_FLOWPORT) != null){
 				Slot slot = UMLFactory.eINSTANCE.createSlot();
 				slot.setDefiningFeature(subProp);
 				inst.getSlots().add(slot);
diff --git a/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/ShowRTInformationCommand.java b/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/ShowRTInformationCommand.java
index b2b187f..b88d9db 100644
--- a/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/ShowRTInformationCommand.java
+++ b/plugins/org.polarsys.chess.commands/src/org/polarsys/chess/commands/ShowRTInformationCommand.java
@@ -122,7 +122,10 @@
 			if (temp instanceof BasicCompartmentImpl){
 				Iterator iter2 = ((BasicCompartmentImpl) temp).getPersistedChildren().iterator();
 				while (iter2.hasNext()){
-					showHideRT((Shape)iter2.next(), visibility);
+					Object obj = iter2.next();
+					if(obj instanceof Shape){
+						showHideRT((Shape)obj, visibility);
+					}
 				}
 			}
 		}		
diff --git a/plugins/org.polarsys.chess.core/permissions.xml b/plugins/org.polarsys.chess.core/permissions.xml
index 28490a5..af80336 100644
--- a/plugins/org.polarsys.chess.core/permissions.xml
+++ b/plugins/org.polarsys.chess.core/permissions.xml
@@ -334,7 +334,8 @@
                   <!--failure propagation-->
                  <perm st="FLABehavior" owner="true" write="true" visible="true"/>   
                  <perm st="StochasticFailureBehaviour" owner="true" write="true" visible="true"/>  
-                 <perm st="SimpleStochasticBehavior" owner="true" write="true" visible="true"/>  
+                 <perm st="SimpleStochasticBehavior" owner="true" write="true" visible="true"/> 
+                 <perm st="ErrorModelBehavior" owner="true" write="true" visible="true"/>
                  
                  <perm st="RunTimeSupport" owner="true" write="true" visible="true"/>                           
             </diagram>
diff --git a/plugins/org.polarsys.chess.core/src/org/polarsys/chess/core/profiles/MARTEProfileManager.java b/plugins/org.polarsys.chess.core/src/org/polarsys/chess/core/profiles/MARTEProfileManager.java
index 1d16bdf..9037a09 100644
--- a/plugins/org.polarsys.chess.core/src/org/polarsys/chess/core/profiles/MARTEProfileManager.java
+++ b/plugins/org.polarsys.chess.core/src/org/polarsys/chess/core/profiles/MARTEProfileManager.java
@@ -367,6 +367,8 @@
 		applyGRMProfileTo(deploViewPack);
 		applyGRMProfileTo(currentModel.getNestedPackage(currentModel.getName() + CHESSProfileManager.SYSTEM_VIEW));
 		
+		applyGQAMProfileTo(currentModel.getNestedPackage(currentModel.getName() + CHESSProfileManager.SYSTEM_VIEW));
+		
 	}
 	
 	
diff --git a/plugins/org.polarsys.chess.diagram.ui/plugin.xml b/plugins/org.polarsys.chess.diagram.ui/plugin.xml
index b6dd4a6..c69f2f6 100644
--- a/plugins/org.polarsys.chess.diagram.ui/plugin.xml
+++ b/plugins/org.polarsys.chess.diagram.ui/plugin.xml
@@ -5,13 +5,13 @@
          point="org.eclipse.ui.menus">     

             <menuContribution

             allPopups="false"            

-            locationURI="menu:org.polarsys.chess.mainMenu?after=org.eclipse.ui.main.menu.CHESS.safetyAnalysis">

+            locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.basicoperations.id">

             <menu

                label="Safety Case"

-            id="org.eclipse.ui.main.menu.CHESS.safetyCase">

+            id="chess.menu.safetycase.id">

          <menu

                label="Document Generation"

-               id="org.eclipse.ui.main.menu.CHESS.docGen">

+               id="chess.menu.safetycase.docgen.id">

             <command

                   commandId="org.polarsys.chess.diagram.ui.commands.GenerateDocumentCommand"

                   icon="icons/model_documentation.gif"

diff --git a/plugins/org.polarsys.chess.feature/feature.xml b/plugins/org.polarsys.chess.feature/feature.xml
index 02908d9..138a465 100644
--- a/plugins/org.polarsys.chess.feature/feature.xml
+++ b/plugins/org.polarsys.chess.feature/feature.xml
@@ -3,12 +3,12 @@
       id="org.polarsys.chess.feature"
       label="CHESS Polarsys"
       version="0.10.0.qualifier"
-      provider-name="Polarsys CHESS Project">
+      provider-name="CHESS Eclipse Project">
 
    <description url="http://www.example.com/description">
-      The CHESS feature provides the CHESS editor and the model transformations 
-supporting the CHESS methodology for the development of high-integrity
-systems.
+      The CHESS feature provides the CHESS profile, editor, model transformations and Papyrus editor customization
+supporting the CHESS methodology.
+		
    </description>
 
    <copyright url="http://www.eclipse.org/legal/epl-v10.html">
@@ -200,5 +200,11 @@
          install-size="0"
          version="0.0.0"
          unpack="false"/>
-
+	
+	<plugin
+         id="org.polarsys.chess.checkers"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
 </feature>
diff --git a/plugins/org.polarsys.chess.instanceview.feature/.project b/plugins/org.polarsys.chess.instanceview.feature/.project
new file mode 100644
index 0000000..5688346
--- /dev/null
+++ b/plugins/org.polarsys.chess.instanceview.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.polarsys.chess.instanceview.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.polarsys.chess.instanceview.feature/build.properties b/plugins/org.polarsys.chess.instanceview.feature/build.properties
new file mode 100644
index 0000000..64f93a9
--- /dev/null
+++ b/plugins/org.polarsys.chess.instanceview.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/plugins/org.polarsys.chess.instanceview.feature/feature.xml b/plugins/org.polarsys.chess.instanceview.feature/feature.xml
new file mode 100644
index 0000000..30965dc
--- /dev/null
+++ b/plugins/org.polarsys.chess.instanceview.feature/feature.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.polarsys.chess.instanceview"
+      label="CHESS Instance View"
+      version="0.10.0.qualifier"
+      provider-name="Intecs">
+
+   <description url="http://www.example.com/description">
+      [Enter Feature Description here.]
+   </description>
+
+   <copyright url="http://www.example.com/copyright">
+      [Enter Copyright Description here.]
+   </copyright>
+
+   <license url="http://www.example.com/license">
+      [Enter License Description here.]
+   </license>
+
+   <plugin
+         id="org.polarsys.chess.instance.view"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/plugins/org.polarsys.chess.m2m/plugin.xml b/plugins/org.polarsys.chess.m2m/plugin.xml
index 68408b4..6935036 100644
--- a/plugins/org.polarsys.chess.m2m/plugin.xml
+++ b/plugins/org.polarsys.chess.m2m/plugin.xml
@@ -1,196 +1,191 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.m2m.qvt.oml.runtime.qvtTransformation">
-      <transformation
-            file="transformations/CHESS_PIM2PSM_Inst_full_VERDE.qvto"
-            id="transformations/CHESS_PIM2PSM">
-      </transformation>
-   </extension>
-<extension point="org.eclipse.m2m.qvt.oml.javaBlackboxUnits">
-     <unit
-        name="lib"
-        namespace="chess">
-        <library
-           class="org.polarsys.chess.m2m.blackbox.VSLUtils"
-           name="VSLUtils">
-           <metamodel nsURI="http://www.eclipse.org/emf/2002/Ecore"/>
-           <metamodel nsURI="http://www.eclipse.org/papyrus/MARTE/1"/>
-           <metamodel nsURI="http://CHESS"/>
-           <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"/>
-        </library>
-     </unit>
-	</extension>
-	
-	<extension point="org.eclipse.m2m.qvt.oml.javaBlackboxUnits">
-     <unit
-        name="libJava4QVTutils"
-        namespace="chess">
-        <library
-           class="org.polarsys.chess.m2m.blackbox.Java4QVTutils"
-           name="Java4QVTutils">
-           <metamodel nsURI="http://www.eclipse.org/emf/2002/Ecore"/>
-           <metamodel nsURI="http://www.eclipse.org/papyrus/MARTE/1"/>
-           <metamodel nsURI="http://CHESS"/>
-           <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"/>
-        </library>
-     </unit>
-	</extension>
-	
-   <extension
-         point="org.eclipse.ui.menus">
-         
-         <menuContribution locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">
-    <menu
-          id="org.polarsys.chess.modelexplorerpopupmenu.id"
-          label="CHESS">
-       <command
-             commandId="org.polarsys.chess.m2m.commands.CompareAnalysisResultsCommandID"
-             id="org.polarsys.chess.m2m.commands.CompareAnalysisResultsMenuID"
-             label="Compare Analysis Results"
-             style="push">
-          <visibleWhen
-                checkEnabled="false">
-             <iterate
-                   ifEmpty="false"
-                   operator="and">
-                <adapt
-                      type="org.eclipse.emf.ecore.EObject">
-                   <instanceof
-                         value="org.eclipse.uml2.uml.Class">
-                   </instanceof>
-                </adapt>
-             </iterate>
-          </visibleWhen>
-       </command>
-    </menu>
-  		 </menuContribution>
-  
-      <menuContribution
-            allPopups="false"
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               id="org.polarsys.chess.mainMenu"
-               label="CHESS"
-               mnemonic="E">
-            <command
-                  commandId="it.unipd.chess.m2m.purgePIM"
-                  label="Purge Analysis Context"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="false">
-                  <and>
-                     <with
-                           variable="activeEditorInput">
-                        <adapt
-                              type="org.eclipse.core.resources.IResource">
-                           <test
-                                 property="org.eclipse.core.resources.projectNature"
-                                 value="org.polarsys.chess.CHESSNature">
-                           </test>
-                        </adapt>
-                     </with>
-                  </and>
-               </visibleWhen>
-            </command>
-         <menu
-               id="chess.menu.analysis.id"
-               label="Analysis">
-            <menu
-                  id="chess.menu.analysis.realtime.id"
-                  label="Real-Time Analysis">
-                <command
-                  commandId="it.unipd.chess.m2m.QvtoUIHandlerVERDE.id"
-                  label="Schedulability Analysis"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="false">
-                  <and>
-                     <with
-                           variable="activeEditorInput">
-                        <adapt
-                              type="org.eclipse.core.resources.IResource">
-                           <test
-                                 property="org.eclipse.core.resources.projectNature"
-                                 value="org.polarsys.chess.CHESSNature">
-                           </test>
-                        </adapt>
-                     </with>
-                  </and>
-               </visibleWhen>
-            </command>
-            <command
-               commandId="it.unipd.chess.m2m.QVToUIHandlerEnd2End.id"
-               label="End-To-End Scenario Analysis"
-               style="push">
-               <visibleWhen
-                     checkEnabled="false">
-                  <and>
-                     <with
-                           variable="activeEditorInput">
-                        <adapt
-                              type="org.eclipse.core.resources.IResource">
-                           <test
-                                 property="org.eclipse.core.resources.projectNature"
-                                 value="org.polarsys.chess.CHESSNature">
-                           </test>
-                        </adapt>
-                     </with>
-                  </and>
-               </visibleWhen>
-            </command>
-         </menu>
-        </menu>
-       </menu>
-      </menuContribution>
-   </extension>
-   <extension
-         id="Build Instance Command"
-         point="org.eclipse.ui.commands">
-        
-      <command
-            defaultHandler="org.polarsys.chess.m2m.handlers.CompareAnalysisResultsHandler"
-            id="org.polarsys.chess.m2m.commands.CompareAnalysisResultsCommandID"
-            name="Compare Analysis Results">
-      </command>
-      
-      <!--command
-            categoryId="it.unipd.chess.commands.category"
-            defaultHandler="org.polarsys.chess.m2m.QVToUIHandlerFull"
-            id="it.unipd.chess.m2m.QvtoUIHandlerFull.id"
-            name="Schedulability Analysis">
-      </command-->
-      <command
-            category="it.unipd.chess.category"
-            categoryId="it.unipd.chess.commands.category"
-            defaultHandler="org.polarsys.chess.m2m.handlers.PurgePSMHandler"
-            id="it.unipd.chess.m2m.purgePIM"
-            name="Purge Timing Analysis">
-      </command>
-      <command
-            categoryId="it.unipd.chess.commands.category"
-            defaultHandler="org.polarsys.chess.m2m.handlers.QVToUIHandlerVERDE"
-            id="it.unipd.chess.m2m.QvtoUIHandlerVERDE.id"
-            name="Schedulability Analysis (VERDE)">
-      </command>
-      <command
-            categoryId="it.unipd.chess.commands.category"
-            defaultHandler="org.polarsys.chess.m2m.handlers.QVToUIHandlerEnd2End"
-            id="it.unipd.chess.m2m.QVToUIHandlerEnd2End.id"
-            name="End-To-End Scenario Analysis">
-      </command>
-      <!--
-      <command
-            categoryId="it.unipd.chess.commands.category"
-            defaultHandler="it.unipd.chess.m2m.QVToUIHandler"
-            id="it.unipd.chess.m2m.QvtoUIHandler.id"
-            name="Schedulability Analysis">
-      </command>
-      -->
-   </extension>
-   
-
-   
-   
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.4"?>

+<plugin>

+   <extension

+         point="org.eclipse.m2m.qvt.oml.runtime.qvtTransformation">

+      <transformation

+            file="transformations/CHESS_PIM2PSM_Inst_full_VERDE.qvto"

+            id="transformations/CHESS_PIM2PSM">

+      </transformation>

+   </extension>

+<extension point="org.eclipse.m2m.qvt.oml.javaBlackboxUnits">

+     <unit

+        name="lib"

+        namespace="chess">

+        <library

+           class="org.polarsys.chess.m2m.blackbox.VSLUtils"

+           name="VSLUtils">

+           <metamodel nsURI="http://www.eclipse.org/emf/2002/Ecore"/>

+           <metamodel nsURI="http://www.eclipse.org/papyrus/MARTE/1"/>

+           <metamodel nsURI="http://CHESS"/>

+           <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"/>

+        </library>

+     </unit>

+	</extension>

+	

+	<extension point="org.eclipse.m2m.qvt.oml.javaBlackboxUnits">

+     <unit

+        name="libJava4QVTutils"

+        namespace="chess">

+        <library

+           class="org.polarsys.chess.m2m.blackbox.Java4QVTutils"

+           name="Java4QVTutils">

+           <metamodel nsURI="http://www.eclipse.org/emf/2002/Ecore"/>

+           <metamodel nsURI="http://www.eclipse.org/papyrus/MARTE/1"/>

+           <metamodel nsURI="http://CHESS"/>

+           <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"/>

+        </library>

+     </unit>

+	</extension>

+	

+   <extension

+         point="org.eclipse.ui.menus">

+         

+         <menuContribution locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">

+    <menu

+          id="org.polarsys.chess.modelexplorerpopupmenu.id"

+          label="CHESS">

+       <command

+             commandId="org.polarsys.chess.m2m.commands.CompareAnalysisResultsCommandID"

+             id="org.polarsys.chess.m2m.commands.CompareAnalysisResultsMenuID"

+             label="Compare Analysis Results"

+             style="push">

+          <visibleWhen

+                checkEnabled="false">

+             <iterate

+                   ifEmpty="false"

+                   operator="and">

+                <adapt

+                      type="org.eclipse.emf.ecore.EObject">

+                   <instanceof

+                         value="org.eclipse.uml2.uml.Class">

+                   </instanceof>

+                </adapt>

+             </iterate>

+          </visibleWhen>

+       </command>

+    </menu>

+  		 </menuContribution>

+  

+      <menuContribution

+            allPopups="false"

+            locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.dependability.id">

+         <menu

+               id="chess.menu.realtime.id"

+               label="Real-Time">

+            <command

+                  commandId="it.unipd.chess.m2m.QvtoUIHandlerVERDE.id"

+                  label="Schedulability Analysis"

+                  style="push">

+               <visibleWhen

+                     checkEnabled="false">

+                  <and>

+                     <with

+                           variable="activeEditorInput">

+                        <adapt

+                              type="org.eclipse.core.resources.IResource">

+                           <test

+                                 property="org.eclipse.core.resources.projectNature"

+                                 value="org.polarsys.chess.CHESSNature">

+                           </test>

+                        </adapt>

+                     </with>

+                  </and>

+               </visibleWhen>

+            </command>

+            <command

+                  commandId="it.unipd.chess.m2m.QVToUIHandlerEnd2End.id"

+                  label="End-To-End Scenario Analysis"

+                  style="push">

+               <visibleWhen

+                     checkEnabled="false">

+                  <and>

+                     <with

+                           variable="activeEditorInput">

+                        <adapt

+                              type="org.eclipse.core.resources.IResource">

+                           <test

+                                 property="org.eclipse.core.resources.projectNature"

+                                 value="org.polarsys.chess.CHESSNature">

+                           </test>

+                        </adapt>

+                     </with>

+                  </and>

+               </visibleWhen>

+            </command>

+            <separator

+                  name="org.polarsys.chess.m2m.separator1"

+                  visible="true">

+            </separator>

+            <command

+                  commandId="it.unipd.chess.m2m.purgePIM"

+                  label="Purge Analysis Context"

+                  style="push">

+               <visibleWhen

+                     checkEnabled="false">

+                  <and>

+                     <with

+                           variable="activeEditorInput">

+                        <adapt

+                              type="org.eclipse.core.resources.IResource">

+                           <test

+                                 property="org.eclipse.core.resources.projectNature"

+                                 value="org.polarsys.chess.CHESSNature">

+                           </test>

+                        </adapt>

+                     </with>

+                  </and>

+               </visibleWhen>

+            </command>

+         </menu>

+      </menuContribution>

+   </extension>

+   <extension

+         id="Build Instance Command"

+         point="org.eclipse.ui.commands">

+        

+      <command

+            defaultHandler="org.polarsys.chess.m2m.handlers.CompareAnalysisResultsHandler"

+            id="org.polarsys.chess.m2m.commands.CompareAnalysisResultsCommandID"

+            name="Compare Analysis Results">

+      </command>

+      

+      <!--command

+            categoryId="it.unipd.chess.commands.category"

+            defaultHandler="org.polarsys.chess.m2m.QVToUIHandlerFull"

+            id="it.unipd.chess.m2m.QvtoUIHandlerFull.id"

+            name="Schedulability Analysis">

+      </command-->

+      <command

+            category="it.unipd.chess.category"

+            categoryId="it.unipd.chess.commands.category"

+            defaultHandler="org.polarsys.chess.m2m.handlers.PurgePSMHandler"

+            id="it.unipd.chess.m2m.purgePIM"

+            name="Purge Timing Analysis">

+      </command>

+      <command

+            categoryId="it.unipd.chess.commands.category"

+            defaultHandler="org.polarsys.chess.m2m.handlers.QVToUIHandlerVERDE"

+            id="it.unipd.chess.m2m.QvtoUIHandlerVERDE.id"

+            name="Schedulability Analysis (VERDE)">

+      </command>

+      <command

+            categoryId="it.unipd.chess.commands.category"

+            defaultHandler="org.polarsys.chess.m2m.handlers.QVToUIHandlerEnd2End"

+            id="it.unipd.chess.m2m.QVToUIHandlerEnd2End.id"

+            name="End-To-End Scenario Analysis">

+      </command>

+      <!--

+      <command

+            categoryId="it.unipd.chess.commands.category"

+            defaultHandler="it.unipd.chess.m2m.QVToUIHandler"

+            id="it.unipd.chess.m2m.QvtoUIHandler.id"

+            name="Schedulability Analysis">

+      </command>

+      -->

+   </extension>

+   

+

+   

+   

+</plugin>

diff --git a/plugins/org.polarsys.chess.m2m/transformations/CHESS_CeilingAssignment.qvto b/plugins/org.polarsys.chess.m2m/transformations/CHESS_CeilingAssignment.qvto
index bba0a62..df04815 100644
--- a/plugins/org.polarsys.chess.m2m/transformations/CHESS_CeilingAssignment.qvto
+++ b/plugins/org.polarsys.chess.m2m/transformations/CHESS_CeilingAssignment.qvto
@@ -231,7 +231,7 @@
 
 query getDeploymentProcessor(p : InstanceSpecification) : InstanceSpecification {
 	var a := assigns -> selectOne(isAssignedFrom(p));
-	var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+	var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 	return 	asg.to![InstanceSpecification];
 }
 
@@ -279,7 +279,7 @@
 }
 
 query chessmlprofile::RTComponentModel::CHRtSpecification::isProtected() : Boolean { 
-	return (not self.isDeferred()) and self.protection = MARTE::HLAM::CallConcurrencyKind::guarded;
+	return (not self.isDeferred()) and self.protection = MARTE::MARTE_DesignModel::HLAM::CallConcurrencyKind::guarded;
 }
 
 query Port::getConnectedPort() : Port {
@@ -290,6 +290,6 @@
 
 
 query Comment::isAssignedFrom(p : InstanceSpecification) : Boolean {
-    var asg := self.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+    var asg := self.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
     return asg._from![InstanceSpecification] = p;
 }
diff --git a/plugins/org.polarsys.chess.m2m/transformations/CHESS_PIM2PSM_Inst_full_VERDE.qvto b/plugins/org.polarsys.chess.m2m/transformations/CHESS_PIM2PSM_Inst_full_VERDE.qvto
index c6f6129..ec891ee 100644
--- a/plugins/org.polarsys.chess.m2m/transformations/CHESS_PIM2PSM_Inst_full_VERDE.qvto
+++ b/plugins/org.polarsys.chess.m2m/transformations/CHESS_PIM2PSM_Inst_full_VERDE.qvto
@@ -63,15 +63,15 @@
 property instSpecPackage : Package = null;
 //property instSpecFullPackage : Package = null;
 
-property currentConcurRes : MARTE::SRM::SW_Concurrency::SwSchedulableResource = null;
+property currentConcurRes : MARTE::MARTE_DesignModel::SRM::SW_Concurrency::SwSchedulableResource = null;
 property currentSlot : Slot = null;
 /*Global variable for partition processing*/
 property currentProcessor : InstanceSpecification = null;
 property currentCore : String = null;
-property currentHost : MARTE::SAM::SaExecHost = null;
+property currentHost : MARTE::MARTE_AnalysisModel::SAM::SaExecHost = null;
 
 property slotinAssigns = false;
-//property currentSharedRes : MARTE::SAM::SaSharedResource = null;
+//property currentSharedRes : MARTE::MARTE_AnalysisModel::SAM::SaSharedResource = null;
 	
 main() {
 	
@@ -99,7 +99,7 @@
 		depView := self.getView("DeploymentView");
 			
 		var saAnalysisClass := self.allOwnedElements()[Class]->selectOne(qualifiedName=saAnalysis);
-		var saAnalysisCtx := saAnalysisClass.getMetaclass(SaAnalysisContextQN).oclAsType(MARTE::SAM::SaAnalysisContext);
+		var saAnalysisCtx := saAnalysisClass.getMetaclass(SaAnalysisContextQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaAnalysisContext);
 		
 		//var platforms := saAnalysisCtx.platform->asSequence();
 		//instSpecPackage := platforms->first().oclAsType(CHESS::Core::CHGaResourcePlatform).base_Package;
@@ -117,7 +117,7 @@
 }
 
 //maps the Package of the SW instances to an AnalysisContext
-mapping Package::CHGaResourcePlatform2SaAnalysisContext(saAnalysisCtx : MARTE::SAM::SaAnalysisContext) : Class {
+mapping Package::CHGaResourcePlatform2SaAnalysisContext(saAnalysisCtx : MARTE::MARTE_AnalysisModel::SAM::SaAnalysisContext) : Class {
 	init{
 		log("Generating <<SaAnalysisContext>> and necessary packages.");
 		
@@ -169,7 +169,7 @@
 	result.name := model.name + "_analysisContext";
 	analysisContextPackage.packagedElement += result;	
 	// Apply the stereotype <<saAnalysisContext>>
-	var analysisC := result.applyStereotype(getMARTEStereotype("SaAnalysisContext")).oclAsType(MARTE::SAM::SaAnalysisContext);
+	var analysisC := result.applyStereotype(getMARTEStereotype("SaAnalysisContext")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaAnalysisContext);
 	analysisC.context += "(tool=mast,options=(invoke=true,recoverResults=true,overwriteResults=true,overwriteOutputModel=true,modeID=''))";
 	
 	end{
@@ -232,7 +232,7 @@
 	*/
 	
 	assigns->forEach(ass){
-		var asg := ass.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+		var asg := ass.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 
 		//TODO assumption: one annotatedElement per Assign	
 		var list := ass.getInstances(instSpecPackage);
@@ -290,7 +290,7 @@
 			currentProcessor := partitionInst.getAssignedProcessor();
 			currentCore := partitionInst.getAssignedCore();
 			var partition := partitionInst.map Partition2PSM();
-			currentHost := partition.getMetaclass(SaExecHostQN).oclAsType(MARTE::SAM::SaExecHost);
+			currentHost := partition.getMetaclass(SaExecHostQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost);
 			
 			partitionInst.getComponentsOfPartition()->forEach(componentInst){
 				log("Analysing classifier" + componentInst.classifier![Classifier].name +" mapped on partition " +p.name);
@@ -511,11 +511,11 @@
 	result.edge += controlFlowInit;
 	
 	//Apply stereotype <<gaLatencyObs>> and specify the deadline for the end to end flow
-	var gaLatencyObs := actConstraint.applyStereotype(getMARTEStereotype("GaLatencyObs")).oclAsType(MARTE::GQAM::GaLatencyObs);
+	var gaLatencyObs := actConstraint.applyStereotype(getMARTEStereotype("GaLatencyObs")).oclAsType(MARTE::MARTE_AnalysisModel::GQAM::GaLatencyObs);
 	gaLatencyObs.latency += deadline.parseNFPDuration("value");
 	
 	//Apply stereotype <<gaWorkloadEvent>> and specify the release pattern of the end-to-end flow
-	var gaWorkloadEvent := actInitialNode.applyStereotype(getMARTEStereotype("GaWorkloadEvent")).oclAsType(MARTE::GQAM::GaWorkloadEvent);
+	var gaWorkloadEvent := actInitialNode.applyStereotype(getMARTEStereotype("GaWorkloadEvent")).oclAsType(MARTE::MARTE_AnalysisModel::GQAM::GaWorkloadEvent);
 	gaWorkloadEvent.pattern := startChrts.occKind;
 	
 	//create end2end action sequence 
@@ -557,7 +557,7 @@
 	var opNode := createOpaqueAction(actionname, EndToEndWorkFlow, currentNode);
 	
 
-	var opSaStep := opNode.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var opSaStep := opNode.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	//log("Slot [createSaStepNode]: " + currentSlot.definingFeature.name);
 	// Set the <<SwSchedulableResource>> that executes the <<saStep>>
 	var concurRes := currentConcurRes;
@@ -574,7 +574,7 @@
 	
 	opSaStep.concurRes := concurRes;
     // Retrieve the <<SaStep>> to use for the subusage
-	var saStep := currentCHRts.base_Comment.resolve2SaStep().getMetaclass(SaStepQN).oclAsType(MARTE::SAM::SaStep);
+	var saStep := currentCHRts.base_Comment.resolve2SaStep().getMetaclass(SaStepQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	
 	log("********createSaStepNode in endToEnd Activity:  subUsage is " + saStep.toString());
 	
@@ -626,10 +626,10 @@
 	result.name := self.classifier![Classifier].name;
 	var package := self.resolveoneIn(InstanceSpecification::Partition2Package, Package);
 	package.packagedElement += result;
-	var stHost := result.applyStereotype(getMARTEStereotype("SaExecHost")).oclAsType(MARTE::SAM::SaExecHost);
+	var stHost := result.applyStereotype(getMARTEStereotype("SaExecHost")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost);
 	stHost.host := currentProcessor.getHost(currentCore);
 	stHost.otherSchedPolicy := "IMA";
-	var sr := result.applyStereotype(getMARTEStereotype("SwSchedulableResource")).oclAsType(MARTE::SRM::SW_Concurrency::SwSchedulableResource);	
+	var sr := result.applyStereotype(getMARTEStereotype("SwSchedulableResource")).oclAsType(MARTE::MARTE_DesignModel::SRM::SW_Concurrency::SwSchedulableResource);	
 	var par := self.classifier![Classifier].getMetaclass("CHESS::ComponentModel::FunctionalPartition").oclAsType(CHESS::ComponentModel::FunctionalPartition);
 	log("MAF");
 	log(par.MAF);	
@@ -650,7 +650,7 @@
 	
 	taskPackage.packagedElement += result;
 	
-	var sr := result.applyStereotype(getMARTEStereotype("SwSchedulableResource")).oclAsType(MARTE::SRM::SW_Concurrency::SwSchedulableResource);		
+	var sr := result.applyStereotype(getMARTEStereotype("SwSchedulableResource")).oclAsType(MARTE::MARTE_DesignModel::SRM::SW_Concurrency::SwSchedulableResource);		
 	sr.isProtected := false;
 	var schedParams := "fp(priority=(value=" + chrts.relativePriority.normalizeNFPInteger() +", source=meas))";
 	
@@ -689,7 +689,7 @@
 	
 	taskPackage.packagedElement += result;
 	
-	var sr := result.applyStereotype(getMARTEStereotype("SwSchedulableResource")).oclAsType(MARTE::SRM::SW_Concurrency::SwSchedulableResource);		
+	var sr := result.applyStereotype(getMARTEStereotype("SwSchedulableResource")).oclAsType(MARTE::MARTE_DesignModel::SRM::SW_Concurrency::SwSchedulableResource);		
 	sr.isProtected := false;
 	var schedParams := "fp(priority=(value=" + chrts.relativePriority.normalizeNFPInteger() +", source=meas))";
 	
@@ -722,9 +722,9 @@
   Given a InstanceSpecification representing a Processor/ComputingResource,
   return the already generated SaExecHost
 */
-query InstanceSpecification::getHost(core: String) : MARTE::SAM::SaExecHost {
+query InstanceSpecification::getHost(core: String) : MARTE::MARTE_AnalysisModel::SAM::SaExecHost {
 	if(core<>null) {
-			var ress := self.resolveIn(InstanceSpecification::HwProcessor2SaExecHost, Class).getMetaclass(SaExecHostQN).oclAsType(MARTE::SAM::SaExecHost);
+			var ress := self.resolveIn(InstanceSpecification::HwProcessor2SaExecHost, Class).getMetaclass(SaExecHostQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost);
 			
 			if(ress->size() = 1){
 				var cpu := ress->selectOne(base_Classifier.name=self.name);
@@ -740,11 +740,11 @@
 				return res;
 			};
 	};
-	var res := self.resolveoneIn(InstanceSpecification::HwProcessor2SaExecHost, Class).getMetaclass(SaExecHostQN).oclAsType(MARTE::SAM::SaExecHost);
+	var res := self.resolveoneIn(InstanceSpecification::HwProcessor2SaExecHost, Class).getMetaclass(SaExecHostQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost);
 	
 	//TODO the following lines should be removed
 	if res.oclIsInvalid() or res = null then
-		return self.resolveoneIn(InstanceSpecification::HwComputingResource2SaExecHost, Class).getMetaclass(SaExecHostQN).oclAsType(MARTE::SAM::SaExecHost)
+		return self.resolveoneIn(InstanceSpecification::HwComputingResource2SaExecHost, Class).getMetaclass(SaExecHostQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost)
 	endif;
 	return res;	
 }
@@ -754,9 +754,9 @@
 	var chrts := sourceCHRtComment.CHRtSpec();
 	
 	//log(" ***********WARNING 3 : createSubUsage, chrt = " + chrts.toString() + " sourceSlot = "+sourceSlot.owningInstance.toString());
-	var owningSaStep := sourceSlot.resolveoneIn(Comment::CHRTCommentProtected2SaStep, Operation).getMetaclass(SaStepQN).oclAsType(MARTE::SAM::SaStep);
+	var owningSaStep := sourceSlot.resolveoneIn(Comment::CHRTCommentProtected2SaStep, Operation).getMetaclass(SaStepQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	//log("createSubUsage, owningSaStep = " + owningSaStep.toString());
-	owningSaStep.subUsage += sourceCHRtComment.resolve2SaStep().getMetaclass(SaStepQN).oclAsType(MARTE::SAM::SaStep); 
+	owningSaStep.subUsage += sourceCHRtComment.resolve2SaStep().getMetaclass(SaStepQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep); 
 	
 }
 
@@ -778,8 +778,8 @@
 	var piPSMOperation = provCHRtSpec.base_Comment.resolve2SaStep();
 	
 	log("usedPSMOperation = " + piPSMOperation.toString());	        			
-	var reqSaStep = requiringPSMOperation.getMetaclass(SaStepQN).oclAsType(MARTE::SAM::SaStep); 		
-	var provSaStep = piPSMOperation.getMetaclass(SaStepQN).oclAsType(MARTE::SAM::SaStep);  			
+	var reqSaStep = requiringPSMOperation.getMetaclass(SaStepQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep); 		
+	var provSaStep = piPSMOperation.getMetaclass(SaStepQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);  			
 	log("usedStep = " + provSaStep.toString());
 	reqSaStep.subUsage += provSaStep;
 }
@@ -788,19 +788,19 @@
 /*
   Given a comment related to a CHRtSlot return  the corresponding schedulable resource  
 */
-query Comment::getConcurRes(slot : Slot) : MARTE::SRM::SW_Concurrency::SwSchedulableResource {
+query Comment::getConcurRes(slot : Slot) : MARTE::MARTE_DesignModel::SRM::SW_Concurrency::SwSchedulableResource {
 	
 	var chrtportslot := slot.getMetaclass(CHRtPortSlotQN).oclAsType(chessmlprofile::RTComponentModel::CHRtPortSlot);
 	var classResource := slot.resolveIn(Slot::CHRtSlot2SwSchedulableResource, Class)->selectOne(
 	    name=self.CHRtSpec().schedulableResourceName(chrtportslot));
-	return classResource.getMetaclass(SwSchedulableResourceQN).oclAsType(MARTE::SRM::SW_Concurrency::SwSchedulableResource);
+	return classResource.getMetaclass(SwSchedulableResourceQN).oclAsType(MARTE::MARTE_DesignModel::SRM::SW_Concurrency::SwSchedulableResource);
 }
 
 
 /*
   Given an instance decorated with a CHRTSPecification returns  the corresponding schedulable resource  
 */
-query Comment::getConcurRes(instance : InstanceSpecification) : MARTE::SRM::SW_Concurrency::SwSchedulableResource {
+query Comment::getConcurRes(instance : InstanceSpecification) : MARTE::MARTE_DesignModel::SRM::SW_Concurrency::SwSchedulableResource {
 	
 	var chrtportslot := instance.getMetaclass(CHRtPortSlotQN).oclAsType(chessmlprofile::RTComponentModel::CHRtPortSlot);
 	
@@ -814,7 +814,7 @@
 	log("FOUND "+classResource.toString());
 	log("");    
 	    
-	return classResource.getMetaclass(SwSchedulableResourceQN).oclAsType(MARTE::SRM::SW_Concurrency::SwSchedulableResource);
+	return classResource.getMetaclass(SwSchedulableResourceQN).oclAsType(MARTE::MARTE_DesignModel::SRM::SW_Concurrency::SwSchedulableResource);
 }
 
 /*
@@ -1007,11 +1007,11 @@
 	sourceSlot.owningInstance.resolveoneIn(InstanceSpecification::SporadicOperation2SwMutualExclusionResource, Class).ownedOperation->selectOne(name="put");
 	
 	var putNode := createOpaqueAction(sourceSlot.owningInstance.name + "_" + putOp.name, e2eActivity, prevE2ENode);
-	var opSaStep := putNode.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var opSaStep := putNode.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	// Set the <<SwSchedulableResource>> that executes the <<saStep>>
 	opSaStep.concurRes := currentConcurRes;//sourceCHRtComment.getConcurRes(sourceSlot);
     // Retrieve the <<SaStep>> to use for the subusage
-	var saStep := putOp.getMetaclass(SaStepQN).oclAsType(MARTE::SAM::SaStep);
+	var saStep := putOp.getMetaclass(SaStepQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	//Add the newly created operation as subUsage of the OpaqueAction(<<saStep>>)
 	opSaStep.subUsage += saStep;
 	return putNode;
@@ -1023,12 +1023,12 @@
 	sourceSlot.owningInstance.resolveoneIn(InstanceSpecification::SporadicOperation2SwMutualExclusionResource, Class).ownedOperation->selectOne(name="get");
 	
 	var getNode := createOpaqueAction(sourceSlot.owningInstance.name + "_" + getOp.name, e2eActivity, prevE2ENode);
-	var opSaStep := getNode.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var opSaStep := getNode.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	// Set the <<SchedulableResource>> that executes the <<saStep>>
 	//var classResource : Class := currentCHRtComment.resolveIn(Comment::CHRtSlot2SchedulableResource, Class)->selectOne(name=getSpec.genResourceName());
 	opSaStep.concurRes := sourceCHRtComment.getConcurRes(sourceSlot);//classResource.getMetaclass(SchedulableResourceQN).oclAsType(MARTE::GRM::SchedulableResource);
     // Retrieve the <<SaStep>> to use for the subusage
-	var saStep := getOp.getMetaclass(SaStepQN).oclAsType(MARTE::SAM::SaStep);
+	var saStep := getOp.getMetaclass(SaStepQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	//Add the newly created operation as subUsage of the OpaqueAction(<<saStep>>)
 	opSaStep.subUsage += saStep;
 	return getNode;
@@ -1047,14 +1047,14 @@
 	log("  Attaching '"+ opType +"' operation for communication channel '" + connectingBus.name + "'.");
 	
 	var sendNode := createOpaqueAction(connectingBus.name + "_" + opType, e2eActivity, prevE2ENode);
-	var sendSaStep := sendNode.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var sendSaStep := sendNode.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
                        
 	//var gaCommChannel := getAssignToFrom(sourceSlot.CHRtSpec().partWithPort.property2InstanceSpec()).resolveoneIn(InstanceSpecification::BusProperty2GaCommChannel, Class).getMetaclass(GaCommChannelQN).oclAsType(MARTE::GQAM::GaCommChannel);                     
-	var gaCommChannel := getAssignToFrom_MemoryPartition(sourceSlot.owningInstance).resolveoneIn(InstanceSpecification::BusProperty2GaCommChannel, Class).getMetaclass(GaCommChannelQN).oclAsType(MARTE::GQAM::GaCommChannel);
+	var gaCommChannel := getAssignToFrom_MemoryPartition(sourceSlot.owningInstance).resolveoneIn(InstanceSpecification::BusProperty2GaCommChannel, Class).getMetaclass(GaCommChannelQN).oclAsType(MARTE::MARTE_AnalysisModel::GQAM::GaCommChannel);
 	sendSaStep.concurRes := gaCommChannel;
 	//TODO Assumption: send operation unique for each HwBus
 	var sendOp : Operation := connectingBus.resolveoneIn(InstanceSpecification::HwBus2OperationClass, Class).ownedOperation->selectOne(name.endsWith("_" + opType));
-	sendSaStep.subUsage += sendOp.getMetaclass(SaStepQN).oclAsType(MARTE::SAM::SaStep);
+	sendSaStep.subUsage += sendOp.getMetaclass(SaStepQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	return sendNode;
 }
 
@@ -1151,7 +1151,7 @@
 
 	owner.ownedOperation += result;
 	// Convert the newly created operation to a <<saStep>>
-	var saStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var saStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	saStep.execTime += chrt.getWCET();//chrts.localWCET;
 	
 	//createSubUsageForPSMOperation(selfOperation, result, slot.owningInstance)
@@ -1177,7 +1177,7 @@
 
 	owner.ownedOperation += result;
 	// Convert the newly created operation to a <<saStep>>
-	var saStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var saStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	saStep.execTime += chrt.getWCET();//chrts.localWCET;
 	
 	//createSubUsageForPSMOperation(selfOperation, result, slot.owningInstance)
@@ -1232,11 +1232,11 @@
 
 	var saMutualExRes := owner.getMetaclass("MARTE::MARTE_DesignModel::SRM::SW_Interaction::SwMutualExclusionResource").oclAsType(MARTE::SRM::SW_Interaction::SwMutualExclusionResource);
 	//apply also a SaSharedResource in order to add it to sastep.sharedres
-	var saSharedRes := owner.getMetaclass("MARTE::MARTE_AnalysisModel::SAM::SaSharedResource").oclAsType(MARTE::SAM::SaSharedResource);
+	var saSharedRes := owner.getMetaclass("MARTE::MARTE_AnalysisModel::SAM::SaSharedResource").oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaSharedResource);
 
 	owner.ownedOperation += result;
 	// Convert the newly created operation to a <<saStep>>
-	var saStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var saStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	saStep.execTime += chrt.getWCET();//chrts.localWCET;	
 	// The sharedRes will be set on the SaStep of the end to end workflow
 	saStep.sharedRes += saSharedRes;
@@ -1264,13 +1264,13 @@
 		result := new Operation(selfOperation);
 	}
 	
-	var saMutualExRes := owner.getMetaclass("MARTE::MARTE_DesignModel::SRM::SW_Interaction::SwMutualExclusionResource").oclAsType(MARTE::SRM::SW_Interaction::SwMutualExclusionResource);
+	var saMutualExRes := owner.getMetaclass("MARTE::MARTE_DesignModel::SRM::SW_Interaction::SwMutualExclusionResource").oclAsType(MARTE::MARTE_DesignModel::SRM::SW_Interaction::SwMutualExclusionResource);
 	//apply also a SaSharedResource in order to add it to sastep.sharedres
-	var saSharedRes := owner.getMetaclass("MARTE::MARTE_AnalysisModel::SAM::SaSharedResource").oclAsType(MARTE::SAM::SaSharedResource);
+	var saSharedRes := owner.getMetaclass("MARTE::MARTE_AnalysisModel::SAM::SaSharedResource").oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaSharedResource);
 
 	owner.ownedOperation += result;
 	// Convert the newly created operation to a <<saStep>>
-	var saStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var saStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	saStep.execTime += chrt.getWCET();//chrts.localWCET;
 	// The sharedRes will be set on the SaStep of the end to end workflow
 	saStep.sharedRes += saSharedRes;
@@ -1283,9 +1283,9 @@
 	
 	result.name := name;
 	operationPackage.packagedElement += result;
-	var mutualExRes := result.applyStereotype(getMARTEStereotype("SwMutualExclusionResource")).oclAsType(MARTE::SRM::SW_Interaction::SwMutualExclusionResource);
+	var mutualExRes := result.applyStereotype(getMARTEStereotype("SwMutualExclusionResource")).oclAsType(MARTE::MARTE_DesignModel::SRM::SW_Interaction::SwMutualExclusionResource);
 	
-	var saSharedRes := result.applyStereotype(getMARTEStereotype("SaSharedResource")).oclAsType(MARTE::SAM::SaSharedResource);
+	var saSharedRes := result.applyStereotype(getMARTEStereotype("SaSharedResource")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaSharedResource);
 	//saSharedRes.ceiling := "(value="+ self.CHRtSpec().ceiling +", source=req)";
 	//saSharedRes.ceiling := annotation.CHRtSpec().ceiling;
 	result.setCeiling2(annotation.CHRtSpec().ceiling);
@@ -1361,7 +1361,7 @@
 
 	owner.ownedOperation += result;
 	// Convert the newly created operation to a <<saStep>>
-	var localSaStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var localSaStep := result.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	localSaStep.execTime += self.getWCET();//chrts.localWCET;
 	
 	//createSubUsageForPSMOperation(selfOperation, result, slot.owningInstance)
@@ -1390,9 +1390,9 @@
 	result.name := name;
 	operationPackage.packagedElement += result;
 	
-	var swMutualExRes := result.applyStereotype(getMARTEStereotype("SwMutualExclusionResource")).oclAsType(MARTE::SRM::SW_Interaction::SwMutualExclusionResource);	
+	var swMutualExRes := result.applyStereotype(getMARTEStereotype("SwMutualExclusionResource")).oclAsType(MARTE::MARTE_DesignModel::SRM::SW_Interaction::SwMutualExclusionResource);	
 	//apply also a SaSharedResource in order to add it to sastep.sharedres
-	var saSharedRes := result.applyStereotype(getMARTEStereotype("SaSharedResource")).oclAsType(MARTE::SAM::SaSharedResource);
+	var saSharedRes := result.applyStereotype(getMARTEStereotype("SaSharedResource")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaSharedResource);
 	
 	result.setCeiling2(chrt.CHRtSpec().ceiling);
 	result.setProtectKind2("PriorityCeiling");
@@ -1400,9 +1400,9 @@
 	result.ownedOperation += putOp;
 	result.ownedOperation += getOp;
 		
-	var saPutOp  := putOp.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var saPutOp  := putOp.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	saPutOp.sharedRes += saSharedRes;
-	var saGetOp := getOp.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var saGetOp := getOp.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	saGetOp.sharedRes += saSharedRes;
 	
 	saPutOp.execTime := "(worst=0.0,value=0.0,best=0.0,unit=ms)";
@@ -1424,8 +1424,8 @@
 	result.ownedOperation += sendOp;
 	result.ownedOperation += receiveOp;
 		
-	var stsendOp  := sendOp.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
-	var streceiveOp := receiveOp.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::SAM::SaStep);
+	var stsendOp  := sendOp.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
+	var streceiveOp := receiveOp.applyStereotype(getMARTEStereotype("SaStep")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaStep);
 	
 	//TODO for the moment exec time is hardcoded
 	stsendOp.execTime := "(worst=0.0,value=0.0,best=0.0,unit=ms)";
@@ -1451,7 +1451,7 @@
 	result.name := self.name;
 	hostPackage.packagedElement += result;
 	
-	var stHost := result.applyStereotype(getMARTEStereotype("SaCommHost")).oclAsType(MARTE::SAM::SaCommHost);
+	var stHost := result.applyStereotype(getMARTEStereotype("SaCommHost")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaCommHost);
 	stHost.speedFactor := hwBus.speedFactor;//DEF"";
 	if stHost.speedFactor = null or stHost.speedFactor = "" then
 		stHost.speedFactor := "(value=1.0)"
@@ -1480,9 +1480,9 @@
 	result.name := self.name + "_" + host.name + "_server";
 	hostPackage.packagedElement += result;
 	
-	var stCommChannel := result.applyStereotype(getMARTEStereotype("GaCommChannel")).oclAsType(MARTE::GQAM::GaCommChannel);
+	var stCommChannel := result.applyStereotype(getMARTEStereotype("GaCommChannel")).oclAsType(MARTE::MARTE_AnalysisModel::GQAM::GaCommChannel);
 	
-	stCommChannel.host := host.resolveoneIn(InstanceSpecification::HwBus2SaCommHost, Class).getMetaclass(SaCommHostQN).oclAsType(MARTE::SAM::SaCommHost);
+	stCommChannel.host := host.resolveoneIn(InstanceSpecification::HwBus2SaCommHost, Class).getMetaclass(SaCommHostQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaCommHost);
 	//TODO schedParams?
 	stCommChannel.schedParams := "fp(priority=(value=24,source=meas))";
 }
@@ -1501,7 +1501,7 @@
     var hcr := self.getMetaclass(CHHwComputingResourceQN).oclAsType(chessmlprofile::HardwareBaseline::CH_HwComputingResource);
 	result.name := self.name;
 	hostPackage.packagedElement += result;
-	var stHost := result.applyStereotype(getMARTEStereotype("SaExecHost")).oclAsType(MARTE::SAM::SaExecHost);
+	var stHost := result.applyStereotype(getMARTEStereotype("SaExecHost")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost);
 	
 	stHost.schedPriRange := "[1..256]";
 	stHost.speedFactor := hcr.speedFactor;//"(value=1.0)";
@@ -1515,7 +1515,7 @@
 	log("number of cores "+n.toString());
 	
 	var p := self.map HwProcessor2SaExecHost(null);
-	var pHost := p.getMetaclass("SaExecHost").oclAsType(MARTE::SAM::SaExecHost);
+	var pHost := p.getMetaclass("SaExecHost").oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost);
 	pHost.otherSchedPolicy := "partitioned";//or global
 	//Generate cores and assign the processor as the host for each core
 	while(n>1 and i < n) {
@@ -1526,7 +1526,7 @@
 			name := c.name;
 		};
 		p.nestedClassifier +=cc;
-		c.getMetaclass("SaExecHost").oclAsType(MARTE::SAM::SaExecHost).host := pHost;
+		c.getMetaclass("SaExecHost").oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost).host := pHost;
 		i := i + 1;
 	}
 }
@@ -1539,12 +1539,12 @@
 		name := name + core;
 	};
 	var host := self.resolveoneIn(InstanceSpecification::HwProcessor2SaExecHost, Class);
-	var saHost := host.getMetaclass(SaExecHostQN).oclAsType(MARTE::SAM::SaExecHost);
+	var saHost := host.getMetaclass(SaExecHostQN).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost);
 	log("Generating <<SaExecHost>> from instanceSpecification '"+self.name+"' corresponding to <<CH_HwProcessor>> '" + self.classifier().name + message);
     var hcr := self.getMetaclass(CHHwProcessorQN).oclAsType(chessmlprofile::HardwareBaseline::CH_HwProcessor);
 	result.name := name;
 	hostPackage.packagedElement += result;
-	var stHost := result.applyStereotype(getMARTEStereotype("SaExecHost")).oclAsType(MARTE::SAM::SaExecHost);
+	var stHost := result.applyStereotype(getMARTEStereotype("SaExecHost")).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaExecHost);
 	stHost.schedPriRange := "[1..256]";
 	stHost.speedFactor := hcr.speedFactor;
 	stHost.host := saHost;
@@ -1604,7 +1604,7 @@
 	result.precondition += actConstraint;
 	//we need to have the original deadline in a field not overritten by the MAST analysis
 	var e2estereo : Stereotype := result.getApplicableStereotype("MARTE::MARTE_AnalysisModel::SAM::SaEndtoEndFlow");
-	var e2eflow : MARTE::SAM::SaEndtoEndFlow = result.getStereotypeApplication(e2estereo).oclAsType(MARTE::SAM::SaEndtoEndFlow);
+	var e2eflow : MARTE::MARTE_AnalysisModel::SAM::SaEndtoEndFlow = result.getStereotypeApplication(e2estereo).oclAsType(MARTE::MARTE_AnalysisModel::SAM::SaEndtoEndFlow);
 	e2eflow.end2EndD += chrts.rlDl;
 	
 	var actInitialNode := result.createInitialNode();
@@ -1612,7 +1612,7 @@
 	
 	result.edge += controlFlowInit;
     //Apply stereotype <<gaLatencyObs>> and specify the deadline for the end to end flow
-	var gaLatencyObs := actConstraint.applyStereotype(getMARTEStereotype("GaLatencyObs")).oclAsType(MARTE::GQAM::GaLatencyObs);
+	var gaLatencyObs := actConstraint.applyStereotype(getMARTEStereotype("GaLatencyObs")).oclAsType(MARTE::MARTE_AnalysisModel::GQAM::GaLatencyObs);
 	//var relativeDeadline : String := "(value=" + CHRtRlDl + ",unit=ms)";
 	gaLatencyObs.latency += chrts.rlDl;
 	
@@ -1626,7 +1626,7 @@
 	
 	//Apply stereotype <<gaWorkloadEvent>> and specify the release pattern
 	//of the end-to-end flow
-	var gaWorkloadEvent := actInitialNode.applyStereotype(getMARTEStereotype("GaWorkloadEvent")).oclAsType(MARTE::GQAM::GaWorkloadEvent);
+	var gaWorkloadEvent := actInitialNode.applyStereotype(getMARTEStereotype("GaWorkloadEvent")).oclAsType(MARTE::MARTE_AnalysisModel::GQAM::GaWorkloadEvent);
 	gaWorkloadEvent.pattern := chrts.occKind;
 	
 	var resultNode := createOpaqueActionsChainFull(chrts.isProtected(), self, slot, result, actInitialNode, inst);
@@ -1660,7 +1660,7 @@
 }
 
 query chessmlprofile::RTComponentModel::CHRtSpecification::isProtected() : Boolean { 
-	return (not self.isDeferred()) and self.protection = MARTE::HLAM::CallConcurrencyKind::guarded;
+	return (not self.isDeferred()) and self.protection = MARTE::MARTE_DesignModel::HLAM::CallConcurrencyKind::guarded;
 }
 
 query Port::getCHrtSpecComment() : Comment {
@@ -1829,24 +1829,24 @@
 */
 
 query Comment::getTo() : InstanceSpecification{
-	var asg := self.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+	var asg := self.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 	return 	asg.to![InstanceSpecification];
 }
 
-query getAssignForInstance(p : InstanceSpecification) : MARTE::Alloc::Assign {
-	return assigns->selectOne(isAssignForInstance(p)).getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+query getAssignForInstance(p : InstanceSpecification) : MARTE::MARTE_Foundations::Alloc::Assign {
+	return assigns->selectOne(isAssignForInstance(p)).getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 }
 
-query getAssignForInstance(p : Slot, c : Comment) : MARTE::Alloc::Assign {
-	return assigns->selectOne(isAssignForInstance(p, c)).getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+query getAssignForInstance(p : Slot, c : Comment) : MARTE::MARTE_Foundations::Alloc::Assign {
+	return assigns->selectOne(isAssignForInstance(p, c)).getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 }
 
 query InstanceSpecification::getComponentsOfPartition() : Set(InstanceSpecification) {
-	return partitionAssigns->select(isAssignForPartition(self)).getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign)._from.oclAsType(InstanceSpecification)->asSet();
+	return partitionAssigns->select(isAssignForPartition(self)).getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign)._from.oclAsType(InstanceSpecification)->asSet();
 }
 
 query Classifier::getPartitionInstance() : InstanceSpecification {
-	return partitionAssigns->selectOne(isAssignForPartition(self)).getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign).to![InstanceSpecification].oclAsType(InstanceSpecification);
+	return partitionAssigns->selectOne(isAssignForPartition(self)).getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign).to![InstanceSpecification].oclAsType(InstanceSpecification);
 }
 
 query InstanceSpecification::getAssignedCore() : String {	
@@ -1855,36 +1855,36 @@
 }
 
 query InstanceSpecification::getAssignedProcessor() : InstanceSpecification {	
-	var c : MARTE::Alloc::Assign := assigns->selectOne(isAssignFromPartitionInstance(self)).getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+	var c : MARTE::MARTE_Foundations::Alloc::Assign := assigns->selectOne(isAssignFromPartitionInstance(self)).getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 	return c.to![InstanceSpecification];
 }
 
 query Comment::isAssignFromPartitionInstance(p : InstanceSpecification) : Boolean {
-	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 	return ass._from![InstanceSpecification] = p;
 }
 
 
 query Comment::isAssignForInstance(spec : InstanceSpecification) : Boolean {
-	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 	//return ass._from![InstanceSpecification] = spec.getSourceInstanceSpec() and self.isReferringId(spec.getId());
 	return ass._from![InstanceSpecification] = spec;
 }
 
 query Comment::isAssignForInstance(spec : Slot, chrt : Comment) : Boolean {
-	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 	var context := self.getContextFromContraint();
 	
 	return ass._from![Slot].definingFeature = spec.definingFeature and context = chrt.CHRtSpec().context.name;
 }
 
 query Comment::isAssignForPartition(p : InstanceSpecification) : Boolean {
-	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 	return ass.to![InstanceSpecification] = p;
 }
 
 query Comment::isAssignForPartition(p : Classifier) : Boolean {
-	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+	var ass := self.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 	return ass.to![InstanceSpecification].classifier![Classifier] = p;
 }
 
@@ -1894,7 +1894,7 @@
 	var toClass := toInstance.classifier![Classifier];
 	if toClass.isStereotyped(MemoryPartitionQN) then {
 		var a := assigns -> selectOne(isAssignedFrom(toInstance));
-		var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+		var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 		return 	asg.to![InstanceSpecification];
 	} else //it is an hardware component
 		return 	ass.to![InstanceSpecification]
@@ -1911,7 +1911,7 @@
 	var toClass := toInstance.classifier![Classifier];
 	if toClass.isStereotyped(MemoryPartitionQN) then {
 		var a := assigns -> selectOne(isAssignedFrom(toInstance));
-		var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+		var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 		return 	asg.base_Comment.getCoreFromContraint();
 	} else //it is an hardware component
 		return 	ass.base_Comment.getCoreFromContraint()
@@ -1926,7 +1926,7 @@
 	var toClass := toInstance.classifier![Classifier];
 	if toClass.isStereotyped(MemoryPartitionQN) then {
 		var a := assigns -> selectOne(isAssignedFrom(toInstance));
-		var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+		var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 		return 	asg.to![InstanceSpecification];
 	} else //it is an hardware component
 		return 	ass.to![InstanceSpecification]
@@ -1944,7 +1944,7 @@
 	var toClass := toInstance.classifier![Classifier];
 	if toClass.isStereotyped(MemoryPartitionQN) then {
 		var a := assigns -> selectOne(isAssignedFrom(toInstance));
-		var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+		var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 		return 	asg.base_Comment.getCoreFromContraint();
 	} else //it is an hardware component
 		return 	ass.base_Comment.getCoreFromContraint()
@@ -1955,23 +1955,23 @@
 
 //query getAssignToFrom(p : InstanceSpecification) : InstanceSpecification {
 //	var a := assigns -> selectOne(isAssignedFrom(p));
-//	var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+//	var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 //	return 	asg.to![InstanceSpecification];
 //}
 
 //query getAssignFromTo(p : InstanceSpecification) : InstanceSpecification {
 //	var a := assigns -> selectOne(isAssignedTo(p));
-//	var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+//	var asg := a.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
 //	return 	asg._from![InstanceSpecification];
 //}
 
 query Comment::isAssignedFrom(p : InstanceSpecification) : Boolean {
-    var asg := self.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+    var asg := self.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
     return asg._from![InstanceSpecification] = p;
 }
 
 query Comment::isAssignedTo(p : InstanceSpecification) : Boolean {
-    var asg := self.getMetaclass(AssignQN).oclAsType(MARTE::Alloc::Assign);
+    var asg := self.getMetaclass(AssignQN).oclAsType(MARTE::MARTE_Foundations::Alloc::Assign);
     return asg.to![InstanceSpecification] = p;
 }
 
@@ -2063,9 +2063,9 @@
 
 //assumption: the SaAnalysisContext.platform owns the reference to the package of the HW instances (to be considered for the analysis) available in the DeploymentView.
 //returns the component which types the root HW instance stored in the package of the HW instances available in the DeploymentView.
-query MARTE::SAM::SaAnalysisContext::getSystem() : Component {
+query MARTE::MARTE_AnalysisModel::SAM::SaAnalysisContext::getSystem() : Component {
 	
-	var platforms : Set(MARTE::GQAM::GaResourcesPlatform) := self.platform->asSet();
+	var platforms : Set(MARTE::MARTE_AnalysisModel::GQAM::GaResourcesPlatform) := self.platform->asSet();
 	platforms->forEach (plat){
 		var package : Element := plat.oclAsType(CHESS::Core::CHGaResourcePlatform).base_Package;
 		var found : Boolean = false;
@@ -2099,9 +2099,9 @@
 //assumption: the SaAnalysisContext.platform owns the reference to the package of the SW instances (to be considered for the analysis) available in the ComponentView.
 //returns the packages of the SW instances referred by SaAnalysisContext.platform 
 	
-query MARTE::SAM::SaAnalysisContext::getSwSystemInstPackage() : Package {
+query MARTE::MARTE_AnalysisModel::SAM::SaAnalysisContext::getSwSystemInstPackage() : Package {
 	
-	var platforms : Set(MARTE::GQAM::GaResourcesPlatform) := self.platform->asSet();
+	var platforms : Set(MARTE::MARTE_AnalysisModel::GQAM::GaResourcesPlatform) := self.platform->asSet();
 	platforms->forEach (plat){
 		var package : Element := plat.oclAsType(CHESS::Core::CHGaResourcePlatform).base_Package;
 		var found : Boolean = false;
diff --git a/plugins/org.polarsys.chess.mainmenu/.classpath b/plugins/org.polarsys.chess.mainmenu/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/plugins/org.polarsys.chess.mainmenu/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.polarsys.chess.mainmenu/.project b/plugins/org.polarsys.chess.mainmenu/.project
new file mode 100644
index 0000000..f8e16c8
--- /dev/null
+++ b/plugins/org.polarsys.chess.mainmenu/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.polarsys.chess.mainmenu</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.polarsys.chess.mainmenu/.settings/org.eclipse.jdt.core.prefs b/plugins/org.polarsys.chess.mainmenu/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/org.polarsys.chess.mainmenu/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/org.polarsys.chess.mainmenu/META-INF/MANIFEST.MF b/plugins/org.polarsys.chess.mainmenu/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..0cae7cb
--- /dev/null
+++ b/plugins/org.polarsys.chess.mainmenu/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Main Menu
+Bundle-SymbolicName: org.polarsys.chess.mainmenu;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.polarsys.chess.mainmenu.Activator
+Bundle-Vendor: Intecs Solutions
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.polarsys.chess.mainmenu/bin/org/polarsys/chess/mainmenu/Activator.class b/plugins/org.polarsys.chess.mainmenu/bin/org/polarsys/chess/mainmenu/Activator.class
new file mode 100644
index 0000000..2372d77
--- /dev/null
+++ b/plugins/org.polarsys.chess.mainmenu/bin/org/polarsys/chess/mainmenu/Activator.class
Binary files differ
diff --git a/plugins/org.polarsys.chess.mainmenu/build.properties b/plugins/org.polarsys.chess.mainmenu/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/plugins/org.polarsys.chess.mainmenu/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/plugins/org.polarsys.chess.mainmenu/plugin.xml b/plugins/org.polarsys.chess.mainmenu/plugin.xml
new file mode 100644
index 0000000..cf2e653
--- /dev/null
+++ b/plugins/org.polarsys.chess.mainmenu/plugin.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.4"?>

+<plugin>

+

+  <extension

+         point="org.eclipse.ui.menus">

+      <menuContribution

+            allPopups="false"

+            locationURI="menu:org.eclipse.ui.main.menu">

+         <menu

+               id="org.polarsys.chess.mainMenu"

+               label="CHESS"

+               mnemonic="E">

+   <menu

+		id="chess.menu.argumentation.id"

+		label="Argumentation">

+   </menu>

+   <separator

+         name="org.polarsys.chess.mainmenu.separator1"

+         visible="true">

+   </separator>

+   <menu

+         id="chess.menu.importexport.id"

+         label="Import/Export">

+      <menu

+            id="chess.menu.basicoperations.id"

+            label="OSS/SMV">

+      </menu>

+   </menu>

+   <menu

+         id="chess.menu.safetycase.id"

+         label="Safety Case">

+   </menu>

+   <menu

+         id="chess.menu.multicore.id"

+         label="Multicore Support">

+   </menu>

+   <separator

+         name="org.polarsys.chess.mainmenu.separator2"

+         visible="true">

+   </separator>

+   <menu

+         id="chess.menu.validation.id"

+         label="Validation">

+   </menu>

+   <menu

+         id="chess.menu.functverification.id"

+         label="Functional Verification">

+      <separator

+            name="org.polarsys.chess.mainmenu.functverification.separator1"

+            visible="true">

+      </separator>

+   </menu>

+   <menu

+         id="chess.menu.dependability.id"

+         label="Dependability">

+      <separator

+            name="org.polarsys.chess.mainmenu.dependability.separator1"

+            visible="true">

+      </separator>

+      <separator

+            name="org.polarsys.chess.mainmenu.dependability.separator2"

+            visible="true">

+      </separator>

+   </menu>

+   <menu

+         id="chess.menu.realtime.id"

+         label="Real-Time">

+   </menu>

+   <separator

+         name="org.polarsys.chess.mainmenu.separator4"

+         visible="true">

+   </separator>

+   <menu

+         id="chess.menu.codegen.id"

+         label="Code Generation">

+   </menu>

+   <separator

+         name="org.polarsys.chess.mainmenu.separator3"

+         visible="true">

+   </separator>

+   <menu

+         id="chess.menu.filters.id"

+         label="Filters">

+   </menu>

+   <menu

+         id="chess.menu.tests.id"

+         label="Tests">

+   </menu>

+   <menu

+         id="chess.menu.debug.id"

+         label="//Debug Operations">

+      <menu

+            id="chess.menu.debug.basicoperations.id"

+            label="OSS/SMV">

+      </menu>

+      <separator

+            name="org.polarsys.chess.mainmenu.debug.separator1"

+            visible="true">

+      </separator>

+      <menu

+            id="chess.menu.debug.functverification.id"

+            label="Functional Verification">

+      </menu>

+      <menu

+            id="chess.menu.debug.dependability.id"

+            label="Dependability">

+      </menu>

+      <menu

+            id="chess.menu.debug.validation.id"

+            label="Validation">

+      </menu>

+   </menu>

+         </menu>

+      </menuContribution>

+  </extension> 

+

+</plugin>

diff --git a/plugins/org.polarsys.chess.mainmenu/src/org/polarsys/chess/mainmenu/Activator.java b/plugins/org.polarsys.chess.mainmenu/src/org/polarsys/chess/mainmenu/Activator.java
new file mode 100644
index 0000000..95fd272
--- /dev/null
+++ b/plugins/org.polarsys.chess.mainmenu/src/org/polarsys/chess/mainmenu/Activator.java
@@ -0,0 +1,61 @@
+package org.polarsys.chess.mainmenu;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.polarsys.chess.mainmenu"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Returns an image descriptor for the image file at the given
+	 * plug-in relative path
+	 *
+	 * @param path the path
+	 * @return the image descriptor
+	 */
+	public static ImageDescriptor getImageDescriptor(String path) {
+		return imageDescriptorFromPlugin(PLUGIN_ID, path);
+	}
+}
diff --git a/plugins/org.polarsys.chess.monitoring/META-INF/MANIFEST.MF b/plugins/org.polarsys.chess.monitoring/META-INF/MANIFEST.MF
index 344f61b..8c459ae 100644
--- a/plugins/org.polarsys.chess.monitoring/META-INF/MANIFEST.MF
+++ b/plugins/org.polarsys.chess.monitoring/META-INF/MANIFEST.MF
@@ -14,9 +14,15 @@
  org.eclipse.emf.ecore;visibility:=reexport,
  org.eclipse.ui.workbench,
  org.eclipse.ui,
- org.eclipse.core.resources
+ org.eclipse.core.resources,
+ org.polarsys.chess.core,
+ org.eclipse.papyrus.infra.tools,
+ org.eclipse.papyrus.infra.widgets.toolbox,
+ org.eclipse.papyrus.emf.facet.custom.metamodel,
+ org.eclipse.uml2.uml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecore.xmi,
+Import-Package: org.eclipse.core.filesystem,
+ org.eclipse.emf.ecore.xmi,
  org.eclipse.emf.ecore.xmi.impl,
  org.eclipse.m2m.qvt.oml,
  org.eclipse.m2m.qvt.oml.util,
diff --git a/plugins/org.polarsys.chess.monitoring/plugin.properties b/plugins/org.polarsys.chess.monitoring/plugin.properties
index be8bea9..39976b3 100644
--- a/plugins/org.polarsys.chess.monitoring/plugin.properties
+++ b/plugins/org.polarsys.chess.monitoring/plugin.properties
@@ -1,4 +1,4 @@
 #
 
-pluginName = Monitoring Model
-providerName = www.example.org
+pluginName = CHESS Monitoring Support
+providerName = MDH/Intecs
diff --git a/plugins/org.polarsys.chess.monitoring/plugin.xml b/plugins/org.polarsys.chess.monitoring/plugin.xml
index a4808e5..3d42715 100644
--- a/plugins/org.polarsys.chess.monitoring/plugin.xml
+++ b/plugins/org.polarsys.chess.monitoring/plugin.xml
@@ -43,5 +43,62 @@
             class="org.polarsys.chess.monitoring.monitoringxml.MonitoringxmlPackage"
             genModel="model/monitoring.genmodel"/>
    </extension>
+   <extension
+         point="org.eclipse.ui.preferencePages">
+      <page
+            category="org.polarsys.chess.preferences"
+            class="org.polarsys.chess.monitoring.preferences.MonitoringPreferencePage"
+            id="org.polarsys.chess.monitoring.preferences.MonitoringPreferencePage"
+            name="Monitoring Preferences">
+      </page>
+   </extension>
+   <extension
+         point="org.eclipse.core.runtime.preferences">
+      <initializer
+            class="org.polarsys.chess.monitoring.preferences.PreferenceInitializer">
+      </initializer>
+   </extension>
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            allPopups="false"
+            locationURI="popup:org.polarsys.chess.modelexplorerpopupmenu.id?after=org.polarsys.chess.patterns.id">
+         <menu
+               label=" Monitoring">
+            <command
+                  commandId="org.polarsys.chess.monitoring.importLogcommand"
+                  label="Import Log"
+                  style="push">
+                   <visibleWhen
+                     checkEnabled="false">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <adapt
+                           type="org.eclipse.emf.ecore.EObject">
+                        <instanceof
+                              value="org.eclipse.uml2.uml.Class">
+                        </instanceof>
+                     </adapt>
+                  </iterate>
+               </visibleWhen>
+            </command>
+         </menu>
+      </menuContribution>
+   </extension>
+   <extension
+         point="org.eclipse.ui.commands">
+      <command
+            id="org.polarsys.chess.monitoring.importCommand"
+            name="importLogCommand">
+      </command>
+   </extension>
+   <extension
+         point="org.eclipse.ui.handlers">
+      <handler
+            class="org.polarsys.chess.monitoring.monitoringxml.popup.actions.ImportLogHandler"
+            commandId="org.polarsys.chess.monitoring.importLogcommand">
+      </handler>
+   </extension>
 
 </plugin>
diff --git a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/ImportLogHandler.java b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/ImportLogHandler.java
new file mode 100644
index 0000000..f3a68eb
--- /dev/null
+++ b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/ImportLogHandler.java
@@ -0,0 +1,125 @@
+/*

+-----------------------------------------------------------------------

+--                    CHESS monitoring plugin                        --

+--                                                                   --

+--                    Copyright (C) 2020                             --

+--                     Intecs - Italy                                --

+--                                                                   --                      --

+--                                                                   --

+-- All rights reserved. This program and the accompanying materials  --

+-- are made available under the terms of the Eclipse Public License  --

+-- v1.0 which accompanies this distribution, and is available at     --

+-- http://www.eclipse.org/legal/epl-v10.html                         --

+-----------------------------------------------------------------------

+  */ 

+

+package org.polarsys.chess.monitoring.monitoringxml.popup.actions;

+import java.net.URI;

+

+import org.eclipse.core.commands.AbstractHandler;

+import org.eclipse.core.commands.ExecutionEvent;

+import org.eclipse.core.commands.ExecutionException;

+import org.eclipse.core.filesystem.URIUtil;

+import org.eclipse.core.resources.IFile;

+import org.eclipse.core.resources.IProject;

+import org.eclipse.core.resources.IResource;

+import org.eclipse.core.resources.IWorkspace;

+import org.eclipse.core.resources.IWorkspaceRoot;

+import org.eclipse.core.resources.ResourcesPlugin;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.jface.viewers.ISelection;

+import org.eclipse.jface.viewers.ITreeSelection;

+import org.eclipse.papyrus.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement;

+import org.eclipse.swt.SWT;

+import org.eclipse.swt.widgets.FileDialog;

+import org.eclipse.swt.widgets.Shell;

+import org.eclipse.ui.IEditorInput;

+import org.eclipse.ui.IEditorPart;

+import org.eclipse.ui.ISelectionService;

+import org.eclipse.ui.IWorkbenchPage;

+import org.eclipse.ui.IWorkbenchWindow;

+import org.eclipse.ui.PlatformUI;

+import org.eclipse.ui.handlers.HandlerUtil;

+import org.eclipse.uml2.uml.Class;

+

+//invoked on an AnalysisContext, performs the trace analysis and back propagation

+public class ImportLogHandler extends AbstractHandler {

+

+

+	@Override

+	public Object execute(ExecutionEvent event) throws ExecutionException {

+		

+		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);

+		

+		

+		ISelectionService selectionService = window.getSelectionService();

+		ISelection selectionX = selectionService.getSelection();

+		if (!(selectionX instanceof ITreeSelection)){

+			//ResourceNotification.showOk("Please invoke the command on a single selection on the ModelExplorer");

+			return null;

+		}

+		ITreeSelection treesel = (ITreeSelection)selectionX;

+		if (treesel.getPaths().length == 0 ||  treesel.getPaths().length > 1){

+			//ResourceNotification.showError("Please invoke command on a single selection on the ModelExplorer");

+			return null;

+		}

+		

+		Object obj = treesel.getFirstElement();

+		if (!(obj instanceof EObjectTreeElement)){

+			//ResourceNotification.showError("Please invoke the Build Instance command on a single selection on the ModelExplorer");

+			return null;

+		}

+		EObject eobj = ((EObjectTreeElement) obj).getEObject();

+		final Class umlClass = (Class) eobj;

+				

+		//get the current project

+		umlClass.eResource().getResourceSet();

+		

+		IWorkbenchPage activePage = window.getActivePage();

+		IEditorPart activeEditor = activePage.getActiveEditor();

+

+		if (activeEditor != null) {

+		   IEditorInput input = activeEditor.getEditorInput();

+

+		   IProject project = input.getAdapter(IProject.class);

+		   if (project == null) {

+		      IResource resource = input.getAdapter(IResource.class);

+		      if (resource != null) {

+		         project = resource.getProject();

+		         

+		      }

+		   }

+		   IFile monitorinFile = project.getFile("\\src-gen_model\\monitoring.xml");

+		   if (monitorinFile.exists()){

+			   //ask for log file

+			   Shell activeShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();

+			   FileDialog dialog = new FileDialog(activeShell, SWT.OPEN);

+			   dialog.setFilterExtensions(new String [] {""});

+			   String logPath = dialog.open();

+			   

+			   IWorkspace workspace = ResourcesPlugin.getWorkspace();

+			   IWorkspaceRoot root = workspace.getRoot();

+			 

+			   URI logURI = URIUtil.toURI(logPath);

+			   IFile[] logfiles = root.findFilesForLocationURI(logURI);

+			  

+			   //first let's analyze the trace

+			   LaunchTraceAnalysis traceAnalysis = new LaunchTraceAnalysis(activeShell, logfiles[0], null, monitorinFile, false);

+			   traceAnalysis.run(null);

+			   

+			   //now back propagation...

+			   IFile analyzedTraceFile = project.getFile("\\src-gen_model\\"+umlClass.getName()+"_monitoring.xml");

+			   IFile umlFile = project.getFile(umlClass.eResource().getURI().lastSegment());

+			   if (umlFile.exists() && analyzedTraceFile.exists()){

+				   LaunchBackpropagation back = new LaunchBackpropagation(activeShell, analyzedTraceFile, umlFile, null);

+				   back.run(null);

+			   }

+			  

+		   }

+		}

+		

+		return null;

+		

+	}

+

+}

diff --git a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/LaunchBackpropagation.java b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/LaunchBackpropagation.java
index 0af9775..d8aa5aa 100644
--- a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/LaunchBackpropagation.java
+++ b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/LaunchBackpropagation.java
@@ -2,8 +2,9 @@
 -----------------------------------------------------------------------
 --                    CHESS monitoring plugin                        --
 --                                                                   --
---                    Copyright (C) 2015-2016                        --
---                 Malardalen University, Sweden                       --
+--                    Copyright (C) 2015-2020                        --
+--                 Malardalen University, Sweden
+--					Intecs, Italy
 --                                                                   --                      --
 --                                                                   --
 -- All rights reserved. This program and the accompanying materials  --
@@ -76,8 +77,6 @@
 	private IFile xmlFile;
 	private IFile chessFile;
 	private IWorkspaceRoot root;
-//	private IWorkbenchPart part;
-//	private ISelection selection;
 
 	private static String XML_MODEL_PATH;
 	private static Resource XML_MODEL_RESOURCE;
@@ -119,7 +118,8 @@
 		}
 		
 		try {
-			chessFile = handleBrowseFile("Monitoring backpropagation from XML", "Please choose the target model");
+			if (chessFile == null)
+				chessFile = handleBrowseFile("Monitoring backpropagation from XML", "Please choose the target model");
 			this.backpropagateMonitoringMeasures(xmlFile, chessFile);
 			MessageDialog.openInformation(shell,"Monitoring backpropagation","The backpropagation has been successfully executed.");
 		} catch(Exception exMB){
@@ -211,12 +211,17 @@
 	
 				if(monitor.isCanceled())
 					throw new OperationCanceledException();
-				
+				try {
+					chessFile.getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
+				} catch (CoreException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
         monitor.worked(100);
         monitor.done(); 
         
         }});
-			chessFile.getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
+			//chessFile.getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
 	}catch(Exception ex){//throw new OperationCanceledException("Operation aborted by the user.");};}
 		throw new OperationCanceledException(ex.getMessage());
 	}
diff --git a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/LaunchTraceAnalysis.java b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/LaunchTraceAnalysis.java
index 2e82ada..b1c2269 100644
--- a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/LaunchTraceAnalysis.java
+++ b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/monitoringxml/popup/actions/LaunchTraceAnalysis.java
@@ -49,7 +49,7 @@
 
 	private Shell shell;
 	private IFile traceFile;
-	private IFile inXMLFile;
+	private IFile inXMLFile = null;
 	private String outXMLFileName;
 	private IWorkspaceRoot root;
 //	private IWorkbenchPart part;
@@ -59,6 +59,7 @@
 	private static Resource XML_MODEL_RESOURCE;
 	private static String UML_MODEL_PATH;
 	private static Resource UML_MODEL_RESOURCE;
+	private boolean showMsg = true;
 
 	/**
 	 * Constructor for Action1.
@@ -72,6 +73,15 @@
 		this.traceFile = inTraceFile;
 		this.root = inRoot;
 	}
+	
+	public LaunchTraceAnalysis(final Shell inShell, final IFile inTraceFile, final IWorkspaceRoot inRoot, IFile inXMLFile, boolean showMsgDialog) {
+		this.shell = inShell;
+		this.traceFile = inTraceFile;
+		this.root = inRoot;
+		this.inXMLFile = inXMLFile;
+		showMsg = showMsgDialog;
+	}
+	
 
 	/**
 	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
@@ -94,22 +104,26 @@
 //		URI xmlURI = URI.createFileURI(path.toString());
 //		Resource inXMLResource = resourceSet.getResource(xmlURI, true);		
 
-		if (!traceFile.getLocation().getFileExtension().equals("txt")) {
-			MessageDialog.openError(shell, "The selected file is not a TXT file. To perform monitoring Analysis please select the TXT file containing execution traces. " ,"Monitoring Analysis has failed");
-		}
+//		if (!traceFile.getLocation().getFileExtension().equals("txt")) {
+//			MessageDialog.openError(shell, "The selected file is not a TXT file. To perform monitoring Analysis please select the TXT file containing execution traces. " ,"Monitoring Analysis has failed");
+//		}
 		
 		//final LaunchTraceAnalysis mab = new LaunchTraceAnalysis(shell, traceFile, root);
 		try {
-			this.inXMLFile = handleBrowseFile("Monitoring trace analysis", "Please choose the input XML list of threads");
+			if (inXMLFile == null)
+				this.inXMLFile = handleBrowseFile("Monitoring trace analysis", "Please choose the input XML list of threads");
 			this.outXMLFileName = inXMLFile.getName();
 			TraceAnalyser ta = new TraceAnalyser(shell, inXMLFile, outXMLFileName, traceFile);
 			ta.doTraceAnalysis();
-			MessageDialog.openInformation(shell,"Monitoring trace analysis","The analysis has been successfully executed.");
+			if (showMsg)
+				MessageDialog.openInformation(shell,"Monitoring trace analysis","The analysis has been successfully executed.");
 		} catch(Exception exMA){
 			System.out.println(exMA.getMessage());
-			if(!exMA.getMessage().isEmpty())
-				MessageDialog.openError(shell,"Monitoring analysis", exMA.getMessage());	
-			else MessageDialog.openError(shell,"Monitoring analysis", "The analysis has not been successfully executed.");
+			if (showMsg){
+				if(!exMA.getMessage().isEmpty())
+					MessageDialog.openError(shell,"Monitoring analysis", exMA.getMessage());	
+				else MessageDialog.openError(shell,"Monitoring analysis", "The analysis has not been successfully executed.");
+			}
 		};
 	}
 
@@ -225,4 +239,8 @@
 	public static Resource getModelResource(){
 		return UML_MODEL_RESOURCE;
 	}
+	
+	
+	
+	
 }
diff --git a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/preferences/MonitoringPreferencePage.java b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/preferences/MonitoringPreferencePage.java
new file mode 100644
index 0000000..076dd8e
--- /dev/null
+++ b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/preferences/MonitoringPreferencePage.java
@@ -0,0 +1,53 @@
+/*
+-----------------------------------------------------------------------
+--                    CHESS monitoring plugin                        --
+--                                                                   --
+--                    Copyright (C) 2020                             --
+--                     Intecs - Italy                                --
+--                                                                   --                      --
+--                                                                   --
+-- All rights reserved. This program and the accompanying materials  --
+-- are made available under the terms of the Eclipse Public License  --
+-- v1.0 which accompanies this distribution, and is available at     --
+-- http://www.eclipse.org/legal/epl-v10.html                         --
+-----------------------------------------------------------------------
+  */ 
+
+
+package org.polarsys.chess.monitoring.preferences;
+
+import org.eclipse.jface.preference.*;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.IWorkbench;
+import org.polarsys.chess.monitoring.monitoringxml.Activator;
+
+
+public class MonitoringPreferencePage
+	extends FieldEditorPreferencePage
+	implements IWorkbenchPreferencePage {
+
+	public MonitoringPreferencePage() {
+		super(GRID);
+		setPreferenceStore(Activator.getDefault().getPreferenceStore());
+		//setDescription("n");
+	}
+	
+	/**
+	 * Creates the field editors. Field editors are abstractions of
+	 * the common GUI blocks needed to manipulate various types
+	 * of preferences. Each field editor knows how to save and
+	 * restore itself.
+	 */
+	public void createFieldEditors() {
+	
+		addField(
+			new IntegerFieldEditor(PreferenceConstants.COUNTER_SCALE_FACTOR_INT, "Counter scale factor", getFieldEditorParent()));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	public void init(IWorkbench workbench) {
+	}
+	
+}
\ No newline at end of file
diff --git a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/preferences/PreferenceConstants.java b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/preferences/PreferenceConstants.java
new file mode 100644
index 0000000..0e57e73
--- /dev/null
+++ b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/preferences/PreferenceConstants.java
@@ -0,0 +1,26 @@
+/*
+-----------------------------------------------------------------------
+--                    CHESS monitoring plugin                        --
+--                                                                   --
+--                    Copyright (C) 2020                             --
+--                     Intecs - Italy                                --
+--                                                                   --                      --
+--                                                                   --
+-- All rights reserved. This program and the accompanying materials  --
+-- are made available under the terms of the Eclipse Public License  --
+-- v1.0 which accompanies this distribution, and is available at     --
+-- http://www.eclipse.org/legal/epl-v10.html                         --
+-----------------------------------------------------------------------
+  */ 
+
+
+package org.polarsys.chess.monitoring.preferences;
+
+/**
+ * Constant definitions for plug-in preferences
+ */
+public class PreferenceConstants {
+
+	public static final String COUNTER_SCALE_FACTOR_INT = "Counter scale factor";
+	
+}
diff --git a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/preferences/PreferenceInitializer.java b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/preferences/PreferenceInitializer.java
new file mode 100644
index 0000000..f9aef83
--- /dev/null
+++ b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/preferences/PreferenceInitializer.java
@@ -0,0 +1,39 @@
+/*
+-----------------------------------------------------------------------
+--                    CHESS monitoring plugin                        --
+--                                                                   --
+--                    Copyright (C) 2020                             --
+--                     Intecs - Italy                                --
+--                                                                   --                      --
+--                                                                   --
+-- All rights reserved. This program and the accompanying materials  --
+-- are made available under the terms of the Eclipse Public License  --
+-- v1.0 which accompanies this distribution, and is available at     --
+-- http://www.eclipse.org/legal/epl-v10.html                         --
+-----------------------------------------------------------------------
+  */ 
+
+package org.polarsys.chess.monitoring.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+
+import org.polarsys.chess.monitoring.monitoringxml.Activator;
+
+/**
+ * Class used to initialize default preference values.
+ */
+public class PreferenceInitializer extends AbstractPreferenceInitializer {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+	 */
+	public void initializeDefaultPreferences() {
+		IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+		store.setDefault(PreferenceConstants.COUNTER_SCALE_FACTOR_INT,
+				"1");
+	}
+
+}
diff --git a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/Parameters.java b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/Parameters.java
index 61e3eaa..1967dcb 100644
--- a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/Parameters.java
+++ b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/Parameters.java
@@ -22,6 +22,8 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
+import org.polarsys.chess.monitoring.monitoringxml.Activator;
+import org.polarsys.chess.monitoring.preferences.PreferenceConstants;
 import org.polarsys.chess.monitoring.traceanalyser.Event;
 import org.polarsys.chess.monitoring.traceanalyser.EventType;
 import org.polarsys.chess.monitoring.traceanalyser.ThreadEvents;
@@ -59,6 +61,7 @@
 	private double clockRate; 	
 	private IFolder traceExtractionPath; // This path is used to output files that contains all the values of execution time, inter-arrival time and response time
 	private int noOfThreads; 
+	private int counterScaleFactor = 1;
 
 	public Parameters(TraceReader inTrace, IFolder inTraceExtractionPath) 
 	{
@@ -66,6 +69,7 @@
 		threadSpecificEvents = trace.GetThreadSpecificEvents();
 		threadIDs = trace.GetThreadIDs(); 
 		noOfThreads = threadIDs.size();
+		//clock rate can be passed through the log file (optional value), in the first line; the trace analyzed is in charge to retrieve it, if available
 		clockRate = trace.GetClockRate(); 
 
 		this.traceExtractionPath = inTraceExtractionPath; 
@@ -97,6 +101,11 @@
 		varianceInArrivalTimeOfAllThreads = new ArrayList<Double>(noOfThreads); 
 		varianceInBlockingOfAllThreads = new ArrayList<Double>(noOfThreads); 
 		varianceInResponseTimeOfAllThreads = new ArrayList<Double>(noOfThreads); 
+		
+		counterScaleFactor = Integer.parseInt(Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.COUNTER_SCALE_FACTOR_INT));
+		
+		clockRate = clockRate*counterScaleFactor;
+		
 	}
 
 	public void ComputeParameters()
@@ -272,6 +281,8 @@
 						previousEvent.PrintEvent();
 						System.out.print("before current event:");
 						currentEvent.PrintEvent();
+						//let's consider wakeup and sleep events...
+						executionTime += (currentEvent.GetTimeStamp() -previousEvent.GetTimeStamp()); 
 					} 
 					executionTimeOfThread.add(executionTime); 
 					blockingTimeOfThread.add(blockedTime); 
@@ -361,8 +372,6 @@
 	
 	public void WriteAllValuesInFile(ArrayList<Long> parameter, IFolder path, String fileName) throws IOException
 	{
-//		File dir = new File(path);
-//		dir.mkdirs();
 
 		IFile outputFile = path.getProject().getFile(path.getProjectRelativePath()+ File.separator +fileName);
 		FileWriter fstream = new FileWriter(outputFile.getLocation().toOSString());
@@ -467,4 +476,8 @@
 	public ArrayList<Double> GetAverageInterArrivalTimeOfAllThreads() {
 		return averageInterArrivalTimeOfAllThreads;
 	}
+	
+	public Integer getCounterScaleFactor(){
+		return counterScaleFactor;
+	}
 }
\ No newline at end of file
diff --git a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/TraceAnalyser.java b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/TraceAnalyser.java
index c509340..31f62bb 100644
--- a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/TraceAnalyser.java
+++ b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/TraceAnalyser.java
@@ -81,7 +81,7 @@
 		        if (monitor.isCanceled())
 					throw new OperationCanceledException();
 
-		        // Read trace file and get thread specific data
+		        // Read trace file and get thread specific data: clockRate, (optional, default is 1) and thread's eventss
 		        TraceReader trace;
 		        trace = new TraceReader(inTraceFile, inputFile, delimiter);
 		        monitor.worked(45);
@@ -96,7 +96,8 @@
 		        // Write output data in a file
 		        //WriteoutputFile(outputFileName, trace.GetAnalysisContext(), trace.GetThreadIDs(), parameters, unitFactor, unitName,trace.GetClockRate());
 		        try {
-		        	CreateMonitoringXMLOutput(inputFile, outputName, trace.GetAnalysisContext(), trace.GetThreadIDs(), parameters, unitFactor, unitName,trace.GetClockRate());
+		        	double factor = trace.GetClockRate()*parameters.getCounterScaleFactor();
+		        	CreateMonitoringXMLOutput(inputFile, outputName, trace.GetAnalysisContext(), trace.GetThreadIDs(), parameters, unitFactor, unitName,factor);
 		        } catch (Exception e) {
 		        	// TODO Auto-generated catch block
 		        	e.printStackTrace();
diff --git a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/TraceReader.java b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/TraceReader.java
index a8102c3..0e96712 100644
--- a/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/TraceReader.java
+++ b/plugins/org.polarsys.chess.monitoring/src/org/polarsys/chess/monitoring/traceanalyser/TraceReader.java
@@ -25,6 +25,7 @@
 import javax.xml.parsers.DocumentBuilder;
 
 import org.eclipse.core.resources.IFile;
+import org.polarsys.chess.core.util.CHESSProjectSupport;
 import org.polarsys.chess.monitoring.traceanalyser.Event;
 import org.w3c.dom.Document;
 import org.w3c.dom.NodeList;
@@ -54,7 +55,7 @@
 		
 		if(threadIDs.size() == 0)
 		{
-			System.out.println("Error: No thread ID to analyze.");
+			CHESSProjectSupport.printlnToCHESSConsole("Error: No thread ID to analyze.");
 			System.exit(0); 
 		}
 		
@@ -142,30 +143,49 @@
 			BufferedReader br = new BufferedReader(file); 
 			String strLine; 
 			Event event ;  
+			Boolean firstLine = true;
 			
-			strLine = br.readLine();
-			if(strLine != null)
-			{
-				strLine = strLine.trim();
-				String[] strEvent = strLine.split(delimiter);
-				
-				if(strEvent.length == 2 && strEvent[0].equals("clockrate"))
-				{
-					clockrate=Double.parseDouble(strEvent[1]);
-				}
-				else
-				{
-					System.out.println("Error: clockrate is not specified in the trace file.");
-					br.close();
-					return;
-				}
-			}
+//			strLine = br.readLine();
+//			if(strLine != null)
+//			{
+//				strLine = strLine.trim();
+//				String[] strEvent = strLine.split(delimiter);
+//				
+//				if(strEvent.length == 2 && strEvent[0].equals("clockrate"))
+//				{
+//					clockrate=Double.parseDouble(strEvent[1]);
+//				}
+//				else
+//				{
+//					//assume rate=1
+//					clockrate=1;
+//					CHESSProjectSupport.printlnToCHESSConsole("Clockrate is not available: 1 will be assumed");
+//					br.close();
+//					return;
+//				}
+//			}
 
 			while ((strLine = br.readLine()) != null) 
 			{
+				
 				strLine = strLine.trim();
 				String[] strEvent = strLine.split(delimiter); 
 				
+				if (firstLine){
+					if(strEvent.length == 2 && strEvent[0].equals("clockrate"))
+					{
+						clockrate=Double.parseDouble(strEvent[1]);
+						continue;
+					}
+					else
+					{
+						//assume rate=1
+						clockrate=1;
+						CHESSProjectSupport.printlnToCHESSConsole("Clockrate is not available: 1 will be assumed");
+					}
+					firstLine = false;
+				}
+				
 				if(strEvent.length ==3)
 				{	
 					event = new Event(Long.parseLong(strEvent[time_Stamp_Column]), Integer.parseInt(strEvent[event_ID_Column]), strEvent[thread_ID_Column]); 
@@ -175,7 +195,7 @@
 				}
 				else
 				{
-					System.out.println("Error: Some events do not follow the expected trace format.");
+					CHESSProjectSupport.printlnToCHESSConsole("Error: Some events do not follow the expected trace format.");
 					br.close();
 					return;
 				}
@@ -192,9 +212,9 @@
 	{
 		int indexOfThread = threadIDs.indexOf(tid); 
 
-		System.out.println("Time Stamp \t EventID \t ThreadID");
+		CHESSProjectSupport.printlnToCHESSConsole("Time Stamp \t EventID \t ThreadID");
 		for(Event event : threadSpecificEvents.get(indexOfThread))
-			System.out.println(event.GetTimeStamp()+"\t"+event.GetEventID() +"\t"+ event.GetThreadID());		
+			CHESSProjectSupport.printlnToCHESSConsole(event.GetTimeStamp()+"\t"+event.GetEventID() +"\t"+ event.GetThreadID());		
 	}
 
 	public void WriteThreadSpecificEventsIntoFile(String tid)
diff --git a/plugins/org.polarsys.chess.multicore/plugin.xml b/plugins/org.polarsys.chess.multicore/plugin.xml
index df4f5e1..b862b3e 100644
--- a/plugins/org.polarsys.chess.multicore/plugin.xml
+++ b/plugins/org.polarsys.chess.multicore/plugin.xml
@@ -37,10 +37,11 @@
          point="org.eclipse.ui.menus">
       <menuContribution
             allPopups="false"
-             locationURI="menu:org.polarsys.chess.mainMenu">>
+             locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.safetycase.id">>
         
             <menu
-                  label="Multicore support">
+                  id="chess.menu.multicore.id"
+                  label="Multicore Support">
                <command
                      commandId="org.polarsys.chess.multicore.AssignToCoresCommandID"
                      label="Assign Components to Cores"
diff --git a/plugins/org.polarsys.chess.paramArchConfigurator/bin/org/polarsys/chess/paramArchConfigurator/commands/InstantiateParamArchAsOssFileCommand.class b/plugins/org.polarsys.chess.paramArchConfigurator/bin/org/polarsys/chess/paramArchConfigurator/commands/InstantiateParamArchAsOssFileCommand.class
new file mode 100644
index 0000000..4a4f767
--- /dev/null
+++ b/plugins/org.polarsys.chess.paramArchConfigurator/bin/org/polarsys/chess/paramArchConfigurator/commands/InstantiateParamArchAsOssFileCommand.class
Binary files differ
diff --git a/plugins/org.polarsys.chess.patterns.library/model/CHESSPatterns.notation b/plugins/org.polarsys.chess.patterns.library/model/CHESSPatterns.notation
index 6c04f69..05b2dd4 100644
--- a/plugins/org.polarsys.chess.patterns.library/model/CHESSPatterns.notation
+++ b/plugins/org.polarsys.chess.patterns.library/model/CHESSPatterns.notation
@@ -1,682 +1,1234 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
-  <notation:Diagram xmi:id="_AN75YLvzEeifftqsmW9AvA" type="CompositeStructure" name="TMR Roles" measurementUnit="Pixel">
-    <children xmi:type="notation:Shape" xmi:id="_AN9HgLvzEeifftqsmW9AvA" type="Collaboration_Shape">
-      <children xmi:type="notation:DecorationNode" xmi:id="_AN9ukbvzEeifftqsmW9AvA" type="Collaboration_NameLabel"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_AN9ukrvzEeifftqsmW9AvA" type="Collaboration_FloatingNameLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_AN9uk7vzEeifftqsmW9AvA" y="5"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_AN9ulLvzEeifftqsmW9AvA" type="Collaboration_StructureCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_UtvlcLvzEeifftqsmW9AvA" type="Property_Shape">
-          <children xmi:type="notation:DecorationNode" xmi:id="_UtwMgLvzEeifftqsmW9AvA" type="Property_NameLabel"/>
-          <children xmi:type="notation:DecorationNode" xmi:id="_UtwMgbvzEeifftqsmW9AvA" type="Property_FloatingNameLabel">
-            <layoutConstraint xmi:type="notation:Location" xmi:id="_UtwMgrvzEeifftqsmW9AvA" y="5"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_UtwMg7vzEeifftqsmW9AvA" type="Property_StructureCompartment">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_UtwMhLvzEeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UtwMhbvzEeifftqsmW9AvA"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_Ut1FALvzEeifftqsmW9AvA" type="compartment_shape_display">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_Ut1FAbvzEeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ut1FArvzEeifftqsmW9AvA"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_9XZF4Lv5EeifftqsmW9AvA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_9XZF4rv5EeifftqsmW9AvA" type="Port_NameLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_9XZF47v5EeifftqsmW9AvA" x="-107" y="3"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_9XZF5Lv5EeifftqsmW9AvA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_9XZF5bv5EeifftqsmW9AvA" x="25" y="-10"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_IvLdgLv6EeifftqsmW9AvA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9XZF4bv5EeifftqsmW9AvA" x="176" y="29" width="20" height="20"/>
-          </children>
-          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_UtjYMLvzEeifftqsmW9AvA"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UtvlcbvzEeifftqsmW9AvA" x="42" y="17" width="186" height="68"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_XUZeoLvzEeifftqsmW9AvA" type="Property_Shape">
-          <children xmi:type="notation:DecorationNode" xmi:id="_XUaFsLvzEeifftqsmW9AvA" type="Property_NameLabel"/>
-          <children xmi:type="notation:DecorationNode" xmi:id="_XUaFsbvzEeifftqsmW9AvA" type="Property_FloatingNameLabel">
-            <layoutConstraint xmi:type="notation:Location" xmi:id="_XUaFsrvzEeifftqsmW9AvA" y="5"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_XUaFs7vzEeifftqsmW9AvA" type="Property_StructureCompartment">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_XUaFtLvzEeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XUaFtbvzEeifftqsmW9AvA"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_XUe-MLvzEeifftqsmW9AvA" type="compartment_shape_display">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_XUe-MbvzEeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XUe-MrvzEeifftqsmW9AvA"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_M5N1ALv6EeifftqsmW9AvA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_M5N1Arv6EeifftqsmW9AvA" type="Port_NameLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_M5N1A7v6EeifftqsmW9AvA" x="25" y="3"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_M5N1BLv6EeifftqsmW9AvA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_M5N1Bbv6EeifftqsmW9AvA" x="25" y="-10"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_PrP3wLv6EeifftqsmW9AvA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_M5HHULv6EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M5N1Abv6EeifftqsmW9AvA" x="-10" y="37" width="20" height="20"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_hy9rELv6EeifftqsmW9AvA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_hy9rErv6EeifftqsmW9AvA" type="Port_NameLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_hy9rE7v6EeifftqsmW9AvA" x="24" y="-9"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_hy9rFLv6EeifftqsmW9AvA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_hy9rFbv6EeifftqsmW9AvA" x="-51" y="-15"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_kcrfULv6EeifftqsmW9AvA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_eTLKcLv6EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hy9rEbv6EeifftqsmW9AvA" x="61" y="-10"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_hy-SILv6EeifftqsmW9AvA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_hy-SIrv6EeifftqsmW9AvA" type="Port_NameLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_hy-SI7v6EeifftqsmW9AvA" x="25" y="17"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_hy-SJLv6EeifftqsmW9AvA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_hy-SJbv6EeifftqsmW9AvA" x="-65" y="15"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_kxht8Lv6EeifftqsmW9AvA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_efiygLv6EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hy-SIbv6EeifftqsmW9AvA" x="63" y="58"/>
-          </children>
-          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_XURi0LvzEeifftqsmW9AvA"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XUZeobvzEeifftqsmW9AvA" x="424" y="104" width="149" height="68"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_sfzdsLv5EeifftqsmW9AvA" type="Property_Shape">
-          <children xmi:type="notation:DecorationNode" xmi:id="_sf0EwLv5EeifftqsmW9AvA" type="Property_NameLabel"/>
-          <children xmi:type="notation:DecorationNode" xmi:id="_sf0Ewbv5EeifftqsmW9AvA" type="Property_FloatingNameLabel">
-            <layoutConstraint xmi:type="notation:Location" xmi:id="_sf0Ewrv5EeifftqsmW9AvA" y="5"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_sf0Ew7v5EeifftqsmW9AvA" type="Property_StructureCompartment">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_sf0ExLv5EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sf0Exbv5EeifftqsmW9AvA"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_sf49QLv5EeifftqsmW9AvA" type="compartment_shape_display">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_sf49Qbv5EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sf49Qrv5EeifftqsmW9AvA"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_A3-QsLv6EeifftqsmW9AvA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_A3-3wLv6EeifftqsmW9AvA" type="Port_NameLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_A3-3wbv6EeifftqsmW9AvA" x="-109" y="5"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_A3-3wrv6EeifftqsmW9AvA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_A3-3w7v6EeifftqsmW9AvA" x="25" y="-10"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_JDzpsLv6EeifftqsmW9AvA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A3-Qsbv6EeifftqsmW9AvA" x="176" y="31"/>
-          </children>
-          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_nK_VILv5EeifftqsmW9AvA"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sfzdsbv5EeifftqsmW9AvA" x="47" y="106" width="186" height="68"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_tFN34Lv5EeifftqsmW9AvA" type="Property_Shape">
-          <children xmi:type="notation:DecorationNode" xmi:id="_tFN34rv5EeifftqsmW9AvA" type="Property_NameLabel"/>
-          <children xmi:type="notation:DecorationNode" xmi:id="_tFN347v5EeifftqsmW9AvA" type="Property_FloatingNameLabel">
-            <layoutConstraint xmi:type="notation:Location" xmi:id="_tFN35Lv5EeifftqsmW9AvA" y="5"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_tFN35bv5EeifftqsmW9AvA" type="Property_StructureCompartment">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_tFN35rv5EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tFN357v5EeifftqsmW9AvA"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_tFSwYLv5EeifftqsmW9AvA" type="compartment_shape_display">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_tFSwYbv5EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tFSwYrv5EeifftqsmW9AvA"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_BejvkLv6EeifftqsmW9AvA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_BekWobv6EeifftqsmW9AvA" type="Port_NameLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_BekWorv6EeifftqsmW9AvA" x="-111" y="5"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_BekWo7v6EeifftqsmW9AvA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_BekWpLv6EeifftqsmW9AvA" x="25" y="-10"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_JqrccLv6EeifftqsmW9AvA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BekWoLv6EeifftqsmW9AvA" x="176" y="29"/>
-          </children>
-          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_nXankLv5EeifftqsmW9AvA"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tFN34bv5EeifftqsmW9AvA" x="48" y="192" width="186" height="68"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_FmoqsMicEei_s-5HMfypxQ" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_FmoqscicEei_s-5HMfypxQ"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_FmpRwMicEei_s-5HMfypxQ" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FmoqssicEei_s-5HMfypxQ" x="376" y="29"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_FmuKQsicEei_s-5HMfypxQ" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_FmuKQ8icEei_s-5HMfypxQ"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_FmuKRcicEei_s-5HMfypxQ" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FmuKRMicEei_s-5HMfypxQ" x="376" y="31"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_FmxNlMicEei_s-5HMfypxQ" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_FmxNlcicEei_s-5HMfypxQ"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Fmx0oMicEei_s-5HMfypxQ" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FmxNlsicEei_s-5HMfypxQ" x="376" y="29"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_IhnOFMicEei_s-5HMfypxQ" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_IhnOFcicEei_s-5HMfypxQ"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IhnOF8icEei_s-5HMfypxQ" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_eTLKcLv6EeifftqsmW9AvA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IhnOFsicEei_s-5HMfypxQ" x="261" y="-10"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_Jg6H4MicEei_s-5HMfypxQ" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_Jg6H4cicEei_s-5HMfypxQ"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Jg6H48icEei_s-5HMfypxQ" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_M5HHULv6EeifftqsmW9AvA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jg6H4sicEei_s-5HMfypxQ" x="190" y="37"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_RIar0MicEei_s-5HMfypxQ" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_RIar0cicEei_s-5HMfypxQ"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_RIar08icEei_s-5HMfypxQ" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_efiygLv6EeifftqsmW9AvA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RIar0sicEei_s-5HMfypxQ" x="263" y="58"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_AN9ulbvzEeifftqsmW9AvA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AN9ulrvzEeifftqsmW9AvA"/>
-      </children>
-      <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AN9ukLvzEeifftqsmW9AvA" x="40" y="40" width="754" height="329"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_DUr3YMFjEeiiGaD3VZjOBg" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_DUr3YcFjEeiiGaD3VZjOBg"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_DUsecMFjEeiiGaD3VZjOBg" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DUr3YsFjEeiiGaD3VZjOBg" x="240" y="40"/>
-    </children>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_AN75YbvzEeifftqsmW9AvA" name="diagram_compatibility_version" stringValue="1.2.0"/>
-    <styles xmi:type="notation:DiagramStyle" xmi:id="_AN75YrvzEeifftqsmW9AvA"/>
-    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_AN75Y7vzEeifftqsmW9AvA">
-      <owner xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>
-    </styles>
-    <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>
-    <edges xmi:type="notation:Connector" xmi:id="_QxIhwLv6EeifftqsmW9AvA" type="Connector_Edge" source="_9XZF4Lv5EeifftqsmW9AvA" target="_hy9rELv6EeifftqsmW9AvA" routing="Rectilinear">
-      <children xmi:type="notation:DecorationNode" xmi:id="_QxJI0Lv6EeifftqsmW9AvA" type="Connector_StereotypeLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_QxJI0bv6EeifftqsmW9AvA" y="60"/>
-      </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_QxJI0rv6EeifftqsmW9AvA" type="Connector_NameLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_QxJv4Lv6EeifftqsmW9AvA" y="-20"/>
-      </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_QxIhwbv6EeifftqsmW9AvA"/>
-      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_Qw2N4Lv6EeifftqsmW9AvA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxIhwrv6EeifftqsmW9AvA" points="[284, 142, -643984, -643984]$[435, 231, -643984, -643984]"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nCN-MLv6EeifftqsmW9AvA" id="(0.6,0.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_RbY_sLv6EeifftqsmW9AvA" type="Connector_Edge" source="_A3-QsLv6EeifftqsmW9AvA" target="_M5N1ALv6EeifftqsmW9AvA">
-      <children xmi:type="notation:DecorationNode" xmi:id="_RbY_s7v6EeifftqsmW9AvA" type="Connector_StereotypeLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_RbY_tLv6EeifftqsmW9AvA" y="60"/>
-      </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_RbY_tbv6EeifftqsmW9AvA" type="Connector_NameLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_RbY_trv6EeifftqsmW9AvA" y="-20"/>
-      </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_RbY_sbv6EeifftqsmW9AvA"/>
-      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_RbMLYLv6EeifftqsmW9AvA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RbY_srv6EeifftqsmW9AvA" points="[289, 229, -643984, -643984]$[435, 227, -643984, -643984]"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RbwMELv6EeifftqsmW9AvA" id="(0.8,0.4)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_SQ32MLv6EeifftqsmW9AvA" type="Connector_Edge" source="_BejvkLv6EeifftqsmW9AvA" target="_hy-SILv6EeifftqsmW9AvA" routing="Rectilinear">
-      <children xmi:type="notation:DecorationNode" xmi:id="_SQ32M7v6EeifftqsmW9AvA" type="Connector_StereotypeLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_SQ32NLv6EeifftqsmW9AvA" y="60"/>
-      </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_SQ32Nbv6EeifftqsmW9AvA" type="Connector_NameLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_SQ32Nrv6EeifftqsmW9AvA" y="-20"/>
-      </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_SQ32Mbv6EeifftqsmW9AvA"/>
-      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_SQpzwLv6EeifftqsmW9AvA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SQ32Mrv6EeifftqsmW9AvA" points="[290, 305, -643984, -643984]$[423, 221, -643984, -643984]"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pXOGsLv6EeifftqsmW9AvA" id="(0.75,0.95)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_DUtFgMFjEeiiGaD3VZjOBg" type="StereotypeCommentLink" source="_AN9HgLvzEeifftqsmW9AvA" target="_DUr3YMFjEeiiGaD3VZjOBg">
-      <styles xmi:type="notation:FontStyle" xmi:id="_DUtFgcFjEeiiGaD3VZjOBg"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_DUuToMFjEeiiGaD3VZjOBg" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DUtFgsFjEeiiGaD3VZjOBg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DUtskMFjEeiiGaD3VZjOBg"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DUtskcFjEeiiGaD3VZjOBg"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_FmpRwcicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_9XZF4Lv5EeifftqsmW9AvA" target="_FmoqsMicEei_s-5HMfypxQ">
-      <styles xmi:type="notation:FontStyle" xmi:id="_FmpRwsicEei_s-5HMfypxQ"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Fmqf4sicEei_s-5HMfypxQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FmpRw8icEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fmqf4MicEei_s-5HMfypxQ"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fmqf4cicEei_s-5HMfypxQ"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_FmuKRsicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_A3-QsLv6EeifftqsmW9AvA" target="_FmuKQsicEei_s-5HMfypxQ">
-      <styles xmi:type="notation:FontStyle" xmi:id="_FmuKR8icEei_s-5HMfypxQ"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_FmuxUMicEei_s-5HMfypxQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FmuKSMicEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FmuKScicEei_s-5HMfypxQ"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FmuKSsicEei_s-5HMfypxQ"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_Fmx0ocicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_BejvkLv6EeifftqsmW9AvA" target="_FmxNlMicEei_s-5HMfypxQ">
-      <styles xmi:type="notation:FontStyle" xmi:id="_Fmx0osicEei_s-5HMfypxQ"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Fmx0psicEei_s-5HMfypxQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fmx0o8icEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fmx0pMicEei_s-5HMfypxQ"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fmx0pcicEei_s-5HMfypxQ"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_IhnOGMicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_hy9rELv6EeifftqsmW9AvA" target="_IhnOFMicEei_s-5HMfypxQ">
-      <styles xmi:type="notation:FontStyle" xmi:id="_IhnOGcicEei_s-5HMfypxQ"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Ihn1IsicEei_s-5HMfypxQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_eTLKcLv6EeifftqsmW9AvA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IhnOGsicEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ihn1IMicEei_s-5HMfypxQ"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ihn1IcicEei_s-5HMfypxQ"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_Jg6H5MicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_M5N1ALv6EeifftqsmW9AvA" target="_Jg6H4MicEei_s-5HMfypxQ">
-      <styles xmi:type="notation:FontStyle" xmi:id="_Jg6H5cicEei_s-5HMfypxQ"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Jg6u8MicEei_s-5HMfypxQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_M5HHULv6EeifftqsmW9AvA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Jg6H5sicEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jg6H58icEei_s-5HMfypxQ"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jg6H6MicEei_s-5HMfypxQ"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_RIar1MicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_hy-SILv6EeifftqsmW9AvA" target="_RIar0MicEei_s-5HMfypxQ">
-      <styles xmi:type="notation:FontStyle" xmi:id="_RIar1cicEei_s-5HMfypxQ"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_RIar2cicEei_s-5HMfypxQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_efiygLv6EeifftqsmW9AvA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RIar1sicEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RIar18icEei_s-5HMfypxQ"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RIar2MicEei_s-5HMfypxQ"/>
-    </edges>
-  </notation:Diagram>
-  <notation:Diagram xmi:id="_ZT5fgMicEei_s-5HMfypxQ" type="BlockDefinition" name="TMR BDD" measurementUnit="Pixel">
-    <styles xmi:type="notation:DiagramStyle" xmi:id="_ZT5fgcicEei_s-5HMfypxQ"/>
-    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ZT5fgsicEei_s-5HMfypxQ">
-      <owner xmi:type="uml:Package" href="CHESSPatterns.uml#_FjnE8LvwEeifftqsmW9AvA"/>
-    </styles>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_ZWCNgMicEei_s-5HMfypxQ" name="diagram_compatibility_version" stringValue="1.2.0"/>
-    <element xmi:type="uml:Package" href="CHESSPatterns.uml#_FjnE8LvwEeifftqsmW9AvA"/>
-  </notation:Diagram>
-  <notation:Diagram xmi:id="_9XsUQMvFEeiG7qFbiuwNbA" type="CompositeStructure" name="MA Roles" measurementUnit="Pixel">
-    <children xmi:type="notation:Shape" xmi:id="_9YK1YMvFEeiG7qFbiuwNbA" type="Collaboration_Shape">
-      <children xmi:type="notation:DecorationNode" xmi:id="_9YK1YsvFEeiG7qFbiuwNbA" type="Collaboration_NameLabel"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_9YK1Y8vFEeiG7qFbiuwNbA" type="Collaboration_FloatingNameLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_9YLccMvFEeiG7qFbiuwNbA" y="5"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_9YLcccvFEeiG7qFbiuwNbA" type="Collaboration_StructureCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_QUMvoMvIEeiG7qFbiuwNbA" type="Property_Shape">
-          <children xmi:type="notation:DecorationNode" xmi:id="_QUNWsMvIEeiG7qFbiuwNbA" type="Property_NameLabel"/>
-          <children xmi:type="notation:DecorationNode" xmi:id="_QUNWscvIEeiG7qFbiuwNbA" type="Property_FloatingNameLabel">
-            <layoutConstraint xmi:type="notation:Location" xmi:id="_QUN9wMvIEeiG7qFbiuwNbA" y="5"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_QUN9wcvIEeiG7qFbiuwNbA" type="Property_StructureCompartment">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_QUN9wsvIEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QUN9w8vIEeiG7qFbiuwNbA"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_QUWgoMvIEeiG7qFbiuwNbA" type="compartment_shape_display">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_QUWgocvIEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QUWgosvIEeiG7qFbiuwNbA"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_RoCgoMvJEeiG7qFbiuwNbA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_RoCgosvJEeiG7qFbiuwNbA" type="Port_NameLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_RoCgo8vJEeiG7qFbiuwNbA" x="25" y="3"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_RoCgpMvJEeiG7qFbiuwNbA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_RoCgpcvJEeiG7qFbiuwNbA" x="25" y="-10"/>
-            </children>
-            <styles xmi:type="notation:IntValueStyle" xmi:id="_l1J6MMvJEeiG7qFbiuwNbA" name="shapeDirection" intValue="8"/>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_mefyIMvJEeiG7qFbiuwNbA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_Rnz3IMvJEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RoCgocvJEeiG7qFbiuwNbA" x="313" y="39" width="20" height="20"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_A5a8UMvLEeiG7qFbiuwNbA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_A5a8UsvLEeiG7qFbiuwNbA" type="Port_NameLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_A5a8U8vLEeiG7qFbiuwNbA" x="25" y="3"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_A5a8VMvLEeiG7qFbiuwNbA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_A5a8VcvLEeiG7qFbiuwNbA" x="25" y="-10"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_Cq9LYMvLEeiG7qFbiuwNbA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_A5X5AMvLEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5a8UcvLEeiG7qFbiuwNbA" x="-10" y="34" width="20" height="20"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_dJxMgMvLEeiG7qFbiuwNbA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_dJxMgsvLEeiG7qFbiuwNbA" type="Port_NameLabel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fzV20MvLEeiG7qFbiuwNbA" source="ShadowFigure">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fzV20cvLEeiG7qFbiuwNbA" key="ShadowFigure_Value" value="true"/>
-              </eAnnotations>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_dJxMg8vLEeiG7qFbiuwNbA" x="25" y="-6"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_dJxMhMvLEeiG7qFbiuwNbA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_dJxMhcvLEeiG7qFbiuwNbA" x="38" y="-20"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_hoDVsMvLEeiG7qFbiuwNbA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_dJp3wMvLEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dJxMgcvLEeiG7qFbiuwNbA" x="191" y="60" width="20" height="20"/>
-          </children>
-          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_QTQ7gMvIEeiG7qFbiuwNbA"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QUMvocvIEeiG7qFbiuwNbA" x="204" y="20" width="323" height="70"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_QtI0EMvIEeiG7qFbiuwNbA" type="Property_Shape">
-          <children xmi:type="notation:DecorationNode" xmi:id="_QtJbIMvIEeiG7qFbiuwNbA" type="Property_NameLabel"/>
-          <children xmi:type="notation:DecorationNode" xmi:id="_QtJbIcvIEeiG7qFbiuwNbA" type="Property_FloatingNameLabel">
-            <layoutConstraint xmi:type="notation:Location" xmi:id="_QtJbIsvIEeiG7qFbiuwNbA" y="5"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_QtJbI8vIEeiG7qFbiuwNbA" type="Property_StructureCompartment">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_QtJbJMvIEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QtJbJcvIEeiG7qFbiuwNbA"/>
-          </children>
-          <children xmi:type="notation:BasicCompartment" xmi:id="_QtQv4MvIEeiG7qFbiuwNbA" type="compartment_shape_display">
-            <styles xmi:type="notation:TitleStyle" xmi:id="_QtQv4cvIEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QtQv4svIEeiG7qFbiuwNbA"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_sweGgMvJEeiG7qFbiuwNbA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_sweGgsvJEeiG7qFbiuwNbA" type="Port_NameLabel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHN3AMvJEeiG7qFbiuwNbA" source="displayNameLabelIcon">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHN3AcvJEeiG7qFbiuwNbA" key="displayNameLabelIcon_value" value="false"/>
-              </eAnnotations>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_sweGg8vJEeiG7qFbiuwNbA" x="25" y="3"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_swetkMvJEeiG7qFbiuwNbA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_swetkcvJEeiG7qFbiuwNbA" x="25" y="-10"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_vupu4MvJEeiG7qFbiuwNbA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_pQAQcMvJEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sweGgcvJEeiG7qFbiuwNbA" x="313" y="33" width="20" height="20"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_E4MfAMvLEeiG7qFbiuwNbA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_E4MfAsvLEeiG7qFbiuwNbA" type="Port_NameLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_E4MfA8vLEeiG7qFbiuwNbA" x="25" y="3"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_E4MfBMvLEeiG7qFbiuwNbA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_E4MfBcvLEeiG7qFbiuwNbA" x="25" y="-10"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_GM1WsMvLEeiG7qFbiuwNbA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_E4JbsMvLEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E4MfAcvLEeiG7qFbiuwNbA" x="-10" y="34" width="20" height="20"/>
-          </children>
-          <children xmi:type="notation:Shape" xmi:id="_d4IuYMvLEeiG7qFbiuwNbA" type="Port_Shape">
-            <children xmi:type="notation:DecorationNode" xmi:id="_d4IuYsvLEeiG7qFbiuwNbA" type="Port_NameLabel">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fzVPwMvLEeiG7qFbiuwNbA" source="ShadowFigure">
-                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fzVPwcvLEeiG7qFbiuwNbA" key="ShadowFigure_Value" value="true"/>
-              </eAnnotations>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_d4JVcMvLEeiG7qFbiuwNbA" x="28" y="-2"/>
-            </children>
-            <children xmi:type="notation:DecorationNode" xmi:id="_d4JVccvLEeiG7qFbiuwNbA" type="Port_StereotypeLabel">
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_d4JVcsvLEeiG7qFbiuwNbA" x="25" y="-10"/>
-            </children>
-            <styles xmi:type="notation:StringListValueStyle" xmi:id="_iBlQAMvLEeiG7qFbiuwNbA" name="maskLabel">
-              <stringListValue>multiplicity</stringListValue>
-              <stringListValue>visibility</stringListValue>
-              <stringListValue>name</stringListValue>
-              <stringListValue>derived</stringListValue>
-            </styles>
-            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_d4G5MMvLEeiG7qFbiuwNbA"/>
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d4IuYcvLEeiG7qFbiuwNbA" x="194" y="-10" width="20" height="20"/>
-          </children>
-          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_QtCtcMvIEeiG7qFbiuwNbA"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QtI0EcvIEeiG7qFbiuwNbA" x="201" y="150" width="323" height="70"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_afoMYcvJEeiG7qFbiuwNbA" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_afoMYsvJEeiG7qFbiuwNbA"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_afoMZMvJEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_Rnz3IMvJEeiG7qFbiuwNbA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_afoMY8vJEeiG7qFbiuwNbA" x="513" y="43"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_swsI88vJEeiG7qFbiuwNbA" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_swsI9MvJEeiG7qFbiuwNbA"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_swsI9svJEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_pQAQcMvJEeiG7qFbiuwNbA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_swsI9cvJEeiG7qFbiuwNbA" x="513" y="35"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_HlGKIMvLEeiG7qFbiuwNbA" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_HlGKIcvLEeiG7qFbiuwNbA"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HlGKI8vLEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_E4JbsMvLEeiG7qFbiuwNbA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HlGKIsvLEeiG7qFbiuwNbA" x="190" y="34"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_IM9bYsvLEeiG7qFbiuwNbA" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_IM9bY8vLEeiG7qFbiuwNbA"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IM9bZcvLEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_A5X5AMvLEeiG7qFbiuwNbA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IM9bZMvLEeiG7qFbiuwNbA" x="190" y="34"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_zsw4UMvLEeiG7qFbiuwNbA" type="Comment_Shape_CN">
-          <children xmi:type="notation:DecorationNode" xmi:id="_zsw4UsvLEeiG7qFbiuwNbA" type="Comment_BodyLabel_CN"/>
-          <element xmi:type="uml:Comment" href="CHESSPatterns.uml#_zsgZoMvLEeiG7qFbiuwNbA"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zsw4UcvLEeiG7qFbiuwNbA" x="35" y="62"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_49Tk4MvLEeiG7qFbiuwNbA" type="Comment_Shape_CN">
-          <children xmi:type="notation:DecorationNode" xmi:id="_49UL8MvLEeiG7qFbiuwNbA" type="Comment_BodyLabel_CN"/>
-          <element xmi:type="uml:Comment" href="CHESSPatterns.uml#_49FicMvLEeiG7qFbiuwNbA"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_49Tk4cvLEeiG7qFbiuwNbA" x="631" y="86"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_txhhkMvOEeiFVYS8koh7VQ" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_txhhkcvOEeiFVYS8koh7VQ"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_txhhk8vOEeiFVYS8koh7VQ" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_d4G5MMvLEeiG7qFbiuwNbA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_txhhksvOEeiFVYS8koh7VQ" x="394" y="-10"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_wOwZBMvOEeiFVYS8koh7VQ" type="StereotypeComment">
-          <styles xmi:type="notation:TitleStyle" xmi:id="_wOwZBcvOEeiFVYS8koh7VQ"/>
-          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wOwZB8vOEeiFVYS8koh7VQ" name="BASE_ELEMENT">
-            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_dJp3wMvLEeiG7qFbiuwNbA"/>
-          </styles>
-          <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wOwZBsvOEeiFVYS8koh7VQ" x="391" y="60"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_9YLccsvFEeiG7qFbiuwNbA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9YLcc8vFEeiG7qFbiuwNbA"/>
-      </children>
-      <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9YK1YcvFEeiG7qFbiuwNbA" x="40" y="40" width="759" height="299"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_9aJLUMvFEeiG7qFbiuwNbA" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_9aJLUcvFEeiG7qFbiuwNbA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9aJyYMvFEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9aJLUsvFEeiG7qFbiuwNbA" x="240" y="40"/>
-    </children>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_9XsUQcvFEeiG7qFbiuwNbA" name="diagram_compatibility_version" stringValue="1.2.0"/>
-    <styles xmi:type="notation:DiagramStyle" xmi:id="_9XsUQsvFEeiG7qFbiuwNbA"/>
-    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_9XsUQ8vFEeiG7qFbiuwNbA">
-      <owner xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>
-    </styles>
-    <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>
-    <edges xmi:type="notation:Connector" xmi:id="_9aKZcMvFEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_9YK1YMvFEeiG7qFbiuwNbA" target="_9aJLUMvFEeiG7qFbiuwNbA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_9aKZccvFEeiG7qFbiuwNbA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9aLAgMvFEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9aKZcsvFEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9aKZc8vFEeiG7qFbiuwNbA"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9aKZdMvFEeiG7qFbiuwNbA"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_afoMZcvJEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_RoCgoMvJEeiG7qFbiuwNbA" target="_afoMYcvJEeiG7qFbiuwNbA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_afoMZsvJEeiG7qFbiuwNbA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_afozcsvJEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_Rnz3IMvJEeiG7qFbiuwNbA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_afoMZ8vJEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afozcMvJEeiG7qFbiuwNbA"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afozccvJEeiG7qFbiuwNbA"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_swsI98vJEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_sweGgMvJEeiG7qFbiuwNbA" target="_swsI88vJEeiG7qFbiuwNbA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_swsI-MvJEeiG7qFbiuwNbA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_swsI_MvJEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_pQAQcMvJEeiG7qFbiuwNbA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_swsI-cvJEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_swsI-svJEeiG7qFbiuwNbA"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_swsI-8vJEeiG7qFbiuwNbA"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_HlGKJMvLEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_E4MfAMvLEeiG7qFbiuwNbA" target="_HlGKIMvLEeiG7qFbiuwNbA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_HlGKJcvLEeiG7qFbiuwNbA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HlGxMMvLEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_E4JbsMvLEeiG7qFbiuwNbA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HlGKJsvLEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HlGKJ8vLEeiG7qFbiuwNbA"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HlGKKMvLEeiG7qFbiuwNbA"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_IM9bZsvLEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_A5a8UMvLEeiG7qFbiuwNbA" target="_IM9bYsvLEeiG7qFbiuwNbA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_IM9bZ8vLEeiG7qFbiuwNbA"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IM-CcMvLEeiG7qFbiuwNbA" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_A5X5AMvLEeiG7qFbiuwNbA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IM9baMvLEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IM9bacvLEeiG7qFbiuwNbA"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IM9basvLEeiG7qFbiuwNbA"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_pHp60MvLEeiG7qFbiuwNbA" type="Connector_Edge" source="_dJxMgMvLEeiG7qFbiuwNbA" target="_d4IuYMvLEeiG7qFbiuwNbA">
-      <children xmi:type="notation:DecorationNode" xmi:id="_pHqh4MvLEeiG7qFbiuwNbA" type="Connector_StereotypeLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_pHqh4cvLEeiG7qFbiuwNbA" y="60"/>
-      </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_pHqh4svLEeiG7qFbiuwNbA" type="Connector_NameLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_pHqh48vLEeiG7qFbiuwNbA" x="-6" y="-10"/>
-      </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_pHp60cvLEeiG7qFbiuwNbA"/>
-      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_pHXm8MvLEeiG7qFbiuwNbA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pHp60svLEeiG7qFbiuwNbA" points="[452, 194, -643984, -643984]$[452, 222, -643984, -643984]"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_KQtw8MvNEeiG7qFbiuwNbA" type="Comment_AnnotatedElementEdge" source="_49Tk4MvLEeiG7qFbiuwNbA" target="_RoCgoMvJEeiG7qFbiuwNbA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_KQtw8cvNEeiG7qFbiuwNbA"/>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KQtw8svNEeiG7qFbiuwNbA" points="[677, 193, -643984, -643984]$[583, 163, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KR9HEMvNEeiG7qFbiuwNbA" id="(0.0,0.2308176100628927)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_LBoQgMvNEeiG7qFbiuwNbA" type="Comment_AnnotatedElementEdge" source="_49Tk4MvLEeiG7qFbiuwNbA" target="_sweGgMvJEeiG7qFbiuwNbA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_LBoQgcvNEeiG7qFbiuwNbA"/>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LBoQgsvNEeiG7qFbiuwNbA" points="[677, 220, -643984, -643984]$[560, 275, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LCDuUMvNEeiG7qFbiuwNbA" id="(0.0,0.6778177458033563)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_Ljau8MvNEeiG7qFbiuwNbA" type="Comment_AnnotatedElementEdge" source="_zsw4UMvLEeiG7qFbiuwNbA" target="_A5a8UMvLEeiG7qFbiuwNbA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_Ljau8cvNEeiG7qFbiuwNbA"/>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ljau8svNEeiG7qFbiuwNbA" points="[181, 175, -643984, -643984]$[252, 168, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lj0-oMvNEeiG7qFbiuwNbA" id="(1.0,0.32862318840579735)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_MIw3sMvNEeiG7qFbiuwNbA" type="Comment_AnnotatedElementEdge" source="_zsw4UMvLEeiG7qFbiuwNbA" target="_E4MfAMvLEeiG7qFbiuwNbA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_MIw3scvNEeiG7qFbiuwNbA"/>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MIw3ssvNEeiG7qFbiuwNbA" points="[177, 216, -643984, -643984]$[245, 266, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MJMVgMvNEeiG7qFbiuwNbA" id="(0.962608695652174,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_txhhlMvOEeiFVYS8koh7VQ" type="StereotypeCommentLink" source="_d4IuYMvLEeiG7qFbiuwNbA" target="_txhhkMvOEeiFVYS8koh7VQ">
-      <styles xmi:type="notation:FontStyle" xmi:id="_txhhlcvOEeiFVYS8koh7VQ"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_txiIoMvOEeiFVYS8koh7VQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_d4G5MMvLEeiG7qFbiuwNbA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_txhhlsvOEeiFVYS8koh7VQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_txhhl8vOEeiFVYS8koh7VQ"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_txhhmMvOEeiFVYS8koh7VQ"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_wOwZCMvOEeiFVYS8koh7VQ" type="StereotypeCommentLink" source="_dJxMgMvLEeiG7qFbiuwNbA" target="_wOwZBMvOEeiFVYS8koh7VQ">
-      <styles xmi:type="notation:FontStyle" xmi:id="_wOwZCcvOEeiFVYS8koh7VQ"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wOxAEMvOEeiFVYS8koh7VQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_dJp3wMvLEeiG7qFbiuwNbA"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wOwZCsvOEeiFVYS8koh7VQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wOwZC8vOEeiFVYS8koh7VQ"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wOwZDMvOEeiFVYS8koh7VQ"/>
-    </edges>
-  </notation:Diagram>
-</xmi:XMI>
+<?xml version="1.0" encoding="UTF-8"?>

+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">

+  <notation:Diagram xmi:id="_AN75YLvzEeifftqsmW9AvA" type="CompositeStructure" name="TMR Roles" measurementUnit="Pixel">

+    <children xmi:type="notation:Shape" xmi:id="_AN9HgLvzEeifftqsmW9AvA" type="Collaboration_Shape">

+      <children xmi:type="notation:DecorationNode" xmi:id="_AN9ukbvzEeifftqsmW9AvA" type="Collaboration_NameLabel"/>

+      <children xmi:type="notation:DecorationNode" xmi:id="_AN9ukrvzEeifftqsmW9AvA" type="Collaboration_FloatingNameLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_AN9uk7vzEeifftqsmW9AvA" y="5"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_AN9ulLvzEeifftqsmW9AvA" type="Collaboration_StructureCompartment">

+        <children xmi:type="notation:Shape" xmi:id="_UtvlcLvzEeifftqsmW9AvA" type="Property_Shape">

+          <children xmi:type="notation:DecorationNode" xmi:id="_UtwMgLvzEeifftqsmW9AvA" type="Property_NameLabel"/>

+          <children xmi:type="notation:DecorationNode" xmi:id="_UtwMgbvzEeifftqsmW9AvA" type="Property_FloatingNameLabel">

+            <layoutConstraint xmi:type="notation:Location" xmi:id="_UtwMgrvzEeifftqsmW9AvA" y="5"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_UtwMg7vzEeifftqsmW9AvA" type="Property_StructureCompartment">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_UtwMhLvzEeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UtwMhbvzEeifftqsmW9AvA"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_Ut1FALvzEeifftqsmW9AvA" type="compartment_shape_display">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_Ut1FAbvzEeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ut1FArvzEeifftqsmW9AvA"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_9XZF4Lv5EeifftqsmW9AvA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_9XZF4rv5EeifftqsmW9AvA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_9XZF47v5EeifftqsmW9AvA" x="-107" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_9XZF5Lv5EeifftqsmW9AvA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_9XZF5bv5EeifftqsmW9AvA" x="25" y="-10"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_IvLdgLv6EeifftqsmW9AvA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9XZF4bv5EeifftqsmW9AvA" x="176" y="29" width="20" height="20"/>

+          </children>

+          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_UtjYMLvzEeifftqsmW9AvA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UtvlcbvzEeifftqsmW9AvA" x="42" y="17" width="186" height="68"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_XUZeoLvzEeifftqsmW9AvA" type="Property_Shape">

+          <children xmi:type="notation:DecorationNode" xmi:id="_XUaFsLvzEeifftqsmW9AvA" type="Property_NameLabel"/>

+          <children xmi:type="notation:DecorationNode" xmi:id="_XUaFsbvzEeifftqsmW9AvA" type="Property_FloatingNameLabel">

+            <layoutConstraint xmi:type="notation:Location" xmi:id="_XUaFsrvzEeifftqsmW9AvA" y="5"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_XUaFs7vzEeifftqsmW9AvA" type="Property_StructureCompartment">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_XUaFtLvzEeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XUaFtbvzEeifftqsmW9AvA"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_XUe-MLvzEeifftqsmW9AvA" type="compartment_shape_display">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_XUe-MbvzEeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XUe-MrvzEeifftqsmW9AvA"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_M5N1ALv6EeifftqsmW9AvA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_M5N1Arv6EeifftqsmW9AvA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_M5N1A7v6EeifftqsmW9AvA" x="25" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_M5N1BLv6EeifftqsmW9AvA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_M5N1Bbv6EeifftqsmW9AvA" x="25" y="-10"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_PrP3wLv6EeifftqsmW9AvA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_M5HHULv6EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M5N1Abv6EeifftqsmW9AvA" x="-10" y="37" width="20" height="20"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_hy9rELv6EeifftqsmW9AvA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_hy9rErv6EeifftqsmW9AvA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_hy9rE7v6EeifftqsmW9AvA" x="24" y="-9"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_hy9rFLv6EeifftqsmW9AvA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_hy9rFbv6EeifftqsmW9AvA" x="-51" y="-15"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_kcrfULv6EeifftqsmW9AvA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_eTLKcLv6EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hy9rEbv6EeifftqsmW9AvA" x="61" y="-10"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_hy-SILv6EeifftqsmW9AvA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_hy-SIrv6EeifftqsmW9AvA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_hy-SI7v6EeifftqsmW9AvA" x="25" y="17"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_hy-SJLv6EeifftqsmW9AvA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_hy-SJbv6EeifftqsmW9AvA" x="-65" y="15"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_kxht8Lv6EeifftqsmW9AvA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_efiygLv6EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hy-SIbv6EeifftqsmW9AvA" x="63" y="58"/>

+          </children>

+          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_XURi0LvzEeifftqsmW9AvA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XUZeobvzEeifftqsmW9AvA" x="424" y="104" width="149" height="68"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_sfzdsLv5EeifftqsmW9AvA" type="Property_Shape">

+          <children xmi:type="notation:DecorationNode" xmi:id="_sf0EwLv5EeifftqsmW9AvA" type="Property_NameLabel"/>

+          <children xmi:type="notation:DecorationNode" xmi:id="_sf0Ewbv5EeifftqsmW9AvA" type="Property_FloatingNameLabel">

+            <layoutConstraint xmi:type="notation:Location" xmi:id="_sf0Ewrv5EeifftqsmW9AvA" y="5"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_sf0Ew7v5EeifftqsmW9AvA" type="Property_StructureCompartment">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_sf0ExLv5EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sf0Exbv5EeifftqsmW9AvA"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_sf49QLv5EeifftqsmW9AvA" type="compartment_shape_display">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_sf49Qbv5EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sf49Qrv5EeifftqsmW9AvA"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_A3-QsLv6EeifftqsmW9AvA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_A3-3wLv6EeifftqsmW9AvA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_A3-3wbv6EeifftqsmW9AvA" x="-109" y="5"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_A3-3wrv6EeifftqsmW9AvA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_A3-3w7v6EeifftqsmW9AvA" x="25" y="-10"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_JDzpsLv6EeifftqsmW9AvA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A3-Qsbv6EeifftqsmW9AvA" x="176" y="31"/>

+          </children>

+          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_nK_VILv5EeifftqsmW9AvA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sfzdsbv5EeifftqsmW9AvA" x="47" y="106" width="186" height="68"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_tFN34Lv5EeifftqsmW9AvA" type="Property_Shape">

+          <children xmi:type="notation:DecorationNode" xmi:id="_tFN34rv5EeifftqsmW9AvA" type="Property_NameLabel"/>

+          <children xmi:type="notation:DecorationNode" xmi:id="_tFN347v5EeifftqsmW9AvA" type="Property_FloatingNameLabel">

+            <layoutConstraint xmi:type="notation:Location" xmi:id="_tFN35Lv5EeifftqsmW9AvA" y="5"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_tFN35bv5EeifftqsmW9AvA" type="Property_StructureCompartment">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_tFN35rv5EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tFN357v5EeifftqsmW9AvA"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_tFSwYLv5EeifftqsmW9AvA" type="compartment_shape_display">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_tFSwYbv5EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tFSwYrv5EeifftqsmW9AvA"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_BejvkLv6EeifftqsmW9AvA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_BekWobv6EeifftqsmW9AvA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_BekWorv6EeifftqsmW9AvA" x="-111" y="5"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_BekWo7v6EeifftqsmW9AvA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_BekWpLv6EeifftqsmW9AvA" x="25" y="-10"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_JqrccLv6EeifftqsmW9AvA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BekWoLv6EeifftqsmW9AvA" x="176" y="29"/>

+          </children>

+          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_nXankLv5EeifftqsmW9AvA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tFN34bv5EeifftqsmW9AvA" x="48" y="192" width="186" height="68"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_FmoqsMicEei_s-5HMfypxQ" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_FmoqscicEei_s-5HMfypxQ"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_FmpRwMicEei_s-5HMfypxQ" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FmoqssicEei_s-5HMfypxQ" x="376" y="29"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_FmuKQsicEei_s-5HMfypxQ" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_FmuKQ8icEei_s-5HMfypxQ"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_FmuKRcicEei_s-5HMfypxQ" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FmuKRMicEei_s-5HMfypxQ" x="376" y="31"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_FmxNlMicEei_s-5HMfypxQ" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_FmxNlcicEei_s-5HMfypxQ"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Fmx0oMicEei_s-5HMfypxQ" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FmxNlsicEei_s-5HMfypxQ" x="376" y="29"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_IhnOFMicEei_s-5HMfypxQ" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_IhnOFcicEei_s-5HMfypxQ"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IhnOF8icEei_s-5HMfypxQ" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_eTLKcLv6EeifftqsmW9AvA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IhnOFsicEei_s-5HMfypxQ" x="261" y="-10"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_Jg6H4MicEei_s-5HMfypxQ" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_Jg6H4cicEei_s-5HMfypxQ"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Jg6H48icEei_s-5HMfypxQ" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_M5HHULv6EeifftqsmW9AvA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jg6H4sicEei_s-5HMfypxQ" x="190" y="37"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_RIar0MicEei_s-5HMfypxQ" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_RIar0cicEei_s-5HMfypxQ"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_RIar08icEei_s-5HMfypxQ" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_efiygLv6EeifftqsmW9AvA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RIar0sicEei_s-5HMfypxQ" x="263" y="58"/>

+        </children>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_AN9ulbvzEeifftqsmW9AvA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AN9ulrvzEeifftqsmW9AvA"/>

+      </children>

+      <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AN9ukLvzEeifftqsmW9AvA" x="40" y="40" width="754" height="329"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_DUr3YMFjEeiiGaD3VZjOBg" type="StereotypeComment">

+      <styles xmi:type="notation:TitleStyle" xmi:id="_DUr3YcFjEeiiGaD3VZjOBg"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_DUsecMFjEeiiGaD3VZjOBg" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DUr3YsFjEeiiGaD3VZjOBg" x="240" y="40"/>

+    </children>

+    <styles xmi:type="notation:StringValueStyle" xmi:id="_AN75YbvzEeifftqsmW9AvA" name="diagram_compatibility_version" stringValue="1.2.0"/>

+    <styles xmi:type="notation:DiagramStyle" xmi:id="_AN75YrvzEeifftqsmW9AvA"/>

+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_AN75Y7vzEeifftqsmW9AvA">

+      <owner xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>

+    </styles>

+    <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>

+    <edges xmi:type="notation:Connector" xmi:id="_QxIhwLv6EeifftqsmW9AvA" type="Connector_Edge" source="_9XZF4Lv5EeifftqsmW9AvA" target="_hy9rELv6EeifftqsmW9AvA" routing="Rectilinear">

+      <children xmi:type="notation:DecorationNode" xmi:id="_QxJI0Lv6EeifftqsmW9AvA" type="Connector_StereotypeLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_QxJI0bv6EeifftqsmW9AvA" y="60"/>

+      </children>

+      <children xmi:type="notation:DecorationNode" xmi:id="_QxJI0rv6EeifftqsmW9AvA" type="Connector_NameLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_QxJv4Lv6EeifftqsmW9AvA" y="-20"/>

+      </children>

+      <styles xmi:type="notation:FontStyle" xmi:id="_QxIhwbv6EeifftqsmW9AvA"/>

+      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_Qw2N4Lv6EeifftqsmW9AvA"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxIhwrv6EeifftqsmW9AvA" points="[284, 142, -643984, -643984]$[435, 231, -643984, -643984]"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nCN-MLv6EeifftqsmW9AvA" id="(0.6,0.0)"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_RbY_sLv6EeifftqsmW9AvA" type="Connector_Edge" source="_A3-QsLv6EeifftqsmW9AvA" target="_M5N1ALv6EeifftqsmW9AvA">

+      <children xmi:type="notation:DecorationNode" xmi:id="_RbY_s7v6EeifftqsmW9AvA" type="Connector_StereotypeLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_RbY_tLv6EeifftqsmW9AvA" y="60"/>

+      </children>

+      <children xmi:type="notation:DecorationNode" xmi:id="_RbY_tbv6EeifftqsmW9AvA" type="Connector_NameLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_RbY_trv6EeifftqsmW9AvA" y="-20"/>

+      </children>

+      <styles xmi:type="notation:FontStyle" xmi:id="_RbY_sbv6EeifftqsmW9AvA"/>

+      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_RbMLYLv6EeifftqsmW9AvA"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RbY_srv6EeifftqsmW9AvA" points="[289, 229, -643984, -643984]$[435, 227, -643984, -643984]"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RbwMELv6EeifftqsmW9AvA" id="(0.8,0.4)"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_SQ32MLv6EeifftqsmW9AvA" type="Connector_Edge" source="_BejvkLv6EeifftqsmW9AvA" target="_hy-SILv6EeifftqsmW9AvA" routing="Rectilinear">

+      <children xmi:type="notation:DecorationNode" xmi:id="_SQ32M7v6EeifftqsmW9AvA" type="Connector_StereotypeLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_SQ32NLv6EeifftqsmW9AvA" y="60"/>

+      </children>

+      <children xmi:type="notation:DecorationNode" xmi:id="_SQ32Nbv6EeifftqsmW9AvA" type="Connector_NameLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_SQ32Nrv6EeifftqsmW9AvA" y="-20"/>

+      </children>

+      <styles xmi:type="notation:FontStyle" xmi:id="_SQ32Mbv6EeifftqsmW9AvA"/>

+      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_SQpzwLv6EeifftqsmW9AvA"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SQ32Mrv6EeifftqsmW9AvA" points="[290, 305, -643984, -643984]$[423, 221, -643984, -643984]"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pXOGsLv6EeifftqsmW9AvA" id="(0.75,0.95)"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_DUtFgMFjEeiiGaD3VZjOBg" type="StereotypeCommentLink" source="_AN9HgLvzEeifftqsmW9AvA" target="_DUr3YMFjEeiiGaD3VZjOBg">

+      <styles xmi:type="notation:FontStyle" xmi:id="_DUtFgcFjEeiiGaD3VZjOBg"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_DUuToMFjEeiiGaD3VZjOBg" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_9J1PMLvyEeifftqsmW9AvA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DUtFgsFjEeiiGaD3VZjOBg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DUtskMFjEeiiGaD3VZjOBg"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DUtskcFjEeiiGaD3VZjOBg"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_FmpRwcicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_9XZF4Lv5EeifftqsmW9AvA" target="_FmoqsMicEei_s-5HMfypxQ">

+      <styles xmi:type="notation:FontStyle" xmi:id="_FmpRwsicEei_s-5HMfypxQ"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Fmqf4sicEei_s-5HMfypxQ" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FmpRw8icEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fmqf4MicEei_s-5HMfypxQ"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fmqf4cicEei_s-5HMfypxQ"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_FmuKRsicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_A3-QsLv6EeifftqsmW9AvA" target="_FmuKQsicEei_s-5HMfypxQ">

+      <styles xmi:type="notation:FontStyle" xmi:id="_FmuKR8icEei_s-5HMfypxQ"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_FmuxUMicEei_s-5HMfypxQ" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FmuKSMicEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FmuKScicEei_s-5HMfypxQ"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FmuKSsicEei_s-5HMfypxQ"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_Fmx0ocicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_BejvkLv6EeifftqsmW9AvA" target="_FmxNlMicEei_s-5HMfypxQ">

+      <styles xmi:type="notation:FontStyle" xmi:id="_Fmx0osicEei_s-5HMfypxQ"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Fmx0psicEei_s-5HMfypxQ" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_9XDHoLv5EeifftqsmW9AvA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fmx0o8icEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fmx0pMicEei_s-5HMfypxQ"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fmx0pcicEei_s-5HMfypxQ"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_IhnOGMicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_hy9rELv6EeifftqsmW9AvA" target="_IhnOFMicEei_s-5HMfypxQ">

+      <styles xmi:type="notation:FontStyle" xmi:id="_IhnOGcicEei_s-5HMfypxQ"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Ihn1IsicEei_s-5HMfypxQ" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_eTLKcLv6EeifftqsmW9AvA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IhnOGsicEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ihn1IMicEei_s-5HMfypxQ"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ihn1IcicEei_s-5HMfypxQ"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_Jg6H5MicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_M5N1ALv6EeifftqsmW9AvA" target="_Jg6H4MicEei_s-5HMfypxQ">

+      <styles xmi:type="notation:FontStyle" xmi:id="_Jg6H5cicEei_s-5HMfypxQ"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Jg6u8MicEei_s-5HMfypxQ" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_M5HHULv6EeifftqsmW9AvA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Jg6H5sicEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jg6H58icEei_s-5HMfypxQ"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jg6H6MicEei_s-5HMfypxQ"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_RIar1MicEei_s-5HMfypxQ" type="StereotypeCommentLink" source="_hy-SILv6EeifftqsmW9AvA" target="_RIar0MicEei_s-5HMfypxQ">

+      <styles xmi:type="notation:FontStyle" xmi:id="_RIar1cicEei_s-5HMfypxQ"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_RIar2cicEei_s-5HMfypxQ" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_efiygLv6EeifftqsmW9AvA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RIar1sicEei_s-5HMfypxQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RIar18icEei_s-5HMfypxQ"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RIar2MicEei_s-5HMfypxQ"/>

+    </edges>

+  </notation:Diagram>

+  <notation:Diagram xmi:id="_ZT5fgMicEei_s-5HMfypxQ" type="BlockDefinition" name="TMR BDD" measurementUnit="Pixel">

+    <styles xmi:type="notation:DiagramStyle" xmi:id="_ZT5fgcicEei_s-5HMfypxQ"/>

+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ZT5fgsicEei_s-5HMfypxQ">

+      <owner xmi:type="uml:Package" href="CHESSPatterns.uml#_FjnE8LvwEeifftqsmW9AvA"/>

+    </styles>

+    <styles xmi:type="notation:StringValueStyle" xmi:id="_ZWCNgMicEei_s-5HMfypxQ" name="diagram_compatibility_version" stringValue="1.2.0"/>

+    <element xmi:type="uml:Package" href="CHESSPatterns.uml#_FjnE8LvwEeifftqsmW9AvA"/>

+  </notation:Diagram>

+  <notation:Diagram xmi:id="_9XsUQMvFEeiG7qFbiuwNbA" type="CompositeStructure" name="MA Roles" measurementUnit="Pixel">

+    <children xmi:type="notation:Shape" xmi:id="_9YK1YMvFEeiG7qFbiuwNbA" type="Collaboration_Shape">

+      <children xmi:type="notation:DecorationNode" xmi:id="_9YK1YsvFEeiG7qFbiuwNbA" type="Collaboration_NameLabel"/>

+      <children xmi:type="notation:DecorationNode" xmi:id="_9YK1Y8vFEeiG7qFbiuwNbA" type="Collaboration_FloatingNameLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_9YLccMvFEeiG7qFbiuwNbA" y="5"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_9YLcccvFEeiG7qFbiuwNbA" type="Collaboration_StructureCompartment">

+        <children xmi:type="notation:Shape" xmi:id="_QUMvoMvIEeiG7qFbiuwNbA" type="Property_Shape">

+          <children xmi:type="notation:DecorationNode" xmi:id="_QUNWsMvIEeiG7qFbiuwNbA" type="Property_NameLabel"/>

+          <children xmi:type="notation:DecorationNode" xmi:id="_QUNWscvIEeiG7qFbiuwNbA" type="Property_FloatingNameLabel">

+            <layoutConstraint xmi:type="notation:Location" xmi:id="_QUN9wMvIEeiG7qFbiuwNbA" y="5"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_QUN9wcvIEeiG7qFbiuwNbA" type="Property_StructureCompartment">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_QUN9wsvIEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QUN9w8vIEeiG7qFbiuwNbA"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_QUWgoMvIEeiG7qFbiuwNbA" type="compartment_shape_display">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_QUWgocvIEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QUWgosvIEeiG7qFbiuwNbA"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_RoCgoMvJEeiG7qFbiuwNbA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_RoCgosvJEeiG7qFbiuwNbA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_RoCgo8vJEeiG7qFbiuwNbA" x="25" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_RoCgpMvJEeiG7qFbiuwNbA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_RoCgpcvJEeiG7qFbiuwNbA" x="25" y="-10"/>

+            </children>

+            <styles xmi:type="notation:IntValueStyle" xmi:id="_l1J6MMvJEeiG7qFbiuwNbA" name="shapeDirection" intValue="8"/>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_mefyIMvJEeiG7qFbiuwNbA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_Rnz3IMvJEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RoCgocvJEeiG7qFbiuwNbA" x="313" y="39" width="20" height="20"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_A5a8UMvLEeiG7qFbiuwNbA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_A5a8UsvLEeiG7qFbiuwNbA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_A5a8U8vLEeiG7qFbiuwNbA" x="25" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_A5a8VMvLEeiG7qFbiuwNbA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_A5a8VcvLEeiG7qFbiuwNbA" x="25" y="-10"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_Cq9LYMvLEeiG7qFbiuwNbA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_A5X5AMvLEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5a8UcvLEeiG7qFbiuwNbA" x="-10" y="34" width="20" height="20"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_dJxMgMvLEeiG7qFbiuwNbA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_dJxMgsvLEeiG7qFbiuwNbA" type="Port_NameLabel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fzV20MvLEeiG7qFbiuwNbA" source="ShadowFigure">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fzV20cvLEeiG7qFbiuwNbA" key="ShadowFigure_Value" value="true"/>

+              </eAnnotations>

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_dJxMg8vLEeiG7qFbiuwNbA" x="25" y="-6"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_dJxMhMvLEeiG7qFbiuwNbA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_dJxMhcvLEeiG7qFbiuwNbA" x="38" y="-20"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_hoDVsMvLEeiG7qFbiuwNbA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_dJp3wMvLEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dJxMgcvLEeiG7qFbiuwNbA" x="191" y="60" width="20" height="20"/>

+          </children>

+          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_QTQ7gMvIEeiG7qFbiuwNbA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QUMvocvIEeiG7qFbiuwNbA" x="204" y="20" width="323" height="70"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_QtI0EMvIEeiG7qFbiuwNbA" type="Property_Shape">

+          <children xmi:type="notation:DecorationNode" xmi:id="_QtJbIMvIEeiG7qFbiuwNbA" type="Property_NameLabel"/>

+          <children xmi:type="notation:DecorationNode" xmi:id="_QtJbIcvIEeiG7qFbiuwNbA" type="Property_FloatingNameLabel">

+            <layoutConstraint xmi:type="notation:Location" xmi:id="_QtJbIsvIEeiG7qFbiuwNbA" y="5"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_QtJbI8vIEeiG7qFbiuwNbA" type="Property_StructureCompartment">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_QtJbJMvIEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QtJbJcvIEeiG7qFbiuwNbA"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_QtQv4MvIEeiG7qFbiuwNbA" type="compartment_shape_display">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_QtQv4cvIEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QtQv4svIEeiG7qFbiuwNbA"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_sweGgMvJEeiG7qFbiuwNbA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_sweGgsvJEeiG7qFbiuwNbA" type="Port_NameLabel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHN3AMvJEeiG7qFbiuwNbA" source="displayNameLabelIcon">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHN3AcvJEeiG7qFbiuwNbA" key="displayNameLabelIcon_value" value="false"/>

+              </eAnnotations>

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_sweGg8vJEeiG7qFbiuwNbA" x="25" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_swetkMvJEeiG7qFbiuwNbA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_swetkcvJEeiG7qFbiuwNbA" x="25" y="-10"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_vupu4MvJEeiG7qFbiuwNbA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_pQAQcMvJEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sweGgcvJEeiG7qFbiuwNbA" x="313" y="33" width="20" height="20"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_E4MfAMvLEeiG7qFbiuwNbA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_E4MfAsvLEeiG7qFbiuwNbA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_E4MfA8vLEeiG7qFbiuwNbA" x="25" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_E4MfBMvLEeiG7qFbiuwNbA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_E4MfBcvLEeiG7qFbiuwNbA" x="25" y="-10"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_GM1WsMvLEeiG7qFbiuwNbA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_E4JbsMvLEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E4MfAcvLEeiG7qFbiuwNbA" x="-10" y="34" width="20" height="20"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_d4IuYMvLEeiG7qFbiuwNbA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_d4IuYsvLEeiG7qFbiuwNbA" type="Port_NameLabel">

+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fzVPwMvLEeiG7qFbiuwNbA" source="ShadowFigure">

+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fzVPwcvLEeiG7qFbiuwNbA" key="ShadowFigure_Value" value="true"/>

+              </eAnnotations>

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_d4JVcMvLEeiG7qFbiuwNbA" x="28" y="-2"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_d4JVccvLEeiG7qFbiuwNbA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_d4JVcsvLEeiG7qFbiuwNbA" x="25" y="-10"/>

+            </children>

+            <styles xmi:type="notation:StringListValueStyle" xmi:id="_iBlQAMvLEeiG7qFbiuwNbA" name="maskLabel">

+              <stringListValue>multiplicity</stringListValue>

+              <stringListValue>visibility</stringListValue>

+              <stringListValue>name</stringListValue>

+              <stringListValue>derived</stringListValue>

+            </styles>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_d4G5MMvLEeiG7qFbiuwNbA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d4IuYcvLEeiG7qFbiuwNbA" x="194" y="-10" width="20" height="20"/>

+          </children>

+          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_QtCtcMvIEeiG7qFbiuwNbA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QtI0EcvIEeiG7qFbiuwNbA" x="201" y="150" width="323" height="70"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_afoMYcvJEeiG7qFbiuwNbA" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_afoMYsvJEeiG7qFbiuwNbA"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_afoMZMvJEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_Rnz3IMvJEeiG7qFbiuwNbA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_afoMY8vJEeiG7qFbiuwNbA" x="513" y="43"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_swsI88vJEeiG7qFbiuwNbA" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_swsI9MvJEeiG7qFbiuwNbA"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_swsI9svJEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_pQAQcMvJEeiG7qFbiuwNbA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_swsI9cvJEeiG7qFbiuwNbA" x="513" y="35"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_HlGKIMvLEeiG7qFbiuwNbA" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_HlGKIcvLEeiG7qFbiuwNbA"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HlGKI8vLEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_E4JbsMvLEeiG7qFbiuwNbA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HlGKIsvLEeiG7qFbiuwNbA" x="190" y="34"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_IM9bYsvLEeiG7qFbiuwNbA" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_IM9bY8vLEeiG7qFbiuwNbA"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IM9bZcvLEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_A5X5AMvLEeiG7qFbiuwNbA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IM9bZMvLEeiG7qFbiuwNbA" x="190" y="34"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_zsw4UMvLEeiG7qFbiuwNbA" type="Comment_Shape_CN">

+          <children xmi:type="notation:DecorationNode" xmi:id="_zsw4UsvLEeiG7qFbiuwNbA" type="Comment_BodyLabel_CN"/>

+          <element xmi:type="uml:Comment" href="CHESSPatterns.uml#_zsgZoMvLEeiG7qFbiuwNbA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zsw4UcvLEeiG7qFbiuwNbA" x="35" y="62"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_49Tk4MvLEeiG7qFbiuwNbA" type="Comment_Shape_CN">

+          <children xmi:type="notation:DecorationNode" xmi:id="_49UL8MvLEeiG7qFbiuwNbA" type="Comment_BodyLabel_CN"/>

+          <element xmi:type="uml:Comment" href="CHESSPatterns.uml#_49FicMvLEeiG7qFbiuwNbA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_49Tk4cvLEeiG7qFbiuwNbA" x="631" y="86"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_txhhkMvOEeiFVYS8koh7VQ" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_txhhkcvOEeiFVYS8koh7VQ"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_txhhk8vOEeiFVYS8koh7VQ" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_d4G5MMvLEeiG7qFbiuwNbA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_txhhksvOEeiFVYS8koh7VQ" x="394" y="-10"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_wOwZBMvOEeiFVYS8koh7VQ" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_wOwZBcvOEeiFVYS8koh7VQ"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wOwZB8vOEeiFVYS8koh7VQ" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_dJp3wMvLEeiG7qFbiuwNbA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wOwZBsvOEeiFVYS8koh7VQ" x="391" y="60"/>

+        </children>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9YLccsvFEeiG7qFbiuwNbA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9YLcc8vFEeiG7qFbiuwNbA"/>

+      </children>

+      <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9YK1YcvFEeiG7qFbiuwNbA" x="40" y="40" width="759" height="299"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_9aJLUMvFEeiG7qFbiuwNbA" type="StereotypeComment">

+      <styles xmi:type="notation:TitleStyle" xmi:id="_9aJLUcvFEeiG7qFbiuwNbA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9aJyYMvFEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9aJLUsvFEeiG7qFbiuwNbA" x="240" y="40"/>

+    </children>

+    <styles xmi:type="notation:StringValueStyle" xmi:id="_9XsUQcvFEeiG7qFbiuwNbA" name="diagram_compatibility_version" stringValue="1.2.0"/>

+    <styles xmi:type="notation:DiagramStyle" xmi:id="_9XsUQsvFEeiG7qFbiuwNbA"/>

+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_9XsUQ8vFEeiG7qFbiuwNbA">

+      <owner xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>

+    </styles>

+    <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>

+    <edges xmi:type="notation:Connector" xmi:id="_9aKZcMvFEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_9YK1YMvFEeiG7qFbiuwNbA" target="_9aJLUMvFEeiG7qFbiuwNbA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_9aKZccvFEeiG7qFbiuwNbA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9aLAgMvFEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_dKGSwMvCEeid6c5J8m41ew"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9aKZcsvFEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9aKZc8vFEeiG7qFbiuwNbA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9aKZdMvFEeiG7qFbiuwNbA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_afoMZcvJEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_RoCgoMvJEeiG7qFbiuwNbA" target="_afoMYcvJEeiG7qFbiuwNbA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_afoMZsvJEeiG7qFbiuwNbA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_afozcsvJEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_Rnz3IMvJEeiG7qFbiuwNbA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_afoMZ8vJEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afozcMvJEeiG7qFbiuwNbA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afozccvJEeiG7qFbiuwNbA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_swsI98vJEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_sweGgMvJEeiG7qFbiuwNbA" target="_swsI88vJEeiG7qFbiuwNbA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_swsI-MvJEeiG7qFbiuwNbA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_swsI_MvJEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_pQAQcMvJEeiG7qFbiuwNbA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_swsI-cvJEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_swsI-svJEeiG7qFbiuwNbA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_swsI-8vJEeiG7qFbiuwNbA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_HlGKJMvLEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_E4MfAMvLEeiG7qFbiuwNbA" target="_HlGKIMvLEeiG7qFbiuwNbA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_HlGKJcvLEeiG7qFbiuwNbA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HlGxMMvLEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_E4JbsMvLEeiG7qFbiuwNbA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HlGKJsvLEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HlGKJ8vLEeiG7qFbiuwNbA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HlGKKMvLEeiG7qFbiuwNbA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_IM9bZsvLEeiG7qFbiuwNbA" type="StereotypeCommentLink" source="_A5a8UMvLEeiG7qFbiuwNbA" target="_IM9bYsvLEeiG7qFbiuwNbA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_IM9bZ8vLEeiG7qFbiuwNbA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_IM-CcMvLEeiG7qFbiuwNbA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_A5X5AMvLEeiG7qFbiuwNbA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IM9baMvLEeiG7qFbiuwNbA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IM9bacvLEeiG7qFbiuwNbA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IM9basvLEeiG7qFbiuwNbA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_pHp60MvLEeiG7qFbiuwNbA" type="Connector_Edge" source="_dJxMgMvLEeiG7qFbiuwNbA" target="_d4IuYMvLEeiG7qFbiuwNbA">

+      <children xmi:type="notation:DecorationNode" xmi:id="_pHqh4MvLEeiG7qFbiuwNbA" type="Connector_StereotypeLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_pHqh4cvLEeiG7qFbiuwNbA" y="60"/>

+      </children>

+      <children xmi:type="notation:DecorationNode" xmi:id="_pHqh4svLEeiG7qFbiuwNbA" type="Connector_NameLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_pHqh48vLEeiG7qFbiuwNbA" x="-6" y="-10"/>

+      </children>

+      <styles xmi:type="notation:FontStyle" xmi:id="_pHp60cvLEeiG7qFbiuwNbA"/>

+      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_pHXm8MvLEeiG7qFbiuwNbA"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pHp60svLEeiG7qFbiuwNbA" points="[452, 194, -643984, -643984]$[452, 222, -643984, -643984]"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_KQtw8MvNEeiG7qFbiuwNbA" type="Comment_AnnotatedElementEdge" source="_49Tk4MvLEeiG7qFbiuwNbA" target="_RoCgoMvJEeiG7qFbiuwNbA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_KQtw8cvNEeiG7qFbiuwNbA"/>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KQtw8svNEeiG7qFbiuwNbA" points="[677, 193, -643984, -643984]$[583, 163, -643984, -643984]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KR9HEMvNEeiG7qFbiuwNbA" id="(0.0,0.2308176100628927)"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_LBoQgMvNEeiG7qFbiuwNbA" type="Comment_AnnotatedElementEdge" source="_49Tk4MvLEeiG7qFbiuwNbA" target="_sweGgMvJEeiG7qFbiuwNbA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_LBoQgcvNEeiG7qFbiuwNbA"/>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LBoQgsvNEeiG7qFbiuwNbA" points="[677, 220, -643984, -643984]$[560, 275, -643984, -643984]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LCDuUMvNEeiG7qFbiuwNbA" id="(0.0,0.6778177458033563)"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_Ljau8MvNEeiG7qFbiuwNbA" type="Comment_AnnotatedElementEdge" source="_zsw4UMvLEeiG7qFbiuwNbA" target="_A5a8UMvLEeiG7qFbiuwNbA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_Ljau8cvNEeiG7qFbiuwNbA"/>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ljau8svNEeiG7qFbiuwNbA" points="[181, 175, -643984, -643984]$[252, 168, -643984, -643984]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lj0-oMvNEeiG7qFbiuwNbA" id="(1.0,0.32862318840579735)"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_MIw3sMvNEeiG7qFbiuwNbA" type="Comment_AnnotatedElementEdge" source="_zsw4UMvLEeiG7qFbiuwNbA" target="_E4MfAMvLEeiG7qFbiuwNbA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_MIw3scvNEeiG7qFbiuwNbA"/>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MIw3ssvNEeiG7qFbiuwNbA" points="[177, 216, -643984, -643984]$[245, 266, -643984, -643984]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MJMVgMvNEeiG7qFbiuwNbA" id="(0.962608695652174,1.0)"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_txhhlMvOEeiFVYS8koh7VQ" type="StereotypeCommentLink" source="_d4IuYMvLEeiG7qFbiuwNbA" target="_txhhkMvOEeiFVYS8koh7VQ">

+      <styles xmi:type="notation:FontStyle" xmi:id="_txhhlcvOEeiFVYS8koh7VQ"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_txiIoMvOEeiFVYS8koh7VQ" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_d4G5MMvLEeiG7qFbiuwNbA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_txhhlsvOEeiFVYS8koh7VQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_txhhl8vOEeiFVYS8koh7VQ"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_txhhmMvOEeiFVYS8koh7VQ"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_wOwZCMvOEeiFVYS8koh7VQ" type="StereotypeCommentLink" source="_dJxMgMvLEeiG7qFbiuwNbA" target="_wOwZBMvOEeiFVYS8koh7VQ">

+      <styles xmi:type="notation:FontStyle" xmi:id="_wOwZCcvOEeiFVYS8koh7VQ"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wOxAEMvOEeiFVYS8koh7VQ" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_dJp3wMvLEeiG7qFbiuwNbA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wOwZCsvOEeiFVYS8koh7VQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wOwZC8vOEeiFVYS8koh7VQ"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wOwZDMvOEeiFVYS8koh7VQ"/>

+    </edges>

+  </notation:Diagram>

+  <notation:Diagram xmi:id="_sSVv0HpvEemAMrFSe4iPqA" type="BlockDefinition" name="SG_BDD" measurementUnit="Pixel">

+    <children xmi:type="notation:Shape" xmi:id="_tLjPwHpvEemAMrFSe4iPqA" type="shape_sysml_block_as_classifier">

+      <children xmi:type="notation:DecorationNode" xmi:id="_tLjPwnpvEemAMrFSe4iPqA" type="label_sysml_block_name"/>

+      <children xmi:type="notation:ListCompartment" xmi:id="_tL1joHpvEemAMrFSe4iPqA" type="compartment_sysml_property_as_list">

+        <children xmi:type="notation:Node" xmi:id="_0etUUHpvEemAMrFSe4iPqA" type="shape_sysml_flowport_as_label">

+          <styles xmi:type="notation:ShapeStyle" xmi:id="_0etUUXpvEemAMrFSe4iPqA"/>

+          <element xmi:type="uml:Port" href="CHESSPatterns.uml#_0czP0HpvEemAMrFSe4iPqA"/>

+          <layoutConstraint xmi:type="notation:Location" xmi:id="_0etUUnpvEemAMrFSe4iPqA"/>

+        </children>

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_tL1joXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tL1jonpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_tL1jo3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_tL1jpHpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_tL1jpXpvEemAMrFSe4iPqA" type="compartment_sysml_part_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_tL1jpnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tL1jp3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_tL1jqHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_tL1jqXpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_tL1jqnpvEemAMrFSe4iPqA" type="compartment_sysml_reference_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_tL1jq3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tL1jrHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_tL1jrXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_tL1jrnpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_tL1jr3pvEemAMrFSe4iPqA" type="compartment_uml_port_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_tL1jsHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tL1jsXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_tL1jsnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_tL1js3pvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_tL1jtHpvEemAMrFSe4iPqA" type="compartment_sysml_flowport_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_tL1jtXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tL1jtnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_tL1jt3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_tL1juHpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_tL7qQHpvEemAMrFSe4iPqA" type="compartment_uml_operation_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_tL7qQXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tL7qQnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_tL7qQ3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_tL7qRHpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_tL7qRXpvEemAMrFSe4iPqA" type="compartment_sysml_constraint_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_tL7qRnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tL7qR3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_tL7qSHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_tL7qSXpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_tL7qSnpvEemAMrFSe4iPqA" type="compartment_sysml_value_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_tL7qS3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tL7qTHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_tL7qTXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_tL7qTnpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:DecorationNode" xmi:id="_tOmjwHpvEemAMrFSe4iPqA" type="StereotypeLabel">

+        <styles xmi:type="notation:StringValueStyle" xmi:id="_tOmjwXpvEemAMrFSe4iPqA" name="stereotype" stringValue="SysML::Blocks::Block"/>

+        <element xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_8J2A8LVAEdu2ieF4ON8UjA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tOmjwnpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_tOmjw3pvEemAMrFSe4iPqA" type="StereotypeBrace">

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tOmjxHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:StringValueStyle" xmi:id="_tOmjxXpvEemAMrFSe4iPqA" name="stereotype" stringValue="SysML::Blocks::Block"/>

+        <element xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_8J2A8LVAEdu2ieF4ON8UjA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tOmjxnpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_tOmjyXpvEemAMrFSe4iPqA" type="compartment_shape_display">

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tOmjynpvEemAMrFSe4iPqA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tOmjy3pvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_tOsqbXpvEemAMrFSe4iPqA" type="StereotypeCompartment">

+        <styles xmi:type="notation:TitleStyle" xmi:id="_tOsqbnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:StringValueStyle" xmi:id="_tOsqb3pvEemAMrFSe4iPqA" name="stereotype" stringValue="SysML::Blocks::Block"/>

+        <element xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_8J2A8LVAEdu2ieF4ON8UjA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tOsqcHpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_2FIfkHpvEemAMrFSe4iPqA" type="shape_sysml_flowport_as_affixed">

+        <children xmi:type="notation:DecorationNode" xmi:id="_2FOmMHpvEemAMrFSe4iPqA" type="affixedlabel_sysml_flowport_label">

+          <layoutConstraint xmi:type="notation:Location" xmi:id="_2FOmMXpvEemAMrFSe4iPqA" x="30"/>

+        </children>

+        <children xmi:type="notation:DecorationNode" xmi:id="_2FOmMnpvEemAMrFSe4iPqA" type="affixedlabel_uml_appliedstereotype">

+          <layoutConstraint xmi:type="notation:Location" xmi:id="_2FOmM3pvEemAMrFSe4iPqA" x="30" y="-20"/>

+        </children>

+        <element xmi:type="uml:Port" href="CHESSPatterns.uml#_2E2LsHpvEemAMrFSe4iPqA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2FIfkXpvEemAMrFSe4iPqA" x="90" y="24" width="20" height="20"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_4OW14HpvEemAMrFSe4iPqA" type="shape_sysml_flowport_as_affixed">

+        <children xmi:type="notation:DecorationNode" xmi:id="_4OW14npvEemAMrFSe4iPqA" type="affixedlabel_sysml_flowport_label">

+          <layoutConstraint xmi:type="notation:Location" xmi:id="_4OW143pvEemAMrFSe4iPqA" x="30"/>

+        </children>

+        <children xmi:type="notation:DecorationNode" xmi:id="_4OW15HpvEemAMrFSe4iPqA" type="affixedlabel_uml_appliedstereotype">

+          <layoutConstraint xmi:type="notation:Location" xmi:id="_4OW15XpvEemAMrFSe4iPqA" x="30" y="-20"/>

+        </children>

+        <element xmi:type="uml:Port" href="CHESSPatterns.uml#_0czP0HpvEemAMrFSe4iPqA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4OW14XpvEemAMrFSe4iPqA" x="-10" y="19" width="20" height="20"/>

+      </children>

+      <element xmi:type="uml:Class" href="CHESSPatterns.uml#_tKmNgHpvEemAMrFSe4iPqA"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tLjPwXpvEemAMrFSe4iPqA" x="102" y="78" width="100" height="150"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_tOmjzHpvEemAMrFSe4iPqA" type="StereotypeComment">

+      <styles xmi:type="notation:TitleStyle" xmi:id="_tOmjzXpvEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tOsqYHpvEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Class" href="CHESSPatterns.uml#_tKmNgHpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tOmjznpvEemAMrFSe4iPqA" x="200"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_2GqJoHpvEemAMrFSe4iPqA" type="StereotypeComment">

+      <styles xmi:type="notation:TitleStyle" xmi:id="_2GqJoXpvEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2GqJo3pvEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_2E2LsHpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2GqJonpvEemAMrFSe4iPqA" x="290" y="24"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_4PNxkHpvEemAMrFSe4iPqA" type="StereotypeComment">

+      <styles xmi:type="notation:TitleStyle" xmi:id="_4PNxkXpvEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_4PNxk3pvEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_0czP0HpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4PNxknpvEemAMrFSe4iPqA" x="190" y="19"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_9oPEonpvEemAMrFSe4iPqA" type="shape_sysml_block_as_classifier">

+      <children xmi:type="notation:DecorationNode" xmi:id="_9oVLQHpvEemAMrFSe4iPqA" type="label_sysml_block_name"/>

+      <children xmi:type="notation:ListCompartment" xmi:id="_9oVLQXpvEemAMrFSe4iPqA" type="compartment_sysml_property_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_9oVLQnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9oVLQ3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_9oVLRHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9oVLRXpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_9oVLRnpvEemAMrFSe4iPqA" type="compartment_sysml_part_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_9oVLR3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9oVLSHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_9oVLSXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9oVLSnpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_9oVLS3pvEemAMrFSe4iPqA" type="compartment_sysml_reference_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_9oVLTHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9oVLTXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_9oVLTnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9oVLT3pvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_9oVLUHpvEemAMrFSe4iPqA" type="compartment_uml_port_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_9oVLUXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9oVLUnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_9oVLU3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9oVLVHpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_9oVLVXpvEemAMrFSe4iPqA" type="compartment_sysml_flowport_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_9oVLVnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9oVLV3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_9oVLWHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9oVLWXpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_9oVLWnpvEemAMrFSe4iPqA" type="compartment_uml_operation_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_9oVLW3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9oVLXHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_9oVLXXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9oVLXnpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_9oVLX3pvEemAMrFSe4iPqA" type="compartment_sysml_constraint_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_9oVLYHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9oVLYXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_9oVLYnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9oVLY3pvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_9oVLZHpvEemAMrFSe4iPqA" type="compartment_sysml_value_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_9oVLZXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9oVLZnpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_9oVLZ3pvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9oVLaHpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:DecorationNode" xmi:id="_9onfIHpvEemAMrFSe4iPqA" type="StereotypeLabel">

+        <styles xmi:type="notation:StringValueStyle" xmi:id="_9onfIXpvEemAMrFSe4iPqA" name="stereotype" stringValue="SysML::Blocks::Block"/>

+        <element xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_8J2A8LVAEdu2ieF4ON8UjA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9onfInpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_9onfI3pvEemAMrFSe4iPqA" type="StereotypeBrace">

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9onfJHpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:StringValueStyle" xmi:id="_9onfJXpvEemAMrFSe4iPqA" name="stereotype" stringValue="SysML::Blocks::Block"/>

+        <element xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_8J2A8LVAEdu2ieF4ON8UjA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9onfJnpvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_9onfKXpvEemAMrFSe4iPqA" type="compartment_shape_display">

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9onfKnpvEemAMrFSe4iPqA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9onfK3pvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_9onfPHpvEemAMrFSe4iPqA" type="StereotypeCompartment">

+        <styles xmi:type="notation:TitleStyle" xmi:id="_9onfPXpvEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:StringValueStyle" xmi:id="_9onfPnpvEemAMrFSe4iPqA" name="stereotype" stringValue="SysML::Blocks::Block"/>

+        <element xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_8J2A8LVAEdu2ieF4ON8UjA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9onfP3pvEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_-pXKcHpvEemAMrFSe4iPqA" type="shape_uml_port_as_affixed">

+        <children xmi:type="notation:DecorationNode" xmi:id="_-pXKcnpvEemAMrFSe4iPqA" type="affixedlabel_uml_port_label">

+          <layoutConstraint xmi:type="notation:Location" xmi:id="_-pXKc3pvEemAMrFSe4iPqA" x="30"/>

+        </children>

+        <children xmi:type="notation:DecorationNode" xmi:id="_-pdREHpvEemAMrFSe4iPqA" type="affixedlabel_uml_appliedstereotype">

+          <layoutConstraint xmi:type="notation:Location" xmi:id="_-pdREXpvEemAMrFSe4iPqA" x="30" y="-20"/>

+        </children>

+        <element xmi:type="uml:Port" href="CHESSPatterns.uml#_-o-v8HpvEemAMrFSe4iPqA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-pXKcXpvEemAMrFSe4iPqA" x="-10" y="53" width="20" height="20"/>

+      </children>

+      <element xmi:type="uml:Class" href="CHESSPatterns.uml#_9oPEoHpvEemAMrFSe4iPqA"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oPEo3pvEemAMrFSe4iPqA" x="508" y="72" width="100" height="150"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_9onfLHpvEemAMrFSe4iPqA" type="StereotypeComment">

+      <styles xmi:type="notation:TitleStyle" xmi:id="_9onfLXpvEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9onfL3pvEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Class" href="CHESSPatterns.uml#_9oPEoHpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9onfLnpvEemAMrFSe4iPqA" x="200"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_CFvxwXpwEemAMrFSe4iPqA" type="shape_sysml_block_as_classifier">

+      <children xmi:type="notation:DecorationNode" xmi:id="_CFvxw3pwEemAMrFSe4iPqA" type="label_sysml_block_name"/>

+      <children xmi:type="notation:ListCompartment" xmi:id="_CFvxxHpwEemAMrFSe4iPqA" type="compartment_sysml_property_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_CFvxxXpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CFvxxnpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_CFvxx3pwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_CFvxyHpwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_CFvxyXpwEemAMrFSe4iPqA" type="compartment_sysml_part_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_CFvxynpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CFvxy3pwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_CFvxzHpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_CFvxzXpwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_CFvxznpwEemAMrFSe4iPqA" type="compartment_sysml_reference_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_CFvxz3pwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CFvx0HpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_CFvx0XpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_CFvx0npwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_CFvx03pwEemAMrFSe4iPqA" type="compartment_uml_port_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_CFvx1HpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CFvx1XpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_CFvx1npwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_CFvx13pwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_CFvx2HpwEemAMrFSe4iPqA" type="compartment_sysml_flowport_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_CFvx2XpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CFvx2npwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_CFvx23pwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_CFvx3HpwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_CF14YHpwEemAMrFSe4iPqA" type="compartment_uml_operation_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_CF14YXpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CF14YnpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_CF14Y3pwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_CF14ZHpwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_CF14ZXpwEemAMrFSe4iPqA" type="compartment_sysml_constraint_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_CF14ZnpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CF14Z3pwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_CF14aHpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_CF14aXpwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:ListCompartment" xmi:id="_CF14anpwEemAMrFSe4iPqA" type="compartment_sysml_value_as_list">

+        <styles xmi:type="notation:DrawerStyle" xmi:id="_CF14a3pwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CF14bHpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:SortingStyle" xmi:id="_CF14bXpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:FilteringStyle" xmi:id="_CF14bnpwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:DecorationNode" xmi:id="_CGCFoHpwEemAMrFSe4iPqA" type="StereotypeLabel">

+        <styles xmi:type="notation:StringValueStyle" xmi:id="_CGCFoXpwEemAMrFSe4iPqA" name="stereotype" stringValue="SysML::Blocks::Block"/>

+        <element xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_8J2A8LVAEdu2ieF4ON8UjA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGCFonpwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_CGCFo3pwEemAMrFSe4iPqA" type="StereotypeBrace">

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CGCFpHpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:StringValueStyle" xmi:id="_CGCFpXpwEemAMrFSe4iPqA" name="stereotype" stringValue="SysML::Blocks::Block"/>

+        <element xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_8J2A8LVAEdu2ieF4ON8UjA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGCFpnpwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_CGCFqXpwEemAMrFSe4iPqA" type="compartment_shape_display">

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CGCFqnpwEemAMrFSe4iPqA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGCFq3pwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_CGCFvHpwEemAMrFSe4iPqA" type="StereotypeCompartment">

+        <styles xmi:type="notation:TitleStyle" xmi:id="_CGCFvXpwEemAMrFSe4iPqA"/>

+        <styles xmi:type="notation:StringValueStyle" xmi:id="_CGCFvnpwEemAMrFSe4iPqA" name="stereotype" stringValue="SysML::Blocks::Block"/>

+        <element xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_8J2A8LVAEdu2ieF4ON8UjA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGCFv3pwEemAMrFSe4iPqA"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_D1gfMHpwEemAMrFSe4iPqA" type="shape_uml_port_as_affixed">

+        <children xmi:type="notation:DecorationNode" xmi:id="_D1gfMnpwEemAMrFSe4iPqA" type="affixedlabel_uml_port_label">

+          <layoutConstraint xmi:type="notation:Location" xmi:id="_D1gfM3pwEemAMrFSe4iPqA" x="30"/>

+        </children>

+        <children xmi:type="notation:DecorationNode" xmi:id="_D1gfNHpwEemAMrFSe4iPqA" type="affixedlabel_uml_appliedstereotype">

+          <layoutConstraint xmi:type="notation:Location" xmi:id="_D1gfNXpwEemAMrFSe4iPqA" x="30" y="-20"/>

+        </children>

+        <element xmi:type="uml:Port" href="CHESSPatterns.uml#_D1B-EHpwEemAMrFSe4iPqA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D1gfMXpwEemAMrFSe4iPqA" x="-10" y="16" width="20" height="20"/>

+      </children>

+      <element xmi:type="uml:Class" href="CHESSPatterns.uml#_CFprIHpwEemAMrFSe4iPqA"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CFvxwnpwEemAMrFSe4iPqA" x="319" y="175" width="100" height="150"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_CGCFrHpwEemAMrFSe4iPqA" type="StereotypeComment">

+      <styles xmi:type="notation:TitleStyle" xmi:id="_CGCFrXpwEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CGCFr3pwEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Class" href="CHESSPatterns.uml#_CFprIHpwEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGCFrnpwEemAMrFSe4iPqA" x="200"/>

+    </children>

+    <styles xmi:type="notation:DiagramStyle" xmi:id="_sSVv0XpvEemAMrFSe4iPqA"/>

+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_sSVv0npvEemAMrFSe4iPqA">

+      <owner xmi:type="uml:Package" href="CHESSPatterns.uml#_lrsL8HpvEemAMrFSe4iPqA"/>

+    </styles>

+    <styles xmi:type="notation:StringValueStyle" xmi:id="_sUoO0HpvEemAMrFSe4iPqA" name="diagram_compatibility_version" stringValue="1.2.0"/>

+    <element xmi:type="uml:Package" href="CHESSPatterns.uml#_lrsL8HpvEemAMrFSe4iPqA"/>

+    <edges xmi:type="notation:Connector" xmi:id="_tOsqYXpvEemAMrFSe4iPqA" type="StereotypeCommentLink" source="_tLjPwHpvEemAMrFSe4iPqA" target="_tOmjzHpvEemAMrFSe4iPqA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_tOsqYnpvEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tOsqZnpvEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Class" href="CHESSPatterns.uml#_tKmNgHpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tOsqY3pvEemAMrFSe4iPqA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tOsqZHpvEemAMrFSe4iPqA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tOsqZXpvEemAMrFSe4iPqA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_2GqJpHpvEemAMrFSe4iPqA" type="StereotypeCommentLink" source="_2FIfkHpvEemAMrFSe4iPqA" target="_2GqJoHpvEemAMrFSe4iPqA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_2GqJpXpvEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2GwQMnpvEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_2E2LsHpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2GqJpnpvEemAMrFSe4iPqA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2GwQMHpvEemAMrFSe4iPqA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2GwQMXpvEemAMrFSe4iPqA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_4PNxlHpvEemAMrFSe4iPqA" type="StereotypeCommentLink" source="_4OW14HpvEemAMrFSe4iPqA" target="_4PNxkHpvEemAMrFSe4iPqA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_4PNxlXpvEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_4PNxmXpvEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_0czP0HpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4PNxlnpvEemAMrFSe4iPqA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4PNxl3pvEemAMrFSe4iPqA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4PNxmHpvEemAMrFSe4iPqA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_9onfMHpvEemAMrFSe4iPqA" type="StereotypeCommentLink" source="_9oPEonpvEemAMrFSe4iPqA" target="_9onfLHpvEemAMrFSe4iPqA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_9onfMXpvEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_9onfNXpvEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Class" href="CHESSPatterns.uml#_9oPEoHpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9onfMnpvEemAMrFSe4iPqA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9onfM3pvEemAMrFSe4iPqA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9onfNHpvEemAMrFSe4iPqA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_CGCFsHpwEemAMrFSe4iPqA" type="StereotypeCommentLink" source="_CFvxwXpwEemAMrFSe4iPqA" target="_CGCFrHpwEemAMrFSe4iPqA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_CGCFsXpwEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CGCFtXpwEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Class" href="CHESSPatterns.uml#_CFprIHpwEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CGCFsnpwEemAMrFSe4iPqA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CGCFs3pwEemAMrFSe4iPqA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CGCFtHpwEemAMrFSe4iPqA"/>

+    </edges>

+  </notation:Diagram>

+  <notation:Diagram xmi:id="_M0DukHpwEemAMrFSe4iPqA" type="CompositeStructure" name="SG Roles" measurementUnit="Pixel">

+    <children xmi:type="notation:Shape" xmi:id="_M0J1MHpwEemAMrFSe4iPqA" type="Collaboration_Shape">

+      <children xmi:type="notation:DecorationNode" xmi:id="_M0J1MnpwEemAMrFSe4iPqA" type="Collaboration_NameLabel"/>

+      <children xmi:type="notation:DecorationNode" xmi:id="_M0J1M3pwEemAMrFSe4iPqA" type="Collaboration_FloatingNameLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_M0J1NHpwEemAMrFSe4iPqA" y="5"/>

+      </children>

+      <children xmi:type="notation:BasicCompartment" xmi:id="_M0J1NXpwEemAMrFSe4iPqA" type="Collaboration_StructureCompartment">

+        <children xmi:type="notation:Shape" xmi:id="_PZm0gHpwEemAMrFSe4iPqA" type="Property_Shape">

+          <children xmi:type="notation:DecorationNode" xmi:id="_PZm0gnpwEemAMrFSe4iPqA" type="Property_NameLabel"/>

+          <children xmi:type="notation:DecorationNode" xmi:id="_PZm0g3pwEemAMrFSe4iPqA" type="Property_FloatingNameLabel">

+            <layoutConstraint xmi:type="notation:Location" xmi:id="_PZm0hHpwEemAMrFSe4iPqA" y="5"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_PZm0hXpwEemAMrFSe4iPqA" type="Property_StructureCompartment">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_PZm0hnpwEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PZm0h3pwEemAMrFSe4iPqA"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_PZzBwHpwEemAMrFSe4iPqA" type="compartment_shape_display">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_PZzBwXpwEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PZzBwnpwEemAMrFSe4iPqA"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_SIBikHpwEemAMrFSe4iPqA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_SIBiknpwEemAMrFSe4iPqA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_SIBik3pwEemAMrFSe4iPqA" x="25" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_SIBilHpwEemAMrFSe4iPqA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_SIBilXpwEemAMrFSe4iPqA" x="25" y="-10"/>

+            </children>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_-o-v8HpvEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SIBikXpwEemAMrFSe4iPqA" x="172" y="21"/>

+          </children>

+          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_PZanQHpwEemAMrFSe4iPqA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PZm0gXpwEemAMrFSe4iPqA" x="3" y="55"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_Qb4w4HpwEemAMrFSe4iPqA" type="Property_Shape">

+          <children xmi:type="notation:DecorationNode" xmi:id="_Qb4w4npwEemAMrFSe4iPqA" type="Property_NameLabel"/>

+          <children xmi:type="notation:DecorationNode" xmi:id="_Qb4w43pwEemAMrFSe4iPqA" type="Property_FloatingNameLabel">

+            <layoutConstraint xmi:type="notation:Location" xmi:id="_Qb4w5HpwEemAMrFSe4iPqA" y="5"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_Qb4w5XpwEemAMrFSe4iPqA" type="Property_StructureCompartment">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_Qb4w5npwEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qb4w53pwEemAMrFSe4iPqA"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_QcE-IHpwEemAMrFSe4iPqA" type="compartment_shape_display">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_QcE-IXpwEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QcE-InpwEemAMrFSe4iPqA"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_TpYnoHpwEemAMrFSe4iPqA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_TpYnonpwEemAMrFSe4iPqA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_TpYno3pwEemAMrFSe4iPqA" x="25" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_TpYnpHpwEemAMrFSe4iPqA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_TpYnpXpwEemAMrFSe4iPqA" x="25" y="-10"/>

+            </children>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_0czP0HpvEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TpYnoXpwEemAMrFSe4iPqA" x="-10" y="26"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_TpYnpnpwEemAMrFSe4iPqA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_TpYnqHpwEemAMrFSe4iPqA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_TpYnqXpwEemAMrFSe4iPqA" x="25" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_TpYnqnpwEemAMrFSe4iPqA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_TpYnq3pwEemAMrFSe4iPqA" x="25" y="-10"/>

+            </children>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_2E2LsHpvEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TpYnp3pwEemAMrFSe4iPqA" x="137" y="22"/>

+          </children>

+          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_QbyqQHpwEemAMrFSe4iPqA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qb4w4XpwEemAMrFSe4iPqA" x="349" y="57"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_RTSS8XpwEemAMrFSe4iPqA" type="Property_Shape">

+          <children xmi:type="notation:DecorationNode" xmi:id="_RTSS83pwEemAMrFSe4iPqA" type="Property_NameLabel"/>

+          <children xmi:type="notation:DecorationNode" xmi:id="_RTSS9HpwEemAMrFSe4iPqA" type="Property_FloatingNameLabel">

+            <layoutConstraint xmi:type="notation:Location" xmi:id="_RTSS9XpwEemAMrFSe4iPqA" y="5"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_RTSS9npwEemAMrFSe4iPqA" type="Property_StructureCompartment">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_RTSS93pwEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RTSS-HpwEemAMrFSe4iPqA"/>

+          </children>

+          <children xmi:type="notation:BasicCompartment" xmi:id="_RTegMHpwEemAMrFSe4iPqA" type="compartment_shape_display">

+            <styles xmi:type="notation:TitleStyle" xmi:id="_RTegMXpwEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RTegMnpwEemAMrFSe4iPqA"/>

+          </children>

+          <children xmi:type="notation:Shape" xmi:id="_Uq_1oHpwEemAMrFSe4iPqA" type="Port_Shape">

+            <children xmi:type="notation:DecorationNode" xmi:id="_Uq_1onpwEemAMrFSe4iPqA" type="Port_NameLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Uq_1o3pwEemAMrFSe4iPqA" x="25" y="3"/>

+            </children>

+            <children xmi:type="notation:DecorationNode" xmi:id="_Uq_1pHpwEemAMrFSe4iPqA" type="Port_StereotypeLabel">

+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Uq_1pXpwEemAMrFSe4iPqA" x="25" y="-10"/>

+            </children>

+            <element xmi:type="uml:Port" href="CHESSPatterns.uml#_D1B-EHpwEemAMrFSe4iPqA"/>

+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uq_1oXpwEemAMrFSe4iPqA" x="-10" y="-9"/>

+          </children>

+          <element xmi:type="uml:Property" href="CHESSPatterns.uml#_RTSS8HpwEemAMrFSe4iPqA"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RTSS8npwEemAMrFSe4iPqA" x="623" y="51"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_TpxCIHpwEemAMrFSe4iPqA" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_TpxCIXpwEemAMrFSe4iPqA"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TpxCI3pwEemAMrFSe4iPqA" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_0czP0HpvEemAMrFSe4iPqA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TpxCInpwEemAMrFSe4iPqA" x="190" y="-9"/>

+        </children>

+        <children xmi:type="notation:Shape" xmi:id="_Tp9PaXpwEemAMrFSe4iPqA" type="StereotypeComment">

+          <styles xmi:type="notation:TitleStyle" xmi:id="_Tp9PanpwEemAMrFSe4iPqA"/>

+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Tp9PbHpwEemAMrFSe4iPqA" name="BASE_ELEMENT">

+            <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_2E2LsHpvEemAMrFSe4iPqA"/>

+          </styles>

+          <element xsi:nil="true"/>

+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tp9Pa3pwEemAMrFSe4iPqA" x="190" y="1"/>

+        </children>

+        <styles xmi:type="notation:TitleStyle" xmi:id="_M0J1NnpwEemAMrFSe4iPqA"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M0J1N3pwEemAMrFSe4iPqA"/>

+      </children>

+      <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_x6h80HpuEemAMrFSe4iPqA"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M0J1MXpwEemAMrFSe4iPqA" x="-102" y="40" width="871" height="250"/>

+    </children>

+    <children xmi:type="notation:Shape" xmi:id="_M2cUR3pwEemAMrFSe4iPqA" type="StereotypeComment">

+      <styles xmi:type="notation:TitleStyle" xmi:id="_M2cUSHpwEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M2cUSnpwEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_x6h80HpuEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M2cUSXpwEemAMrFSe4iPqA" x="240" y="40"/>

+    </children>

+    <styles xmi:type="notation:StringValueStyle" xmi:id="_M0DukXpwEemAMrFSe4iPqA" name="diagram_compatibility_version" stringValue="1.2.0"/>

+    <styles xmi:type="notation:DiagramStyle" xmi:id="_M0DuknpwEemAMrFSe4iPqA"/>

+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_M0Duk3pwEemAMrFSe4iPqA">

+      <owner xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_x6h80HpuEemAMrFSe4iPqA"/>

+    </styles>

+    <element xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_x6h80HpuEemAMrFSe4iPqA"/>

+    <edges xmi:type="notation:Connector" xmi:id="_M2cUS3pwEemAMrFSe4iPqA" type="StereotypeCommentLink" source="_M0J1MHpwEemAMrFSe4iPqA" target="_M2cUR3pwEemAMrFSe4iPqA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_M2cUTHpwEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_M2cUUHpwEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Collaboration" href="CHESSPatterns.uml#_x6h80HpuEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M2cUTXpwEemAMrFSe4iPqA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2cUTnpwEemAMrFSe4iPqA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2cUT3pwEemAMrFSe4iPqA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_TpxCJHpwEemAMrFSe4iPqA" type="StereotypeCommentLink" source="_TpYnoHpwEemAMrFSe4iPqA" target="_TpxCIHpwEemAMrFSe4iPqA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_TpxCJXpwEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TpxCKXpwEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_0czP0HpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TpxCJnpwEemAMrFSe4iPqA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TpxCJ3pwEemAMrFSe4iPqA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TpxCKHpwEemAMrFSe4iPqA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_Tp9PbXpwEemAMrFSe4iPqA" type="StereotypeCommentLink" source="_TpYnpnpwEemAMrFSe4iPqA" target="_Tp9PaXpwEemAMrFSe4iPqA">

+      <styles xmi:type="notation:FontStyle" xmi:id="_Tp9PbnpwEemAMrFSe4iPqA"/>

+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Tp9PcnpwEemAMrFSe4iPqA" name="BASE_ELEMENT">

+        <eObjectValue xmi:type="uml:Port" href="CHESSPatterns.uml#_2E2LsHpvEemAMrFSe4iPqA"/>

+      </styles>

+      <element xsi:nil="true"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Tp9Pb3pwEemAMrFSe4iPqA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>

+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Tp9PcHpwEemAMrFSe4iPqA"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Tp9PcXpwEemAMrFSe4iPqA"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_VfcxYHpwEemAMrFSe4iPqA" type="Connector_Edge" source="_SIBikHpwEemAMrFSe4iPqA" target="_TpYnoHpwEemAMrFSe4iPqA">

+      <children xmi:type="notation:DecorationNode" xmi:id="_VfcxY3pwEemAMrFSe4iPqA" type="Connector_StereotypeLabel">

+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_bOgwgHpxEemAMrFSe4iPqA" name="IS_UPDATED_POSITION" booleanValue="true"/>

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_VfcxZHpwEemAMrFSe4iPqA" y="59"/>

+      </children>

+      <children xmi:type="notation:DecorationNode" xmi:id="_VfcxZXpwEemAMrFSe4iPqA" type="Connector_NameLabel">

+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_bOzEYHpxEemAMrFSe4iPqA" name="IS_UPDATED_POSITION" booleanValue="true"/>

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_VfcxZnpwEemAMrFSe4iPqA" x="1" y="-18"/>

+      </children>

+      <styles xmi:type="notation:FontStyle" xmi:id="_VfcxYXpwEemAMrFSe4iPqA"/>

+      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_VfEW4HpwEemAMrFSe4iPqA"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VfcxYnpwEemAMrFSe4iPqA" points="[236, 183, -643984, -643984]$[348, 144, -643984, -643984]"/>

+    </edges>

+    <edges xmi:type="notation:Connector" xmi:id="_WDxmcHpwEemAMrFSe4iPqA" type="Connector_Edge" source="_TpYnpnpwEemAMrFSe4iPqA" target="_Uq_1oHpwEemAMrFSe4iPqA">

+      <children xmi:type="notation:DecorationNode" xmi:id="_WDxmc3pwEemAMrFSe4iPqA" type="Connector_StereotypeLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_WDxmdHpwEemAMrFSe4iPqA" y="60"/>

+      </children>

+      <children xmi:type="notation:DecorationNode" xmi:id="_WDxmdXpwEemAMrFSe4iPqA" type="Connector_NameLabel">

+        <layoutConstraint xmi:type="notation:Location" xmi:id="_WDxmdnpwEemAMrFSe4iPqA" y="-20"/>

+      </children>

+      <styles xmi:type="notation:FontStyle" xmi:id="_WDxmcXpwEemAMrFSe4iPqA"/>

+      <element xmi:type="uml:Connector" href="CHESSPatterns.uml#_WDTFUHpwEemAMrFSe4iPqA"/>

+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WDxmcnpwEemAMrFSe4iPqA" points="[506, 180, -643984, -643984]$[571, 151, -643984, -643984]"/>

+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WEWOMHpwEemAMrFSe4iPqA" id="(0.05,0.35)"/>

+    </edges>

+  </notation:Diagram>

+</xmi:XMI>

diff --git a/plugins/org.polarsys.chess.patterns.library/model/CHESSPatterns.uml b/plugins/org.polarsys.chess.patterns.library/model/CHESSPatterns.uml
index fd52c5c..873e35f 100644
--- a/plugins/org.polarsys.chess.patterns.library/model/CHESSPatterns.uml
+++ b/plugins/org.polarsys.chess.patterns.library/model/CHESSPatterns.uml
@@ -72,6 +72,33 @@
         </packagedElement>

       </packagedElement>

     </packagedElement>

+    <packagedElement xmi:type="uml:Package" xmi:id="_rIuR0HpuEemAMrFSe4iPqA" name="SecurityGateway">

+      <packagedElement xmi:type="uml:Collaboration" xmi:id="_x6h80HpuEemAMrFSe4iPqA" name="SecurityGatewayPattern" collaborationRole="_PZanQHpwEemAMrFSe4iPqA _QbyqQHpwEemAMrFSe4iPqA _RTSS8HpwEemAMrFSe4iPqA">

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_PZanQHpwEemAMrFSe4iPqA" name="internalUnit" type="_9oPEoHpvEemAMrFSe4iPqA"/>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_QbyqQHpwEemAMrFSe4iPqA" name="gateway" type="_tKmNgHpvEemAMrFSe4iPqA"/>

+        <ownedAttribute xmi:type="uml:Property" xmi:id="_RTSS8HpwEemAMrFSe4iPqA" name="externalUnit" type="_CFprIHpwEemAMrFSe4iPqA"/>

+        <ownedConnector xmi:type="uml:Connector" xmi:id="_VfEW4HpwEemAMrFSe4iPqA" name="Connector1">

+          <end xmi:type="uml:ConnectorEnd" xmi:id="_VfEW4XpwEemAMrFSe4iPqA" partWithPort="_PZanQHpwEemAMrFSe4iPqA" role="_-o-v8HpvEemAMrFSe4iPqA"/>

+          <end xmi:type="uml:ConnectorEnd" xmi:id="_VfEW4npwEemAMrFSe4iPqA" partWithPort="_QbyqQHpwEemAMrFSe4iPqA" role="_0czP0HpvEemAMrFSe4iPqA"/>

+        </ownedConnector>

+        <ownedConnector xmi:type="uml:Connector" xmi:id="_WDTFUHpwEemAMrFSe4iPqA" name="Connector2">

+          <end xmi:type="uml:ConnectorEnd" xmi:id="_WDTFUXpwEemAMrFSe4iPqA" partWithPort="_QbyqQHpwEemAMrFSe4iPqA" role="_2E2LsHpvEemAMrFSe4iPqA"/>

+          <end xmi:type="uml:ConnectorEnd" xmi:id="_WDTFUnpwEemAMrFSe4iPqA" partWithPort="_RTSS8HpwEemAMrFSe4iPqA" role="_D1B-EHpwEemAMrFSe4iPqA"/>

+        </ownedConnector>

+      </packagedElement>

+      <packagedElement xmi:type="uml:Package" xmi:id="_lrsL8HpvEemAMrFSe4iPqA" name="SGTypes">

+        <packagedElement xmi:type="uml:Class" xmi:id="_tKmNgHpvEemAMrFSe4iPqA" name="Gateway">

+          <ownedAttribute xmi:type="uml:Port" xmi:id="_0czP0HpvEemAMrFSe4iPqA" name="internalPort" aggregation="composite"/>

+          <ownedAttribute xmi:type="uml:Port" xmi:id="_2E2LsHpvEemAMrFSe4iPqA" name="externalPort" aggregation="composite"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Class" xmi:id="_9oPEoHpvEemAMrFSe4iPqA" name="InternalUnit">

+          <ownedAttribute xmi:type="uml:Port" xmi:id="_-o-v8HpvEemAMrFSe4iPqA" name="port" aggregation="composite"/>

+        </packagedElement>

+        <packagedElement xmi:type="uml:Class" xmi:id="_CFprIHpwEemAMrFSe4iPqA" name="ExternalUnit">

+          <ownedAttribute xmi:type="uml:Port" xmi:id="_D1B-EHpwEemAMrFSe4iPqA" name="port" aggregation="composite"/>

+        </packagedElement>

+      </packagedElement>

+    </packagedElement>

     <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_PppeMMiQEei_s-5HMfypxQ">

       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ppz2QMiQEei_s-5HMfypxQ" source="http://www.eclipse.org/uml2/2.0.0/UML">

         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#/"/>

@@ -181,4 +208,19 @@
   <Blocks:Block xmi:id="_NZd8gMvLEeiG7qFbiuwNbA" base_Class="_tksgIMvGEeiG7qFbiuwNbA"/>

   <PortAndFlows:FlowPort xmi:id="_txGq0MvOEeiFVYS8koh7VQ" base_Port="_d4G5MMvLEeiG7qFbiuwNbA" direction="out"/>

   <PortAndFlows:FlowPort xmi:id="_wOZMoMvOEeiFVYS8koh7VQ" base_Port="_dJp3wMvLEeiG7qFbiuwNbA" direction="in"/>

+  <PatternsProfile:Pattern xmi:id="_7n-5kHpuEemAMrFSe4iPqA" base_Collaboration="_x6h80HpuEemAMrFSe4iPqA" patternName="Security Gateway" intent="Control incoming and outgoing messages/connections, restrict access to certain entities." problem="An attacker can use an entry point to inject malicious content into the internal unit." solution="n interceptor, the gateway, is placed between an unprotected internal network and untrusted external entities when communication to the outside is inevitable.&#xD;&#xA;All incoming or outgoing messages pass through this host.&#xD;&#xA;The gateway controls the network access to the internal unit(s) according to predefined security policies and can also inspect msg content to detect intrusion attempts and anomalies." preview="org.polarsys.chess.patterns.library/preview/SecurityGateway.png">

+    <otherNames>Firewall</otherNames>

+    <consequences>It adds security protection and segments the system without fundamentally changing the existing in-car system architecture</consequences>

+    <consequences>Security gateway might introduce latency into the communication, which is a subject of safety/performance impact analysis</consequences>

+    <implementation>Two implementation variants of a gateway are mentioned: the stateless gateway and the statefull gateway. In general, the stateless&#xD;

+gateway is more performant and the statefull gateway is more advanced, i. e. it is able to make more intelligent decisions.</implementation>

+    <patternAssumptions>Incoming messages can be analysed/inspected</patternAssumptions>

+    <patternGuarantees>The gateway will be able to make an access control&#xD;

+decision (grant, reject, discard, or modify) and detect intrusion attempts.</patternGuarantees>

+  </PatternsProfile:Pattern>

+  <Blocks:Block xmi:id="_tLQ74HpvEemAMrFSe4iPqA" base_Class="_tKmNgHpvEemAMrFSe4iPqA"/>

+  <PortAndFlows:FlowPort xmi:id="_0dFjsHpvEemAMrFSe4iPqA" base_Port="_0czP0HpvEemAMrFSe4iPqA"/>

+  <PortAndFlows:FlowPort xmi:id="_2E8SUHpvEemAMrFSe4iPqA" base_Port="_2E2LsHpvEemAMrFSe4iPqA"/>

+  <Blocks:Block xmi:id="_9oPEoXpvEemAMrFSe4iPqA" base_Class="_9oPEoHpvEemAMrFSe4iPqA"/>

+  <Blocks:Block xmi:id="_CFvxwHpwEemAMrFSe4iPqA" base_Class="_CFprIHpwEemAMrFSe4iPqA"/>

 </xmi:XMI>

diff --git a/plugins/org.polarsys.chess.patterns.library/preview/SecurityGateway.png b/plugins/org.polarsys.chess.patterns.library/preview/SecurityGateway.png
new file mode 100644
index 0000000..ef15c89
--- /dev/null
+++ b/plugins/org.polarsys.chess.patterns.library/preview/SecurityGateway.png
Binary files differ
diff --git a/plugins/org.polarsys.chess.service/plugin.xml b/plugins/org.polarsys.chess.service/plugin.xml
index e571401..ff3eeca 100644
--- a/plugins/org.polarsys.chess.service/plugin.xml
+++ b/plugins/org.polarsys.chess.service/plugin.xml
@@ -176,7 +176,7 @@
             </command>
          </toolbar>
       </menuContribution>
-      <menuContribution
+      <!--menuContribution
             allPopups="false"
             locationURI="menu:org.eclipse.ui.main.menu">
          <menu
@@ -207,8 +207,8 @@
                </visibleWhen>
             </command>
          </menu>
-      </menuContribution>
-      <menuContribution
+      </menuContribution-->
+      <!--menuContribution
             allPopups="false"
             locationURI="menu:org.eclipse.ui.main.menu">
          <menu
@@ -254,8 +254,8 @@
                </and>
             </visibleWhen>
          </menu>
-      </menuContribution>
-      <menuContribution
+      </menuContribution-->
+      <!--menuContribution
             allPopups="false"
             locationURI="menu:org.eclipse.ui.main.menu">
          <menu
@@ -286,7 +286,7 @@
                </and>
             </visibleWhen>
          </menu>
-      </menuContribution>
+      </menuContribution-->
       <menuContribution
             allPopups="false"
             locationURI="toolbar:org.eclipse.ui.main.toolbar">
diff --git a/plugins/org.polarsys.chess.smvExporter/plugin.xml b/plugins/org.polarsys.chess.smvExporter/plugin.xml
index 6eb87bb..baa9f0f 100644
--- a/plugins/org.polarsys.chess.smvExporter/plugin.xml
+++ b/plugins/org.polarsys.chess.smvExporter/plugin.xml
@@ -33,22 +33,30 @@
          point="org.eclipse.ui.menus">

       <menuContribution

             allPopups="false"

-            locationURI="menu:org.eclipse.ui.main.menu.CHESS.basicOperation">

-	     <command

-            commandId="org.polarsys.chess.smvExport.commands.ExportModelToSMVCommand"

-            icon="icons/export.gif"

-            label="Export model to a monolithic SMV file"

-            style="push">

-         <parameter

-               name="show_popup"

-               value="true">

-         </parameter>

-    	 </command>

-         <command

-               commandId="org.polarsys.chess.smvExport.commands.ExportNominalSMsToSmvFilesCommand"

-               icon="icons/export.gif"

-               style="push">

-         </command>

+            locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.argumentation.id">

+         <menu

+               id="chess.menu.importexport.id"

+               label="Import/Export">

+            <menu

+                  id="chess.menu.basicoperations.id"

+                  label="OSS/SMV">

+               <command

+                     commandId="org.polarsys.chess.smvExport.commands.ExportModelToSMVCommand"

+                     icon="icons/export.gif"

+                     label="Export model to a monolithic SMV file"

+                     style="push">

+                  <parameter

+                        name="show_popup"

+                        value="true">

+                  </parameter>

+               </command>

+               <command

+                     commandId="org.polarsys.chess.smvExport.commands.ExportNominalSMsToSmvFilesCommand"

+                     icon="icons/export.gif"

+                     style="push">

+               </command>

+            </menu>

+         </menu>

       </menuContribution>

       <menuContribution

             allPopups="false"

diff --git a/plugins/org.polarsys.chess.test.runtime/plugin.xml b/plugins/org.polarsys.chess.test.runtime/plugin.xml
index 34bfe99..dadeb77 100644
--- a/plugins/org.polarsys.chess.test.runtime/plugin.xml
+++ b/plugins/org.polarsys.chess.test.runtime/plugin.xml
@@ -4,14 +4,11 @@
 
    <extension
          point="org.eclipse.ui.commands">
-      <category
-            name="Test Category"
-            id="org.polarsys.chess.test.runtime.commands.category">
-      </category>
       <command
-            name="Launch CHESS Runtime Tests"
-            categoryId="org.polarsys.chess.test.runtime.commands.category"
-            id="org.polarsys.chess.test.runtime.commands.testCommand">
+            categoryId="it.unipd.chess.commands.category"
+            defaultHandler="org.polarsys.chess.test.runtime.handlers.TestsHandler"
+            id="org.polarsys.chess.test.runtime.commands.testCommand"
+            name="Launch CHESS Runtime Tests">
       </command>
    </extension>
    <extension
@@ -21,26 +18,33 @@
             class="org.polarsys.chess.test.runtime.handlers.TestsHandler">
       </handler>
    </extension>
-  <extension
+   <extension
          point="org.eclipse.ui.menus">
       <menuContribution
             allPopups="false"
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               id="org.polarsys.chess.mainMenu"
-               label="CHESS"
-               mnemonic="E">
-            <menu
-                  id="chess.menu.tests.id"
-                  label="Tests">
-            		<command
-                  		commandId="org.polarsys.chess.test.runtime.commands.testCommand"
-                  		mnemonic="S"
-                  		id="org.polarsys.chess.test.runtime.menus.testCommand">
-           			</command>
-		 	</menu>
-         </menu>
+            locationURI="menu:org.polarsys.chess.mainMenu?after=org.polarsys.chess.mainmenu.separator4">
+         <command
+               commandId="org.polarsys.chess.test.runtime.commands.testCommand"
+               label="Run tests"
+               style="push">
+         </command>
       </menuContribution>
    </extension>
+  <!--extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            allPopups="false"
+            locationURI="menu:org.polarsys.chess.mainMenu?after=chess.menu.filters.id">
+         <menu
+               id="chess.menu.tests.id"
+               label="Tests">
+            <command
+                  commandId="org.polarsys.chess.test.runtime.commands.testCommand"
+                  id="org.polarsys.chess.test.runtime.menus.testCommand"
+                  mnemonic="S">
+            </command>
+         </menu>
+      </menuContribution>
+   </extension-->
 
 </plugin>
diff --git a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyRecursively.java b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyRecursively.java
index e2f2bf4..19a0d58 100644
--- a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyRecursively.java
+++ b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyRecursively.java
@@ -35,22 +35,22 @@
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Core::CHESSViews") != null);
 		
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::FailurePropagation") != null);
-		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::DataFlowCallGraph") != null);
+		//Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::DataFlowCallGraph") != null);
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::StateBased") != null);
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::StateBased::StateBasedComponents") != null);
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::StateBased::FaultTolerance") != null);
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::StateBased::MaintenanceMonitoring") != null);
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::StateBased::StateBasedAnalysis") != null);
-		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::FMEA") != null);
+		//Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::FMEA") != null);
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::DependableComponent") != null);
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::ThreatsPropagation") != null);
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Dependability::MitigationMeans") != null);
 		
-		Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::TimingAnalysis") != null);
-		Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::TimingAnalysis::TimingConstraints") != null);
-		Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::DeploymentConfiguration") != null);
-		Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::DeploymentConfiguration::HardwareBaseline") != null);
-		Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::DeploymentConfiguration::DeploymentConfAnalysis") != null);
+		//Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::TimingAnalysis") != null);
+		//Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::TimingAnalysis::TimingConstraints") != null);
+		//Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::DeploymentConfiguration") != null);
+		//Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::DeploymentConfiguration::HardwareBaseline") != null);
+		//Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::DeploymentConfiguration::DeploymentConfAnalysis") != null);
 		Assert.assertTrue(model.getAppliedProfile("CHESS::Predictability::RTComponentModel") != null);
 		
 		Assert.assertTrue(model.getAppliedProfile("CHESS::ComponentModel") != null);
diff --git a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestCreateViews.java b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestCreateViews.java
index 61bfb33..2ecdadd 100644
--- a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestCreateViews.java
+++ b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestCreateViews.java
@@ -102,10 +102,10 @@
 		Assert.assertNotNull(deploymentViewPkg.getAppliedProfile("CHESS::Dependability::FailurePropagation"));
 		Assert.assertNotNull(deploymentViewPkg.getAppliedProfile("CHESS::Dependability::ThreatsPropagation"));
 		Assert.assertNotNull(deploymentViewPkg.getAppliedProfile("CHESS::Dependability::DependableComponent"));
-		Assert.assertNotNull(deploymentViewPkg.getAppliedProfile("CHESS::Dependability::FMEA"));
+		//Assert.assertNotNull(deploymentViewPkg.getAppliedProfile("CHESS::Dependability::FMEA"));
 		
-		Assert.assertNotNull(psmViewPkg.getAppliedProfile("CHESS::Predictability::DeploymentConfiguration::DeploymentConfAnalysis"));
-		Assert.assertNotNull(psmViewPkg.getAppliedProfile("CHESS::Predictability::TimingAnalysis"));
+		//Assert.assertNotNull(psmViewPkg.getAppliedProfile("CHESS::Predictability::DeploymentConfiguration::DeploymentConfAnalysis"));
+		//Assert.assertNotNull(psmViewPkg.getAppliedProfile("CHESS::Predictability::TimingAnalysis"));
 		
 		Assert.assertNotNull(systemViewPkg.getAppliedProfile("CHESS::Dependability::StateBased::StateBasedComponents"));
 		Assert.assertNotNull(systemViewPkg.getAppliedProfile("CHESS::Dependability::StateBased::FaultTolerance"));
@@ -118,6 +118,6 @@
 		
 		Assert.assertNotNull(depViewPkg.getAppliedProfile("CHESS::Dependability::StateBased::StateBasedAnalysis"));
 		Assert.assertNotNull(depViewPkg.getAppliedProfile("CHESS::Dependability::FailurePropagation"));
-		Assert.assertNotNull(depViewPkg.getAppliedProfile("CHESS::Dependability::FMEA"));
+		//Assert.assertNotNull(depViewPkg.getAppliedProfile("CHESS::Dependability::FMEA"));
 	}
 }
diff --git a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.contracts.feature_0.10.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.contracts.feature_0.10.0.201610211519.jar
deleted file mode 100644
index 4f42b44..0000000
--- a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.contracts.feature_0.10.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.feature_0.10.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.feature_0.10.0.201610211519.jar
deleted file mode 100644
index e1b015c..0000000
--- a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.feature_0.10.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.fla.feature_0.10.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.fla.feature_0.10.0.201610211519.jar
deleted file mode 100644
index ed27f13..0000000
--- a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.fla.feature_0.10.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.statebased.feature_0.10.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.statebased.feature_0.10.0.201610211519.jar
deleted file mode 100644
index 4b92b99..0000000
--- a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.statebased.feature_0.10.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.xtext.feature_0.10.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.xtext.feature_0.10.0.201610211519.jar
deleted file mode 100644
index a19c020..0000000
--- a/plugins/org.polarsys.chess.updatesite/features/org.polarsys.chess.xtext.feature_0.10.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.chessmlprofile_0.9.0.201507281729.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.chessmlprofile_0.9.0.201507281729.jar
deleted file mode 100644
index f2f4a93..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.chessmlprofile_0.9.0.201507281729.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.chessmlprofile_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.chessmlprofile_0.9.0.201610211519.jar
deleted file mode 100644
index 7da40ee..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.chessmlprofile_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.codegen.ada_0.9.0.201507281729.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.codegen.ada_0.9.0.201507281729.jar
deleted file mode 100644
index 0e6828d..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.codegen.ada_0.9.0.201507281729.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.codegen.ada_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.codegen.ada_0.9.0.201610211519.jar
deleted file mode 100644
index 06282d2..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.codegen.ada_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.commands_0.10.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.commands_0.10.0.201610211519.jar
deleted file mode 100644
index c17fed1..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.commands_0.10.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.commands_0.9.0.201507281729.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.commands_0.9.0.201507281729.jar
deleted file mode 100644
index e09806f..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.commands_0.9.0.201507281729.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.chessextension_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.chessextension_0.9.0.201610211519.jar
deleted file mode 100644
index a61fc73..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.chessextension_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.integration_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.integration_0.9.0.201610211519.jar
deleted file mode 100644
index 777203e..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.integration_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.profile_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.profile_0.9.0.201610211519.jar
deleted file mode 100644
index 7cd92b6..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.profile_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.transformations_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.transformations_0.9.0.201610211519.jar
deleted file mode 100644
index 567d18e..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.transformations_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.validation_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.validation_0.9.0.201610211519.jar
deleted file mode 100644
index ef0cae1..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.contracts.validation_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.core_0.9.0.201507281729.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.core_0.9.0.201507281729.jar
deleted file mode 100644
index 9e21db5..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.core_0.9.0.201507281729.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.core_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.core_0.9.0.201610211519.jar
deleted file mode 100644
index 229e529..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.core_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.discovery_0.9.0.201507281729.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.discovery_0.9.0.201507281729.jar
deleted file mode 100644
index 547c2cf..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.discovery_0.9.0.201507281729.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.discovery_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.discovery_0.9.0.201610211519.jar
deleted file mode 100644
index f827ffa..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.discovery_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.FPTC2FLABehavior_1.0.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.FPTC2FLABehavior_1.0.0.201610211519.jar
deleted file mode 100644
index 6cd207d..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.FPTC2FLABehavior_1.0.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.flamm_0.1.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.flamm_0.1.0.201610211519.jar
deleted file mode 100644
index 7bab79f..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.flamm_0.1.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.flaxml_0.1.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.flaxml_0.1.0.201610211519.jar
deleted file mode 100644
index b0df9c9..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.flaxml_0.1.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.transformations_0.1.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.transformations_0.1.0.201610211519.jar
deleted file mode 100644
index e3d5b1c..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla.transformations_0.1.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla_1.0.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla_1.0.0.201610211519.jar
deleted file mode 100644
index de525a9..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.fla_1.0.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.instance.view_0.0.1.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.instance.view_0.0.1.201610211519.jar
deleted file mode 100644
index 507e009..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.instance.view_0.0.1.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.m2m_0.8.0.201507281729.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.m2m_0.8.0.201507281729.jar
deleted file mode 100644
index 23eb62f..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.m2m_0.8.0.201507281729.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.m2m_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.m2m_0.9.0.201610211519.jar
deleted file mode 100644
index 870747a..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.m2m_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.monitoring_0.1.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.monitoring_0.1.0.201610211519.jar
deleted file mode 100644
index e744b73..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.monitoring_0.1.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.multicore_0.9.2.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.multicore_0.9.2.201610211519.jar
deleted file mode 100644
index 1af9256..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.multicore_0.9.2.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.service_0.10.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.service_0.10.0.201610211519.jar
deleted file mode 100644
index 6876ae1..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.service_0.10.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.service_0.9.0.201507281729.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.service_0.9.0.201507281729.jar
deleted file mode 100644
index 615d281..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.service_0.9.0.201507281729.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.statebased_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.statebased_0.9.0.201610211519.jar
deleted file mode 100644
index a3030dc..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.statebased_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.tabbedproperties_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.tabbedproperties_0.9.0.201610211519.jar
deleted file mode 100644
index d7db571..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.tabbedproperties_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.validator_0.10.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.validator_0.10.0.201610211519.jar
deleted file mode 100644
index 405a3f0..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.validator_0.10.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.validator_0.9.0.201507281729.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.validator_0.9.0.201507281729.jar
deleted file mode 100644
index 2d7dfc7..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.validator_0.9.0.201507281729.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.wizards_0.9.0.201507281729.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.wizards_0.9.0.201507281729.jar
deleted file mode 100644
index e20e361..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.wizards_0.9.0.201507281729.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.wizards_0.9.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.wizards_0.9.0.201610211519.jar
deleted file mode 100644
index 6b609d0..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.wizards_0.9.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.xtext.fladsl.ui_1.0.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.xtext.fladsl.ui_1.0.0.201610211519.jar
deleted file mode 100644
index 5998ed0..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.xtext.fladsl.ui_1.0.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.xtext.fladsl_1.0.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.xtext.fladsl_1.0.0.201610211519.jar
deleted file mode 100644
index 5f74f70..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.xtext.fladsl_1.0.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.xtext.global_1.0.0.201610211519.jar b/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.xtext.global_1.0.0.201610211519.jar
deleted file mode 100644
index 61167be..0000000
--- a/plugins/org.polarsys.chess.updatesite/plugins/org.polarsys.chess.xtext.global_1.0.0.201610211519.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.polarsys.chess.updatesite/site.xml b/plugins/org.polarsys.chess.updatesite/site.xml
index 22b5510..5e3ba03 100644
--- a/plugins/org.polarsys.chess.updatesite/site.xml
+++ b/plugins/org.polarsys.chess.updatesite/site.xml
@@ -3,23 +3,29 @@
    <description name="CHESS Polarsys 0.10.0" url="https://www.polarsys.org/chess/updatesite/0.10.0/">

       CHESS Polarsys 0.10.0 release

    </description>

-   <feature url="features/org.polarsys.chess.contracts.feature_0.10.0.201610211519.jar" id="org.polarsys.chess.contracts.feature" version="0.10.0.201610211519">

-      <category name="org.polarsys.chess.category"/>

-   </feature>

-   <feature url="features/org.polarsys.chess.feature_0.10.0.201610211519.jar" id="org.polarsys.chess.feature" version="0.10.0.201610211519">

-      <category name="org.polarsys.chess.category"/>

-   </feature>

-   <feature url="features/org.polarsys.chess.fla.feature_0.10.0.201610211519.jar" id="org.polarsys.chess.fla.feature" version="0.10.0.201610211519">

-      <category name="org.polarsys.chess.category"/>

-   </feature>

-   <feature url="features/org.polarsys.chess.statebased.feature_0.10.0.201610211519.jar" id="org.polarsys.chess.statebased.feature" version="0.10.0.201610211519">

-      <category name="org.polarsys.chess.category"/>

-   </feature>

-   <feature url="features/org.polarsys.chess.xtext.feature_0.10.0.201610211519.jar" id="org.polarsys.chess.xtext.feature" version="0.10.0.201610211519">

-      <category name="org.polarsys.chess.category"/>

-   </feature>

    <feature url="features/org.polarsys.chess.cdo.feature_0.9.0.qualifier.jar" id="org.polarsys.chess.cdo.feature" version="0.9.0.qualifier">

       <category name="org.polarsys.chess.category"/>

    </feature>

+   <feature url="features/org.polarsys.chess.contracts.feature_0.10.0.qualifier.jar" id="org.polarsys.chess.contracts.feature" version="0.10.0.qualifier">

+      <category name="org.polarsys.chess.category"/>

+   </feature>

+   <feature url="features/org.polarsys.chess.feature_0.10.0.qualifier.jar" id="org.polarsys.chess.feature" version="0.10.0.qualifier">

+      <category name="org.polarsys.chess.category"/>

+   </feature>

+   <feature url="features/org.polarsys.chess.fla.feature_0.10.0.qualifier.jar" id="org.polarsys.chess.fla.feature" version="0.10.0.qualifier">

+      <category name="org.polarsys.chess.category"/>

+   </feature>

+   <feature url="features/org.polarsys.chess.instanceview_0.10.0.qualifier.jar" id="org.polarsys.chess.instanceview" version="0.10.0.qualifier">

+      <category name="org.polarsys.chess.category"/>

+   </feature>

+   <feature url="features/org.polarsys.chess.mobius.feature_1.0.0.qualifier.jar" id="org.polarsys.chess.mobius.feature" version="1.0.0.qualifier">

+      <category name="org.polarsys.chess.category"/>

+   </feature>

+   <feature url="features/org.polarsys.chess.statebased.feature_0.10.0.qualifier.jar" id="org.polarsys.chess.statebased.feature" version="0.10.0.qualifier">

+      <category name="org.polarsys.chess.category"/>

+   </feature>

+   <feature url="features/org.polarsys.chess.xtext.feature_0.10.0.qualifier.jar" id="org.polarsys.chess.xtext.feature" version="0.10.0.qualifier">

+      <category name="org.polarsys.chess.category"/>

+   </feature>

    <category-def name="org.polarsys.chess.category" label="polarsys.chess"/>

 </site>

diff --git a/plugins/org.polarsys.chess.validator/src/org/polarsys/chess/validator/libs/ActionsLib.java b/plugins/org.polarsys.chess.validator/src/org/polarsys/chess/validator/libs/ActionsLib.java
index 44fa5e7..bc5aa16 100755
--- a/plugins/org.polarsys.chess.validator/src/org/polarsys/chess/validator/libs/ActionsLib.java
+++ b/plugins/org.polarsys.chess.validator/src/org/polarsys/chess/validator/libs/ActionsLib.java
@@ -32,6 +32,7 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.impl.EReferenceImpl;
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.edit.command.DeleteCommand;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.transaction.RollbackException;
@@ -51,9 +52,18 @@
 import org.eclipse.papyrus.commands.wrappers.EMFtoGMFCommandWrapper;
 import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
 import org.eclipse.papyrus.editor.PapyrusMultiDiagramEditor;
+import org.eclipse.papyrus.infra.core.resource.IModel;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
 import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
 import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
+import org.eclipse.papyrus.infra.ui.util.ServiceUtilsForActionHandlers;
 import org.eclipse.papyrus.uml.tools.listeners.PapyrusStereotypeListener;
+import org.eclipse.papyrus.uml.tools.model.ExtendedUmlModel;
+import org.eclipse.papyrus.uml.tools.model.UmlModel;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.uml2.uml.Behavior;
 import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.Comment;
@@ -74,8 +84,15 @@
 import org.eclipse.uml2.uml.Realization;
 import org.eclipse.uml2.uml.Stereotype;
 import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.internal.impl.ClassImpl;
+import org.eclipse.uml2.uml.resource.UMLResource;
 import org.polarsys.chess.chessmlprofile.ComponentModel.FunctionalPartition;
+import org.polarsys.chess.chessmlprofile.Core.CHESS;
 import org.polarsys.chess.chessmlprofile.Core.PSMPackage;
+import org.polarsys.chess.chessmlprofile.Core.CHESSViews.AnalysisView;
+import org.polarsys.chess.chessmlprofile.Core.CHESSViews.ComponentView;
+import org.polarsys.chess.chessmlprofile.Core.CHESSViews.DeploymentView;
+import org.polarsys.chess.chessmlprofile.Core.CHESSViews.PSMView;
 import org.polarsys.chess.chessmlprofile.Core.CHESSViews.RTAnalysisView;
 import org.polarsys.chess.chessmlprofile.Predictability.DeploymentConfiguration.HardwareBaseline.CH_HwProcessor;
 import org.polarsys.chess.chessmlprofile.Predictability.RTComponentModel.CHRtSpecification;
@@ -84,6 +101,7 @@
 import org.polarsys.chess.core.profiles.CHESSProfileManager;
 import org.polarsys.chess.core.util.CHESSProjectSupport;
 import org.polarsys.chess.core.util.uml.ModelError;
+import org.polarsys.chess.core.util.uml.ResourceUtils;
 import org.polarsys.chess.core.util.uml.UMLUtils;
 import org.polarsys.chess.core.views.ViewUtils;
 import org.polarsys.chess.service.gui.utils.CHESSEditorUtils;
@@ -160,6 +178,7 @@
 			}
 			return null;
 		}
+		
 	};
 
 	/** The port removal action. */
@@ -260,7 +279,6 @@
 			}
 			return null;
 		}
-
 	};
 
 	/** The remove realization operations action. */
@@ -466,6 +484,7 @@
 				}
 			}
 		}
+		
 	};
 
 
@@ -1146,89 +1165,107 @@
 	public static IAutomatedAction saAnalysisContextDeletionAction = new IAutomatedAction() {
 		private IStatus operationAborted = new Status(IStatus.ERROR,
 				Activator.PLUGIN_ID, Messages.operationAborted);
-		private Package psm = null;
-		private PSMPackage psmPackage = null;
 
 		@Override
 		public Command compile(Notification notification,
 				List<Notification> notificationList,
 				TransactionalEditingDomain domain) throws RollbackException {
+			
+			PSMPackage psmPackageStereoToDelete = null;
+			
 			Object notifier = notification.getNotifier();
 			
-			if (notifier instanceof Package && 
-					notification.getEventType() == 22 && 		// MODIFIED_STEREOTYPE
-					notification.getNewValue() instanceof PSMPackage) {
-				psm = (Package)notifier;
-				Stereotype psmPackageStereo = psm.getAppliedStereotype(Constants.CH_PsmPackage);				
-				if (psmPackageStereo != null) {
-					psmPackage = (PSMPackage)psm.getStereotypeApplication(psmPackageStereo);
-				}				
+			Package psmPackageToDelete = null;
+			org.eclipse.uml2.uml.Class oldAnalysisContextClass = null;
+			
+			Object feature = notification.getFeature();
+			
+			if (notifier instanceof SaAnalysisContext && notification.getNewValue()== null &&
+						notification.getOldValue() instanceof org.eclipse.uml2.uml.Class && notification.getEventType() == Notification.SET
+					&& (feature instanceof EReferenceImpl)	&& ((EReferenceImpl) feature).getName().equals("base_StructuredClassifier")
+					
+					){
+				//check if there is a PSMPackage which refer this SaAnalysisContext 
+				oldAnalysisContextClass = (org.eclipse.uml2.uml.Class) notification.getOldValue();
+				
+				PapyrusMultiDiagramEditor editor = (PapyrusMultiDiagramEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow()
+						.getActivePage().getActiveEditor();
+				
+				Resource res = null;
+				try {
+					res = ResourceUtils.getUMLResource(editor.getServicesRegistry());
+				} catch (ServiceException e) {
+					CHESSProjectSupport.CHESS_CONSOLE.println("Unable to retrieve the UML resource via the Service Registry");
+					e.printStackTrace();
+					return null;
+				}
+				Model model =  ResourceUtils.getModel(res);
+				
+				
+				CHESS chess =  (CHESS) model.getStereotypeApplication(model.getAppliedStereotype("CHESS::Core::CHESS"));
+				
+				PSMView psmView = chess.getPsmView();
+				Package psmViewPkg = psmView.getBase_Package();
+				
+				for (Package p : psmViewPkg.getNestedPackages()){
+					if (p.getAppliedStereotype("CHESS::Core::PSMPackage") != null){
+						PSMPackage psmPackageStero = (PSMPackage) p.getStereotypeApplication(p.getAppliedStereotype("CHESS::Core::PSMPackage"));
+						if (notifier.equals(psmPackageStero.getAnalysisContext())){
+							psmPackageStereoToDelete = psmPackageStero;
+							psmPackageToDelete = psmPackageStero.getBase_Package();
+						}
+					}
+				}
+			}
+			
+			// If the PSM Package related to this SaAnalysisContext does not exist (e.g. has been purged)
+			if (psmPackageStereoToDelete == null) {
 				return null;
 			}
-
-			if ((notifier instanceof Package 
-					&& notification.getEventType() == Notification.REMOVE) &&
-					notification.getFeature() instanceof EReference	&&
-					((EReference) notification.getFeature()).getName().equals("packagedElement")) {
-				
-				// check the package is stereotyped as RTAnalysisView
-				if (((Package)notifier).getAppliedStereotype(Constants.RT_ANALYSIS_VIEW) == null) {
-					return null;
-				}
-				
-				// If the PSM Package related to this SaAnalysisContext does not exist (e.g. has been purged)
-				if (psmPackage == null) {
-					return null;
-				}
-				
-				org.eclipse.uml2.uml.Class cl= (org.eclipse.uml2.uml.Class) notification.getOldValue();
-				String saAnalysisContextName = "";
-				if(cl.getName() != null) {
-					saAnalysisContextName = cl.getName();
-				}
-				String psmPackageName = "";
-				if (psm!= null && psm.getName() != null) {
-					psmPackageName = psm.getName();
-				}
-		
-				// Ask user if he is sure he wants to delete this saAnalysisContext
-				// warning that the related PSM Package will be deleted
-				PapyrusMultiDiagramEditor editor = CHESSEditorUtils.getCHESSEditor();																		
-
-				if (editor == null) {							
-					return null;
-				}
-
-				MessageDialog md = CHESSEditorUtils.showConfirmDialog(editor, "Confirm", 
-						"Do you want to remove also the PSM Package: "+psmPackageName+" related to the SaAnalysisContext: "+saAnalysisContextName+" ?");
-
-				int result = md.open();
-				
-				// OK
-				if (result == 0) {
-					Model umlModel = cl.getModel();
-					if (psmPackage != null) {
-						Command cmd = deletePackage(umlModel, psm);
-						psm = null;
-						return cmd;
-					}
-					return null;
-				}
-				// CANCEL
-				if (result == 2) {
-					CHESSProjectSupport.CHESS_CONSOLE.println(operationAborted.getMessage());
-					psm = null;
-					throw new RollbackException(operationAborted);
-				}
-				// NO
-				if (result == 1) {
-					psm = null;
-					return null;		
-				}
-				
-				return null;					
+			
+			String saAnalysisContextName = "";
+			if(oldAnalysisContextClass.getName() != null) {
+				saAnalysisContextName = oldAnalysisContextClass.getName();
 			}
-			return null;
+			String psmPackageName = "";
+			if (psmPackageToDelete!= null && psmPackageToDelete.getName() != null) {
+				psmPackageName = psmPackageToDelete.getName();
+			}
+	
+			// Ask user if he is sure he wants to delete this saAnalysisContext
+			// warning that the related PSM Package will be deleted
+			PapyrusMultiDiagramEditor editor = CHESSEditorUtils.getCHESSEditor();																		
+
+			if (editor == null) {							
+				return null;
+			}
+			
+			MessageDialog md = CHESSEditorUtils.showConfirmDialog(editor, "Confirm", 
+					"Do you want to remove also the PSM Package: "+psmPackageName+" related to the SaAnalysisContext: "+saAnalysisContextName+" ?");
+
+			int result = md.open();
+			
+			// OK
+			if (result == 0) {
+				Model umlModel = oldAnalysisContextClass.getModel();
+				if (psmPackageToDelete != null) {
+					Command cmd = deletePackage(umlModel, psmPackageToDelete);
+					
+					return cmd;
+				}
+				return null;
+			}
+			// CANCEL
+			if (result == 2) {
+				CHESSProjectSupport.CHESS_CONSOLE.println(operationAborted.getMessage());
+				throw new RollbackException(operationAborted);
+			}
+			// NO
+			if (result == 1) {
+				return null;		
+			}
+			return null;					
+		
 		}
 
 
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 33d197b..cb7980c 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -29,6 +29,12 @@
     <module>fla/org.polarsys.chess.fla.transformations</module>
     <module>fla/org.polarsys.chess.xtext.fladsl</module>
     <module>fla/org.polarsys.chess.xtext.fladsl.ui</module>
+	<module>mobius/org.polarsys.chess.mobius</module>
+    <module>mobius/org.polarsys.chess.mobius.feature</module>
+    <module>mobius/org.polarsys.chess.mobius.model</module>
+    <module>mobius/org.polarsys.chess.mobius.model.edit</module>
+    <module>mobius/org.polarsys.chess.mobius.model.editor</module>
+    <module>mobius/org.polarsys.chess.mobius.preferences</module>
     <module>org.polarsys.chess.OSSImporter</module>
     <module>org.polarsys.chess.cdo</module>
     <module>org.polarsys.chess.cdo.feature</module>
diff --git a/plugins/sba/org.polarsys.chess.statebased/ATL/CHESS2IM.atl b/plugins/sba/org.polarsys.chess.statebased/ATL/CHESS2IM.atl
index d4ed825..0753ccc 100644
--- a/plugins/sba/org.polarsys.chess.statebased/ATL/CHESS2IM.atl
+++ b/plugins/sba/org.polarsys.chess.statebased/ATL/CHESS2IM.atl
@@ -1,1865 +1,1876 @@
------------------------------------------------------------------------
--- Copyright (C) 2015-2016                                           --
--- University of Firenze, Italy                                      --
---                                                                   --
--- All rights reserved. This program and the accompanying materials  --
--- are made available under the terms of the Eclipse Public License  --
--- v1.0 which accompanies this distribution, and is available at     --
--- http://www.eclipse.org/legal/epl-v10.html                         --
---                                                                   --
--- Contributors:                                                     --
--- Leonardo Montecchi 	lmontecchi@unifi.it                          --
------------------------------------------------------------------------
-
--- @path IM=/org.polarsys.chess.statebased/metamodels/IM2.ecore
--- @path CHESS=/org.polarsys.chess.chessmlprofile/model/chessmlprofile.ecore
--- @nsURI MARTE=http://www.eclipse.org/papyrus/MARTE/1
--- @nsURI UML=http://www.eclipse.org/uml2/4.0.0/UML
--- @nsURI CHESS=http://CHESS
--- @nsURI SYSML=http://www.eclipse.org/papyrus/0.7.0/SysML
-
-module CHESS2IM;
-create OUT : IM from IN1 : CHESS, IN2 : UML, IN3 : MARTE, IN4 : SYSML;
-
-helper def: umlInstancesAll : Sequence(UML!InstanceSpecification) = Sequence{}; 	--All the InstanceSpecification of the considered platform
-helper def: umlInstancesConnectors : Set(UML!InstanceSpecification) = Set{};		--Instances of connectors
-helper def: umlInstancesBlocks : Set(UML!InstanceSpecification) = Set{}; 			--Instances of components/blocks
-helper def: umlInstancesStereo : Set(UML!InstanceSpecification) = Set{}; 			--Instances that have dependability information
-helper def: umlInstancesRelevant : Set(UML!InstanceSpecification) = Set{}; 			--Instances that are relevant for the analysis
-helper def: umlAllocations : Set(MARTE!Assign) = Set{};
-
---Stereotypes that can be used on Blocks/Components for state based analysis
-helper def: sbaStereotypes : Sequence(OclAny) = Sequence{CHESS!SimpleStochasticBehavior, CHESS!FLABehavior, CHESS!ErrorModelBehavior,
-														 CHESS!StatelessSoftware, CHESS!StatefulSoftware, CHESS!StatelessHardware, CHESS!StatefulHardware};
---Stereotypes that can be used on Transitions of an Error Model
-helper def: sbaTransitions : Sequence(OclAny) = Sequence{CHESS!Failure, CHESS!InternalPropagation, CHESS!InternalFault};														 
-helper def: flaNoFailure : String = 'noFailure';
-helper def: flaWildcard : String = 'wildcard';
-													 
-helper def: flaRules : Map(IM!Component, Map(String, IM!Error)) = Map{};			--Map to obtain the list of flarules for a component, and the corresponding IM!Error elements
-
-helper def: errmodErrorMap : Map(TupleType(e: UML!Vertex, cc: IM!Component), IM!Error) = Map{};
-
---rule to transform the CHESS!StateBasedAnalysis into an IM!Sistema
-rule SBA {
-	from 
-		sba : CHESS!StateBasedAnalysis
-	do {
-		thisModule.System(sba.platform->first().base_Package);
-		
-		--Handle metrics
-		if (sba.WhichMeasure = 'Reliability') {
-			thisModule.Reliability(sba);
-		}else if (sba.WhichMeasure = 'Availability') {
-			thisModule.Availability(sba);
-		}else if (sba.WhichMeasure = 'PFD') {
-			thisModule.PFD(sba);
-		}else{
-			---TODO: others?
-		}
-	}
-}
-
-unique lazy rule System {
-	from
-		platform : UML!Package	
-	--sba : CHESS!StateBasedAnalysis
-		--at the moment is it implied that there is only a StateBasedAnalysis in the model
-	using {
-		--instances of interest are:
-		--> SET1: all the instances included in the target resource platform, plus
-		--> SET2: all the instances involved in allocations mentioned in the target resource platform, plus
-		--> SET3: all the instances in the same resource platform as those involved in allocations
-		instances : Set(UML!InstanceSpecification) = 
-			UML!InstanceSpecification.allInstances()->select(i | i.refImmediateComposite() = platform)		--SET1
-			->union(platform.getAllocationsInstances())														--SET2
-			->union(UML!InstanceSpecification.allInstances()
-				->select(i | platform.getAllocationsInstances()
-								->collect(ai | ai.refImmediateComposite())
-								->includes(i.refImmediateComposite()))										--SET3
-			)->asSet();																						--Removes duplicates
-			
-		comments : Sequence(UML!Comment) = instances->collect(i | i.ownedComment)->flatten();
-		instSystem : UML!InstanceSpecification = platform.ownedElement->first();
-	} 
-	to
-		s : IM!Sistema (
-			Name <- platform.name
-		)
-	do {
-		--Filter out and categorize relevant CHESS elements
-		thisModule.umlInstancesAll <- instances;
-		thisModule.umlInstancesConnectors <- instances->select(i | i.classifier.isEmpty());
-		thisModule.umlInstancesBlocks <- instances->select(i | not i.classifier.isEmpty());
-		thisModule.umlAllocations <- MARTE!Assign.allInstances()->select(a | comments.includes(a.base_Comment));
-		
-		thisModule.umlInstancesBlocks <- thisModule.umlInstancesAll->select(i | thisModule.umlInstancesConnectors.excludes(i));
-		thisModule.umlInstancesStereo <- thisModule.umlInstancesBlocks->select(i | i.getSBAStereotype() <> OclUndefined);
-
-		--Instances that are relevant for the analysis are:
-		--> Those that are constituents of the instance representing the target platform, plus
-		--> Those that are constituents of the instances representing the platforms that own the instances involved in allocations
-		thisModule.umlInstancesRelevant <- instSystem.findSBAConstituents()
-												->union(platform.getAllocationsInstances()
-															->collect(ai | ai.refImmediateComposite())
-															->collect(im | im.ownedElement->first().findSBAConstituents()))->flatten();
-			
-		--Generate IM!Component elements, failure modes, and what can be done immediately
-		for(i in thisModule.umlInstancesRelevant) {
-			s.components <- s.components->including(
-				thisModule.InstanceToComponent(i)
-			);
-
-			
-			if(i.getSBAStereotype().oclType() = CHESS!SimpleStochasticBehavior) {
-				thisModule.SimpleStochasticBehaviorToComponent(i);
-			}else if(i.getSBAStereotype().oclType() = CHESS!FLABehavior){
-				thisModule.FLASpecificationToComponent(i);
-			}else if(i.getSBAStereotype().oclType() = CHESS!ErrorModelBehavior) {
-				thisModule.ErrorModelToComponent(i);
-			}
-		}
-
-		--Generate external faults
-		for(i in thisModule.umlInstancesRelevant) {
-			thisModule.PopulateExternalFaults(i);	
-		}
-	
-		--Generate FGE, i.e., connect external faults
-		for(i in thisModule.umlInstancesRelevant) {
-			if(i.getSBAStereotype().oclType() = CHESS!SimpleStochasticBehavior) {
-				thisModule.SimpleStochasticBehavior_FGE(i);
-			}else if(i.getSBAStereotype().oclType() = CHESS!FLABehavior){
-				thisModule.FLASpecification_FGE(i);
-			}else if(i.getSBAStereotype().oclType() = CHESS!ErrorModelBehavior) {
-				thisModule.ErrorModel_FGE(i);
-			}
-		}
-		
-		--Process allocations
-		for(a in platform.getAllocations()) {
-			thisModule.Allocation(a);
-		}
-		
-		--Set FGE Backlinks
-		for(fge in IM!FaultsGenerateErrors.allInstances()) {
-			thisModule.setFGEBackLinks(fge.PropagationLogic, fge);	
-		}
-		--Set EPF Backlinks
-		for(epf in IM!ErrorsProducesFailures.allInstances()) {
-			thisModule.setEPFBackLinks(epf.PropagationLogic, epf);	
-		}
-		--Set IP Backlinks
-		for(ip in IM!InternalPropagation.allInstances()) {
-			thisModule.setIPBackLinks(ip.PropagationLogic, ip);	
-		}
-
-		--Process repair activities
-		for(r in CHESS!Repair.allInstances()) {
-			thisModule.RepairActivity(r);
-		}
-	}
-}
-
-unique lazy rule InstanceToComponent {
-	from
-		inst : UML!InstanceSpecification
-	to 
-		c : IM!Component (
-			Name <- inst.name
-		)		
-}
-
---------------------------------------------------------------------
--- Rules to project component instances to IM!Component elements
---------------------------------------------------------------------
-
-rule SimpleStochasticBehaviorToComponent(inst : UML!InstanceSpecification) {
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		st : CHESS!SimpleStochasticBehavior = inst.getSBAStereotype();
-		tmpFailures : Set(TupleType(fm : String, p : Real)) = OclUndefined;
-		tmpError : IM!Error = OclUndefined;
-		tmpFailureMode : IM!FailureMode = OclUndefined;
-		myFailureModes : String = if st.failureModesDistribution.oclIsUndefined() then '' else st.failureModesDistribution endif;
-		eSeq : Sequence(IM!Error) = Sequence{};
-		tmpFGE : IM!FaultsGenerateErrors = OclUndefined;
-	}
-	to
-		fault : IM!InternalFault (
-			Component <- c,
-			Name <- inst.name + '_ift',
-			PermanentProbability <- 1,
-			Occurrence <- st.failureOccurrence.parseDistribution(),
-			TransientDuration <- thisModule.Deterministic(0)
-		)
-	do {
-		c.Faults = c.Faults.including(fault);
-		
-		for(slot in inst.getPortSlots()->select(p | p.hasOutputFlow())) {
-			tmpFailures <- myFailureModes.parseFailureModesForPort(slot.name);
-				
-			tmpError <- thisModule.AddError('e_' + slot.name, c);
-			eSeq <- eSeq.including(tmpError);
-			for(fmSpec in tmpFailures) {
-				thisModule.AddEPF(
-					tmpError,
-					thisModule.AddFailureMode(slot.name + '.' + fmSpec.fm, c),
-					thisModule.Deterministic(0),
-					1,
-					fmSpec.p
-				);
-			}
-		}
-		
-		tmpFGE <- thisModule.AddFGE(Sequence{fault}, eSeq, thisModule.Deterministic(0), 1, 1);
-		tmpFGE.PropagationLogic <- thisModule.FEXP_Fault(fault);
-		tmpFGE.PropagationLogicStringFormat <- tmpFGE.PropagationLogic.toString();
-
-		c.FaultsGeneratesErrors = c.FaultsGeneratesErrors.including(tmpFGE);
-		
-		if(not st.repairDelay.oclIsUndefined()) {
-			thisModule.SimpleStochasticBehaviorRepair(inst);	
-		}
-	}
-}
---This is called only if repairDelay is not empty
-lazy rule SimpleStochasticBehaviorRepair {
-	from  
-		inst : UML!InstanceSpecification
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst); 		
-	}
-	to 
-		repair : IM!RepairActivity (
-			Target <- c,
-			Name <- inst.name + '_repair',
-			Duration <- inst.getSBAStereotype().repairDelay.parseDistribution(),
-			SuccessProbability <- 1.0,
-			When <- se
-		),
-		se : IM!ScheduleExpression
-		(
-			T <- si
-		),
-		si : IM!ScheduleExpressionImmediately
-	do {
-		se.EX <- thisModule.SCHEXP_FailureModesCollection(c.FailureModes);	
-	}
-}
-
-rule FLASpecificationToComponent(inst : UML!InstanceSpecification) {
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		st : CHESS!FLABehavior = inst.getSBAStereotype();
-		flaRules : Sequence(String) = st.fptc.regexReplaceAll('FLA:', ' ').trim().split(';');
-		tmpLeft : String = OclUndefined;
-		tmpRight : String = OclUndefined;
-		tmpFailures : Sequence(String) = OclUndefined;
-		errorMap : Map(String,IM!Error) = Map{};
-		tmpError : IM!Error = OclUndefined;
-		tmpEPF : IM!ErrorsProducesFailures = OclUndefined;
-		fToPropagate : Sequence(IM!FailureMode) = Sequence{};
-		j : Integer = 0;
-	}
-	
-	do {
-		--For every line of the FLA specification
-		for(spec in flaRules) {
-			j <- j+1;
-			tmpError <- thisModule.AddError('e_'+j,c);
-			
-			tmpRight <- spec.trim().split('->')->last().trim();			--Get right hand side
-			tmpFailures <- tmpRight.split(',');							--Get the different failures in the right hand side
-			
-			--For every failure in the right side of the rule
-			fToPropagate <- Sequence{};
-			for(failure in tmpFailures) {
-				--If it is not the 'noFailure' element
-				if(failure.indexOf('.' + thisModule.flaNoFailure) = -1) {
-					--If the failure mode does not exist already
-					if(not c.hasFailureMode(failure)) {
-						thisModule.AddFailureMode(failure, c);
-					}
-					fToPropagate <- fToPropagate.including(
-						c.FailureModes->select(f | f.localName = failure)->first()
-					);
-				}
-			}
-			
-			--If the set of failure modes to propagate for this rule
-			--is not empty, then create an EPF element
-			if(not fToPropagate.isEmpty()) {
-				tmpEPF <- thisModule.AddFLARuleEPF(tmpError);
-				tmpEPF.Destination <- fToPropagate;
-			}
-
-		}
-	}		
-}
-
-rule ErrorModelToComponent(inst : UML!InstanceSpecification) {
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		st : CHESS!ErrorModelBehavior = inst.getSBAStereotype();
-		errorModel : CHESS!ErrorModel = st.errorModel->first();
-		states : Sequence(UML!State) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(UML!State));
-		pseudo : Sequence(CHESS!Pseudostate) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(CHESS!Pseudostate));
-		transitions : Sequence(UML!Transition) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(UML!Transition));
-		tmpStereotype : OclAny = OclUndefined;
-		tmpExternalFaults : String = OclUndefined;
-	}
-	do {	
-		--Scan all CHESS!Failure elements in the error model,
-		--to create the needed IM!FailureMode elements
-		for(tr in transitions) {
-			tmpStereotype <- tr.getFailureStereotype();
-			if(not tmpStereotype.oclIsUndefined()) {
-				for(f in tmpStereotype.mode) {
-					--If it is not the 'noFailure' element
-					if(f.indexOf('.' + thisModule.flaNoFailure) = -1) {
-						--If the failure mode does not exist already
-						if(not c.hasFailureMode(f)) {
-							thisModule.AddFailureMode(f, c);
-						}
-					}
-				}
-			}
-		}
-		
-		--Transform ErrorModel States
-		for(s in states) {
-			thisModule.ErrorModelStateToError(s,inst);
-		}
-		
-		--Transform ErrorModel Pseudostates (choice)
-		for(s in pseudo->select(p | p.kind = #choice)) {
-			thisModule.ErrorModelStateToError(s,inst);
-		}
-		
-		--Transform ErrorModel <<Failure>> Transitions
-		for(tr in transitions) {
-			tmpStereotype <- tr.getSBAStereotype();
-			if(tmpStereotype.oclIsTypeOf(CHESS!Failure)) {		
-				thisModule.AddEPFFromErrorModelFailure(tmpStereotype,inst);
-			}
-		}
-				
-		--<<InternalFault>> become IM!InternalFault
-		for(tr in transitions) {
-			tmpStereotype <- tr.getSBAStereotype();
-			if(tmpStereotype.oclIsTypeOf(CHESS!InternalFault)) {
-				thisModule.InternalFault(tmpStereotype,inst);
-			}
-		}
-		
-		--Transform ErrorModel <<InternalPropagation>> Transitions,
-		--but only those for which the 'externalFaults' attribute is empty.
-		--(for the others all the external faults need to be in place)
-		for(tr in transitions) {
-			tmpStereotype <- tr.getSBAStereotype();
-			if(tmpStereotype.oclIsTypeOf(CHESS!InternalPropagation)) {
-				if(tmpStereotype.oclIsTypeOf(CHESS!InternalFault)) {
-					--Do nothing (processed elsewhere)				
-				}else{
-					--Match <<InternalPropagation>> stereotype only
-					tmpExternalFaults <- tmpStereotype.externalFaults;
-					if(tmpExternalFaults.oclIsUndefined()) {
-						thisModule.InternalPropagation(tmpStereotype,inst);
-					}
-				}
-			}
-		}
-	}
-}
-
---------------------------------------------------------------------
--- Rule to generate external faults for component instances
---------------------------------------------------------------------
-
-rule PopulateExternalFaults(inst : UML!InstanceSpecification) {
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		inPorts : Set(UML!Slot) = inst.getPortSlots()->select(p | p.hasInputFlow());
-		faultName : String = OclUndefined;
-		connPort : UML!Slot = OclUndefined;
-		connComp : IM!Component = OclUndefined;
-		tmpExternalFault : IM!ExternalFault = OclUndefined;
-	}	
-	do {
-		for(p in inPorts) {
-			--Find connected port
-			connPort <- p.getSBAConnections()->first();
-			--Find connected component (slot owner)
-			if(not connPort.oclIsUndefined()) {
-				connComp <- thisModule.InstanceToComponent(connPort.refImmediateComposite());
-				for(f in connComp.FailureModes->select(fm | fm.getPortName() = connPort.name)) {
-					faultName <- f.Name.split('\\.')->last();
-					--If the external faults has not already been added then add it
-					if(c.Faults->select(ft | ft.Name = connComp.Name + '_' + f)->isEmpty()) {				
-						tmpExternalFault <- thisModule.AddExternalFault(p.name + '.' + faultName, inst);
-						tmpExternalFault.Source <- f;
-					}
-				}
-			}
-		}
-	}
-}
-
---------------------------------------------------------------------
--- Rule to generate FGE elements
---------------------------------------------------------------------
-rule SimpleStochasticBehavior_FGE(inst : UML!InstanceSpecification) {
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		fge : IM!FaultsGenerateErrors = OclUndefined;
-		externals : Sequence(IM!Fault) = c.Faults->select(ft | ft.oclIsTypeOf(IM!ExternalFault));
-	}
-	do {		
-		--FGE for external faults
-		if(externals->size() > 0) {
-			fge <- thisModule.AddFGE(externals, c.Errors, 'det(0)'.parseDistribution(), 1, 1);
-			fge.PropagationLogic <- thisModule.FEXP_MultiOr(
-				externals->collect(f | thisModule.FEXP_Fault(f))
-			);
-			fge.PropagationLogicStringFormat <- fge.PropagationLogic.toString();
-		}
-	}
-}
-
-rule FLASpecification_FGE(inst : UML!InstanceSpecification) {
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		st : CHESS!FLABehavior = inst.getSBAStereotype();
-		flaRules : Sequence(String) = st.fptc.regexReplaceAll('FLA:', ' ').trim().split(';');
-		tmpLeft : String = OclUndefined;
-		tmpRight : String = OclUndefined;
-		tmpFaults : Sequence(String) = OclUndefined;
-		tmpError : IM!Error = OclUndefined;
-		fExpression : IM!FaultsExpressionNode = OclUndefined;
-		fSources : Set(IM!Fault) = Set{};
-		selFaults : Sequence(String) = OclUndefined;
-		tmpExpressions : Sequence(IM!FaultsExpressionNode) = Sequence{};
-		j : Integer = 0;
-		faultPort : String = OclUndefined;
-		faultMode : String = OclUndefined;
-		tmpFGE : IM!FaultsGenerateErrors = OclUndefined;
-	}
-	
-	do {
-		--For every line of the FLA specification
-		for(spec in flaRules) {
-			j <- j+1;
-			tmpError <- c.Errors->select(e | e.localName = 'e_'+j);
-			
-			tmpLeft <- spec.trim().split('->')->first().trim();			--Get right hand side
-			tmpFaults <- tmpLeft.split(',');							--Get the different failures in the right hand side
-			
-			--For every fault in the left side of the rule
-			tmpExpressions <- Sequence{};
-			for(fault in tmpFaults) {
-				faultPort <- fault.split('\\.')->first();
-				faultMode <- fault.split('\\.')->last();
-								
-				if(faultMode = thisModule.flaNoFailure) {
-					selFaults <- c.Faults->select(ft | ft.getPortName() = faultPort);
-					fExpression <- thisModule.FEXP_MultiOr(
-						selFaults->collect(f | thisModule.FEXP_Fault(f))
-					);
-					fExpression <- thisModule.FEXP_Not(fExpression);
-				}else if(faultMode = thisModule.flaWildcard) {
-					selFaults <- c.Faults->select(ft | ft.getPortName() = faultPort); 
-					fExpression <- thisModule.FEXP_MultiOr(
-						selFaults->collect(f | thisModule.FEXP_Fault(f))
-					);
-				}else{
-					selFaults <- c.Faults->select(ft | ft.localName = fault);
-					fExpression <- thisModule.FEXP_Fault(
-						selFaults->first()
-					);
-				}
-				tmpExpressions <- tmpExpressions->append(fExpression);
-			}
-			fExpression <- thisModule.FEXP_MultiAnd(tmpExpressions);
-			
-			tmpFGE <- thisModule.AddFGE(selFaults, tmpError, 'det(0)'.parseDistribution(), 1, 1);
-			fExpression.faultsGenerateErrors <- tmpFGE;
-			tmpFGE.PropagationLogic <- fExpression;
-			tmpFGE.PropagationLogicStringFormat <- fExpression.toString();
-		}
-	}		
-}
-
-rule ErrorModel_FGE(inst : UML!InstanceSpecification) {
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		st : CHESS!ErrorModelBehavior = inst.getSBAStereotype();
-		errorModel : CHESS!ErrorModel = st.errorModel->first();
-		states : Sequence(UML!State) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(UML!State));
-		pseudo : Sequence(CHESS!Pseudostate) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(CHESS!Pseudostate));
-		transitions : Sequence(UML!Transition) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(UML!Transition));
-		tmpStereotype : OclAny = OclUndefined;
-		tmpExternalFaults : String = OclUndefined;
-		tmpFGE : IM!FaultsGenerateErrors = OclUndefined;
-		tmpIP : IM!InternalPropagation = OclUndefined;
-		tmpFEXP : IM!FaultsExpressionNode = OclUndefined;
-		tmpEEXP : IM!ErrorsExpressionNode = OclUndefined;
-	}
-	do {
-		--Transform ErrorModel <<InternalPropagation>> Transitions,
-		--for which the 'externalFaults' attribute is *not* empty.
-		--(the others have been processed previously in rule ErrorModelToComponent)
-		for(tr in transitions) {
-			tmpStereotype <- tr.getSBAStereotype();
-			if(tmpStereotype.oclIsTypeOf(CHESS!InternalPropagation)) {
-				if(tmpStereotype.oclIsTypeOf(CHESS!InternalFault)) {
-					--Do nothing (processed elsewhere)				
-				}else{
-					--Match <<InternalPropagation>> stereotype only
-					if(tmpStereotype.externalFaults.oclIsUndefined()) {
-						--Do nothing (processed elsewhere)
-					}else{
-						--Process InternalPropagation that have a value
-						--in the externalFaults attribute
-						--Set a default for the delay and weight
-						if(tmpStereotype.delay.oclIsUndefined()) {
-							tmpStereotype.delay <- 'det(0)';	
-						}
-						if(tmpStereotype.weight.oclIsUndefined()) {
-							tmpStereotype.weight <- '1';	
-						}
-						
-						if(tr.source.isInitialState()) {
-							tmpExternalFaults <- tmpStereotype.externalFaults;
-							tmpFEXP <- thisModule.FEXP_ParseString(tmpExternalFaults, inst);
-							tmpFGE <- thisModule.AddFGE(
-								tmpFEXP.faultsList(),
-								thisModule.errmodErrorMap->get(Tuple{e=tr.target, cc=c}),
-								tmpStereotype.delay.parseDistribution(),
-								1,
-								tmpStereotype.weight.toReal()
-							);
-							tmpFEXP.faultsGenerateErrors <- tmpFGE;
-							tmpFGE.PropagationLogic <- tmpFEXP;
-							tmpFGE.PropagationLogicStringFormat <- tmpFEXP.toString();
-						}
-						else{
-							thisModule.InternalPropagation(tmpStereotype,inst);
-						}
-					}
-				}
-			}
-		}
-	}
-}
-
-
-lazy rule AddExternalFault {
-	from
-		fault : String,
-		inst : UML!InstanceSpecification
-	to 
-		xft : IM!ExternalFault (
-			Component <- thisModule.InstanceToComponent(inst),
-			Name <- inst.name + '_xft_' + fault
-		)
-}
-
-lazy rule ErrorModelStateToError {
-	from 
-		state : UML!Vertex,
-		inst : UML!InstanceSpecification
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-	}
-	to
-		err : IM!Error (
-			Name <- inst.name + '_' + state.name,
-			Component <- c
-		)
-	do {
-		thisModule.errmodErrorMap <- thisModule.errmodErrorMap->including(Tuple{e=state, cc=c}, err);
-	}
-}
-
-lazy rule InternalFault {
-	from
-		chIntFault : CHESS!InternalFault,
-		inst : UML!InstanceSpecification
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);		
-	}
-	to
-		ift : IM!InternalFault (
-			Name <- c.Name + '_ift_' + (c.Faults->select(f | f.oclIsKindOf(IM!InternalFault))->size()+1),
-			Occurrence <- chIntFault.occurrence.parseDistribution(),
-			PermanentProbability <- 1,
-			Component <- c,
-			TransientDuration <- thisModule.Deterministic(0)
-		),
-		fge : IM!FaultsGenerateErrors (
-			Name <- c.Name + '_fge_' + (c.FaultsGeneratesErrors->size()+1),
-			Component <- c,
-			Source <- Sequence{ift},
-			Destination <- thisModule.errmodErrorMap->get(Tuple{e=chIntFault.base_Transition.target, cc=c}),
-			Weight <- 1,
-			PropagationProbability <- 1,
-			ActivationDelay <- thisModule.Deterministic(0),
-			PropagationLogic <- thisModule.FEXP_Fault(ift),
-			PropagationLogicStringFormat <- fge.PropagationLogic.toString()
-		)
-	do {
-		--Workaround for the DEEM simulator crashing when InternalFaults
-		--with zero delay are present in the model
-		if(ift.Occurrence.oclIsTypeOf(IM!Deterministic)) {
-			if(ift.Occurrence.Value = 0) {
-				ift.Occurrence.Value <- '1e-100'.toReal();
-			}
-		}
-	}
-}
-
-lazy rule InternalPropagation {
-	from 
-		chIntProp : CHESS!InternalPropagation,
-		inst : UML!InstanceSpecification
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		myDelay : String = if chIntProp.delay.oclIsUndefined() then 'det(0)' else chIntProp.delay endif;
-		myWeight : Real = if chIntProp.weight.oclIsUndefined() then 1 else chIntProp.weight.toReal() endif;
-	}
-	to
-		imIntProp : IM!InternalPropagation (
-			Component <- c,
-			Name <- c.Name + '_intprop_' + (c.InternalPropagation->size()+1),
-			Source <- Sequence{thisModule.errmodErrorMap->get(Tuple{e=chIntProp.base_Transition.source, cc=c})},
-			Destination <- Sequence{thisModule.errmodErrorMap->get(Tuple{e=chIntProp.base_Transition.target, cc=c})},
-			PropagationProbability <- 1,
-			PropagationDelay <- myDelay.parseDistribution(),
-			Weight <- myWeight,
-			PropagationLogic <- thisModule.EEXP_Error(imIntProp.Source->first()),
-			PropagationLogicStringFormat <- imIntProp.PropagationLogic.toString(),
-			FaultGuard <- thisModule.FEXP_ParseString(chIntProp.externalFaults, inst)
-		)
-}
-
-rule AddFailureMode(name : String, c : IM!Component) {
-	to 
-		fm : IM!FailureMode (
-			Name <- c.Name + '_' + name
-		)
-	do {
-		c.FailureModes <- c.FailureModes->append(fm);
-	
-		fm;
-	}
-}
-
-rule AddError(name : String, c : IM!Component) {
-	to
-		e : IM!Error (
-			Name <- c.Name + '_' + name,
-			Component <- c
-		)
-	do {
-		e;
-	}
-}
-
-lazy rule AddEPFFromErrorModelFailure {
-	from
-		f : CHESS!Failure,
-		inst : UML!InstanceSpecification
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		eSource : IM!Error = thisModule.errmodErrorMap->get(Tuple{e=f.base_Transition.source, cc=c});
-		myDelay : String = if f.delay.oclIsUndefined() then 'det(0)' else f.delay endif;
-		myWeight : Real = if f.weight.oclIsUndefined() then 1 else f.weight.toReal() endif;
-	}
-	to
-		epf : IM!ErrorsProducesFailures (
-			Name <- c.Name + '_epf_' + (c.ErrorsGeneratesFailures->size()+1),
-			Source <- Sequence{eSource},
-			Destination <- c.FailureModes->select(fm | f.mode->includes(fm.localName)),
-			Component <- c,
-			PropagationDelay <- myDelay.parseDistribution(),
-			PropagationProbability <- 1,
-			Weight <- myWeight,
-			PropagationLogic <- thisModule.EEXP_Error(eSource),
-			PropagationLogicStringFormat <- epf.PropagationLogic.toString() 
-		)
-	do {
-		epf;
-	}	
-}
-
-rule AddFLARuleEPF(e : IM!Error) {
-	to
-		epf : IM!ErrorsProducesFailures (
-			Name <- e.Name + '_epf',
-			Source <- Sequence{e},
-			Destination <- Sequence{},
-			Component <- e.Component,
-			PropagationDelay <- thisModule.Deterministic(0),
-			PropagationProbability <- 1,
-			Weight <- 1,
-			PropagationLogic <- thisModule.EEXP_Error(e),
-			PropagationLogicStringFormat <- epf.PropagationLogic.toString()
-		)
-	do{
-		epf;
-	}
-}
-
-rule AddFGE(f : Sequence(IM!Fault), e : Sequence(IM!Error), delay : IM!Distribution, p : Real, weight : Real) {
-	using {
-		c : IM!Component = f->first().Component;
-	}
-	to
-		fge : IM!FaultsGenerateErrors (
-			Name <- c.Name + '_fge_' + (c.FaultsGeneratesErrors->size()+1),
-			Component <- c,
-			Source <- f,
-			Destination <- e,
-			ActivationDelay <- delay,
-			PropagationProbability <- p,
-			Weight <- weight
-		)
-	do {
-		fge;	
-	}
-}
-
-rule AddEPF(e : IM!Error, fm : IM!FailureMode, delay : IM!Distribution, p : Real, weight : Real) {
-	using {
-		c : IM!Component = fm.Component;			
-	}
-	to 
-		epf : IM!ErrorsProducesFailures (
-			Name <- c.Name + '_epf_' + (c.ErrorsGeneratesFailures->size()+1),
-			Component <- c,
-			Source <- Set{e},
-			Destination <- Set{fm},
-			PropagationDelay <- delay,
-			PropagationProbability <- p,
-			Weight <- weight,
-			PropagationLogic <- thisModule.EEXP_Error(e),
-			PropagationLogicStringFormat <- epf.PropagationLogic.toString()
-		)
-}
-
-rule AddSourceError(fm : IM!FailureMode) {
-	using {
-		c : IM!Component = fm.Component;
-	}
-	to 
-		e : IM!Error (
-			Name <- c.Name + '_e_' + fm.Name,
-			Component <- c
-		),
-		epf : IM!ErrorsProducesFailures (
-			Source <- Set{e},
-			Destination <- Set{fm},
-			Component <- c,
-			PropagationLogic <- thisModule.EEXP_Error(e),
-			PropagationLogicStringFormat <- epf.PropagationLogic.toString()
-		)
-}
-
---------------------------------------------------------------------
--- Rules related to the definition of the metric
---------------------------------------------------------------------
-
-lazy rule newEvalIntervalOfTime {
-	from
-		t : Real
-	to
-		iot : IM!IntervalOfTimeAveraged
-		(
-			begin <- 0,
-			end <- t
-		)
-}
-lazy rule newEvalInstantOfTime {
-	from
-		t : Real
-	to
-		instant : IM!InstantOfTime ( timePoint <- t )
-}
-
---Find target failure modes to be considered based on the attributes
---of the StateBasedAnalysis stereotype.
-rule FindTargetFailureModes(sba : CHESS!StateBasedAnalysis) {
-	using {
-		targets : Set(UML!InstanceSpecification) = Set{};
-		targetSlots : Set(UML!Slot) = Set{};
-		fmSelected : Set(IM!FailureMode) = Set{};
-	}
-	do {
-		--Find target components based on two attributes
-		-->platform
-		-->targetDepComponent
-		if(sba.targetDepComponent.isEmpty()) {
-			targets <- sba.platform->collect(p | p.base_Package.ownedMember->first())->flatten();
-		}else{
-			targets <- sba.targetDepComponent;
-		}
-		
-		
-		--Find ports of target components having an output dataflow
-		targetSlots <- targets->collect(i | i.getPortSlots())
-								->flatten()
-								->select(sl | sl.hasOutputFlow());
-	
-		--Filter ports based on 'targetPort', if set
-		if(not sba.targetPort.isEmpty()) {
-			targetSlots <- sba.targetPort.asSet()->intersection(targetSlots);
-		}
-	
-		--Process possibly existing downward delegations
-		targetSlots <- targetSlots->collect(sl | sl.getSBADelegationsDownwards())->flatten();
-		
-		--Find failure all failure modes related to the selected ports
-		fmSelected <-
-			 targetSlots->collect(sl | thisModule.InstanceToComponent(sl.refImmediateComposite()).FailureModes->select(fm | fm.getPortName() = sl.name))
-						->flatten()->asSet();
-
-		--Filter failure modes based on 'targetFailureMode', if set
-		if(not sba.targetFailureMode->isEmpty()) {
-			fmSelected <-
-				fmSelected->select(fm | sba.targetFailureMode->contains(fm.getModeName()));
-		}
-
-		fmSelected;	
-	}
-}
-
-rule Reliability(sba : CHESS!StateBasedAnalysis, time : Real){
-
-	using {
-		strClean : String = sba.measure.regexReplaceAll('[={}()]', ' ').trim();
-		iInstant : Integer = strClean.indexOf('instantOfTime');
-
-					
-		imsistema : IM!Sistema = IM!Sistema.allInstances()->first();
-	}
-	to
-		re : IM!Reliability (
-			Name <-	sba.base_NamedElement.name,
-			target <- thisModule.FindTargetFailureModes(sba)
-		)
-
-	do{
-		imsistema.measures.add(re);
-		if (iInstant > 0) {
-			re.evaluations.add(
-				thisModule.newEvalInstantOfTime(
-					strClean.substring(iInstant + 1 + 'instantOfTime'.size(), strClean.size()).toReal()
-				)
-			);
-		}
-		else{
-			--Should not happen!
-		}
-	}
-}
-
-rule Availability(sba : CHESS!StateBasedAnalysis) {
-	using {
-		strClean : String = sba.measure.regexReplaceAll('[={}()]', ' ').trim();
-		iInterval : Integer = strClean.indexOf('intervalEnd');
-		iInstant : Integer = strClean.indexOf('instantOfTime');
-
-		imsistema : IM!Sistema = IM!Sistema.allInstances()->first();
-	}
-	to
-		re : IM!Availability (
-			Name <-	sba.base_NamedElement.name,
-			target <- thisModule.FindTargetFailureModes(sba)
-		)
-	do{
-		imsistema.measures.add(re);
-
-		if (iInterval > 0) {
-			re.evaluations.add(
-				thisModule.newEvalIntervalOfTime(
-					strClean.substring(iInterval + 1 + 'intervalEnd'.size(), strClean.size()).toReal()
-				)
-			);
-		}
-		else if (iInstant > 0) {
-			re.evaluations.add(
-				thisModule.newEvalInstantOfTime(
-					strClean.substring(iInstant + 1 + 'instantOfTime'.size(), strClean.size()).toReal()
-				)
-			);
-		}
-		else{
-			--Should not happen!
-		}
-	}
-}
-
-rule PFD(sba : CHESS!StateBasedAnalysis) {
-	using {
-		strClean : String = sba.measure.regexReplaceAll('[={}()]', ' ').trim();
-
-		imsistema : IM!Sistema = IM!Sistema.allInstances()->first();
-	}
-	to
-		pfd : IM!FailureProbability (
-			Name <-	sba.base_NamedElement.name,
-			target <- thisModule.FindTargetFailureModes(sba)
-		)
-
-	do{
-		imsistema.measures.add(pfd);
-		
-		pfd.evaluations.add(
-			thisModule.newEvalInstantOfTime(
-				strClean.regexReplaceAll('PFD', ' ').trim().toReal()
-			)
-		);
-	}
-}
-
---------------------------------------------------------------------
--- Rules to create IM!Distribution elements
---------------------------------------------------------------------
-lazy rule Exponential {
-	from
-		lambda : Real
-	to
-		e : IM!Exponential ( Rate <- lambda )
-}
-
-lazy rule Deterministic {
-	from
-		value : Real
-	to
-		d : IM!Deterministic ( Value <- value )
-}
-
-lazy rule Uniform {
-	from
-		lower : Real,
-		upper : Real
-	to
-		d : IM!Uniform ( 
-			Lower <- lower,
-			Upper <- upper
-		)
-}
-
-lazy rule Gaussian {
-	from
-		mean : Real,
-		variance : Real
-	to 
-		g : IM!Gaussian (
-			Mean <- mean,
-			Variance <- variance
-		)
-}
-
-lazy rule Gamma {
-	from
-		a : Real,
-		b : Real
-	to 
-		g : IM!Gamma (
-			Alpha <- a,
-			Beta <- b
-		)
-}
-
-lazy rule Weibull {
-	from
-		a : Real,
-		b : Real
-	to 
-		g : IM!Weibull (
-			Alpha <- a,
-			Beta <- b
-		)
-}
-
---------------------------------------------------------------------
--- Rules to build Faults/Errors expressions
---------------------------------------------------------------------
-rule FEXP_Fault(f: IM!Fault) {
-	to
-		fefn : IM!FaultsExpressionFaultNode (
-			Fault <- f
-		)
-	do{
-		fefn;
-	}
-}
-
-rule FEXP_Or(e1 : IM!FaultsExpressionNode, e2: IM!FaultsExpressionNode) {
-	to
-		feon : IM!FaultsExpressionOrNode (
-			FaultsExpression1 <- e1,
-			FaultsExpression2 <- e2
-		)
-	do{
-		feon;
-	}
-}
-
-rule FEXP_And(e1 : IM!FaultsExpressionNode, e2: IM!FaultsExpressionNode) {
-	to
-		fean : IM!FaultsExpressionAndNode (
-			FaultsExpression1 <- e1,
-			FaultsExpression2 <- e2
-		)
-	do{
-		fean;
-	}
-}
-
-rule FEXP_Not(e : IM!FaultsExpressionNode) {
-	to 
-		fenn : IM!FaultsExpressionNotNode (
-			FaultsExpression <- e	
-		)
-	do {
-		fenn;
-	}
-}
-
-rule FEXP_MultiOr(fe : Sequence(IM!FaultsExpressionNode)) {
-	using {
-		tmpExpression1 : IM!FaultsExpressionNode = OclUndefined;
-		tmpExpression2 : IM!FaultsExpressionNode = OclUndefined;
-		tmpSequence : Sequence(IM!Fault) = fe;
-	}
-	do {
-		if(fe->size() = 1) {
-			tmpExpression1 <- fe->first();
-		}else{
-			tmpExpression1 <- tmpSequence->first();
-			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());
-			tmpExpression2 <- tmpSequence->first();
-			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());
-			
-			tmpExpression1 <- thisModule.FEXP_Or(tmpExpression1,tmpExpression2);
-			for(ft in tmpSequence) {
-				tmpExpression2 <- 	thisModule.FEXP_Or(
-										tmpExpression1,
-										ft
-								 	);
-				tmpExpression1 <- tmpExpression2;
-			}
-		}
-		
-		tmpExpression1;
-	}	
-}
-
-rule FEXP_MultiAnd(fe : Sequence(IM!FaultsExpressionNode)) {
-	using {
-		tmpExpression1 : IM!FaultsExpressionNode = OclUndefined;
-		tmpExpression2 : IM!FaultsExpressionNode = OclUndefined;
-		tmpSequence : Sequence(IM!Fault) = fe;
-	}
-	do {
-		if(fe->size() = 1) {
-			tmpExpression1 <- fe->first();
-		}else{
-			tmpExpression1 <- tmpSequence->first();
-			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());
-			tmpExpression2 <- tmpSequence->first();
-			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());
-			
-			tmpExpression1 <- thisModule.FEXP_And(tmpExpression1,tmpExpression2);
-			for(ft in tmpSequence) {
-				tmpExpression2 <- 	thisModule.FEXP_And(
-										tmpExpression1,
-										ft
-								 	);
-				tmpExpression1 <- tmpExpression2;
-			}
-		}
-		
-		tmpExpression1;
-	}	
-}
-
-rule EEXP_Error(e: IM!Error) {
-	to
-		eeen : IM!ErrorsExpressionErrorNode (
-			Error <- e
-		)
-	do{
-		eeen;
-	}
-}
-
---Parses a string into a FaultsExpression
----TODO: Implement more advanced parsing
-rule FEXP_ParseString(exp : String, inst : UML!InstanceSpecification) {
-	using {
-		c : IM!Component = thisModule.InstanceToComponent(inst);
-		tmpSplit : Sequence(String) = OclUndefined;
-		expRet : IM!FaultsExpressionNode = OclUndefined;
-	}
-	do {
-		if(not exp.oclIsUndefined()) {
-			tmpSplit <- exp.split(' and | AND ');
-			if(tmpSplit.size() > 1) {
-				expRet <-
-				thisModule.FEXP_MultiAnd(
-					tmpSplit->collect(
-						ft | c.Faults->select(ff | ff.localName = ft.trim())->first()
-					)->
-					flatten()->
-					collect(ft | thisModule.FEXP_Fault(ft))
-				);
-			}else {
-				tmpSplit <- exp.split(' or | OR ');
-				if(tmpSplit.size() > 1) {
-					expRet <-
-					thisModule.FEXP_MultiOr(
-						tmpSplit->collect(
-							s | c.Faults->select(ft | ft.localName = s.trim())
-						)->
-						flatten()->
-						collect(ft | thisModule.FEXP_Fault(ft))
-					);
-				}else {
-					expRet <- thisModule.FEXP_Fault(tmpSplit->first());
-				}
-			}
-		}
-		
-		expRet;
-	}
-}
-
-rule setFGEBackLinks(fen: IM!FaultsExpressionNode, fge: IM!FaultsGenerateErrors ) {
-	do {
-		fen.faultsGenerateErrors <- fge;
-		if (fen.oclIsTypeOf(IM!FaultsExpressionOrNode)) {
-			thisModule.setFGEBackLinks(fen.FaultsExpression1, fge);
-			thisModule.setFGEBackLinks(fen.FaultsExpression2, fge);
-		}else if (fen.oclIsTypeOf(IM!FaultsExpressionAndNode)){
-			thisModule.setFGEBackLinks(fen.FaultsExpression1, fge);
-			thisModule.setFGEBackLinks(fen.FaultsExpression2, fge);
-		}else if (fen.oclIsTypeOf(IM!FaultsExpressionNotNode)) {
-			thisModule.setFGEBackLinks(fen.FaultsExpression, fge);
-		}
-	}
-}
-
-rule setEPFBackLinks(een: IM!ErrorsExpressionNode, epf: IM!ErrorsProducesFailures ) {
-	do {
-		een.errorPropagation <- epf;
-	}
-}
-
-rule setIPBackLinks(een: IM!ErrorsExpressionNode, ip: IM!InternalPropagation ) {
-	do {
-		een.errorPropagation <- ip;
-	}
-}
-
-
---Rule for Repair activities
-unique lazy rule RepairActivity {
-	from
-		r : CHESS!Repair
-	to
-		act : IM!RepairActivity
-		(
-			Name <- r.base_Activity.name,
-			SuccessProbability <- r.probSuccess.toReal(),
-			Duration <- r.duration.parseDistribution(),
-			When <- timeexp
-		),
-		timeexp : IM!ScheduleExpression
-		(
-				T <-
-				if r.when.trim().startsWith('Periodic') then
-					thisModule.SCHEXP_Periodic(r.when)
-				else
-					if r.when.trim().startsWith('AtTime') then
-						thisModule.SCHEXP_AtTime(r.when)
-					else
-						OclUndefined
-					endif
-				endif,
-				EX <- timeexp_ex
-		),
-		timeexp_ex : IM!ScheduleExpressionTrue
-	do {
-		act.Target <- UML!Slot.allInstances()
-						->select(sl | r.targets->includes(sl.definingFeature))
-						->collect(sl | sl.value->first().instance)
-						->select(i | thisModule.umlInstancesRelevant->includes(i))
-						->collect(i | thisModule.InstanceToComponent(i));
-	}
-}
-
---Rule for ErrorDetection activities
-unique lazy rule ErrorDetectionActivity {
-	from
-		r : CHESS!ErrorDetection
-	to
-		act : IM!DetectionActivity
-		(
-			Name <- r.base_Activity.name,
-			Coverage <- r.probSuccess.toReal(),
-			Duration <- r.duration.parseDistribution(),
-			When <- timeexp
-		),
-		timeexp : IM!ScheduleExpression
-		(
-				T <-
-				if r.when.trim().startsWith('Periodic') then
-					thisModule.SCHEXP_Periodic(r.when)
-				else
-					if r.when.trim().startsWith('AtTime') then
-						thisModule.SCHEXP_AtTime(r.when)
-					else
-						OclUndefined
-					endif
-				endif,
-				EX <- timeexp_ex
-		),
-		timeexp_ex : IM!ScheduleExpressionTrue
-	do {
-		act.Target <- UML!Slot.allInstances()
-						->select(sl | r.targets->includes(sl.definingFeature))
-						->collect(sl | sl.value->first().instance)
-						->collect(i | thisModule.InstanceToComponent(i));
-	}
-}
-
---rule RepairActivity(r : IM!RepairActivity){
---
---	to
---		se : IM!ScheduleExpression
---		(
---			T <- si
---		),
---		si : IM!ScheduleExpressionImmediately
---	do{
---		r.When <- se;
---		for (c in r.Target){
---			for(fm in c.FailureModes) {
---				thisModule.SchedCond(fm);
---			}
---		}
---		if (thisModule.TempScen->size() = 1){
---			se.EX <- thisModule.TempScen->first();
---		}else{
---			for(scen in thisModule.TempScen){
---				if (scen <> thisModule.TempScen->last()){
---					thisModule.CreateScenOrExpr();
---				}
---			}
---			thisModule.TempScen->addAll(thisModule.TempScenSeq);
---
---			for(scen in thisModule.TempScen){
---				if (scen.oclIsTypeOf(IM!ScheduleExpressionOr)){
---					scen.e1 <- thisModule.TempScen.at(thisModule.Counter);
---					thisModule.Counter <- thisModule.Counter+1;
---					scen.e2 <- thisModule.TempScen.at(thisModule.Counter);
---					thisModule.Counter <- thisModule.Counter+1;
---				}
---			}
---			se.EX <- thisModule.TempScen->last();
---		}
---
---		thisModule.TempScen.clear();
---		thisModule.TempScenSeq.clear();
---		thisModule.Counter <- 1;
---	}
---}
-
-rule SchedCond(fm : IM!FailureMode){
-
-	to
-		scefn : IM!ScheduleExpressionFailed (
-			failureMode <- fm
-		)
-
-	do{
-		thisModule.TempScen.add(scefn);
-	}
-}
-
-rule CreateScenOrExpr(){
-
-	to
-		sceon : IM!ScheduleExpressionOr
-
-	do{
-		thisModule.TempScenSeq.add(sceon);
-	}
-
-}
-
---------------------------------------------------------------------
--- Rules to generate ScheduleExpression elements
---------------------------------------------------------------------
-
-lazy rule SCHEXP_Periodic {
-	from
-		s : String
-	using {
-		sClean : String = s.regexReplaceAll('[={}()]', ' ').trim();
-	}
-	to
-		p : IM!ScheduleExpressionPeriodic
-		(
-			PeriodDuration <- d
-		),
-		d : IM!Deterministic
-		(
-			Value <- sClean.substring('Periodic'.size()+1, sClean.size()).toReal()
-		)
-}
-lazy rule SCHEXP_AtTime {
-	from
-		s : String
-	using {
-		sClean : String = s.regexReplaceAll('[={}()]', ' ').trim();
-	}
-	to
-		p : IM!ScheduleExpressionAtTime
-		(
-			t <- sClean.substring('AtTime'.size()+1, sClean.size()).toReal()
-		)
-}
-
-rule SCHEXP_Or(exp1 : IM!ScheduleExpressionCond, exp2 : IM!ScheduleExpressionCond) {
-	to 
-		e : IM!ScheduleExpressionOr
-		(
-			e1 <- exp1,
-			e2 <- exp2			
-		)
-	do {
-		e;
-	}
-}
-
-rule SCHEXP_And(exp1 : IM!ScheduleExpressionCond, exp2 : IM!ScheduleExpressionCond) {
-	to 
-		e : IM!ScheduleExpressionAnd
-		(
-			e1 <- exp1,
-			e2 <- exp2			
-		)
-	do {
-		e;
-	}
-}
-
-rule SCHEXP_FailureMode(fm : IM!FailureMode) {
-	to
-		e : IM!ScheduleExpressionFailed
-		(
-			failureMode <- fm			
-		)
-	do {
-		e;
-	}
-}
-
-rule SCHEXP_MultiOr(schSeq : Set(IM!ScheduleExpressionCond)) {
-	using {
-		tmpExpression1 : IM!ScheduleExpressionCond = OclUndefined;
-		tmpExpression2 : IM!ScheduleExpressionCond = OclUndefined;
-		tmpSequence : Sequence(IM!ScheduleExpressionCond) = schSeq;
-	}
-	do {
-		if(schSeq->size() = 1) {
-			tmpExpression1 <- schSeq->first();
-		}else{
-			tmpExpression1 <- tmpSequence->first();
-			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());
---			tmpExpression2 <- tmpSequence->first();
---			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());
---			
---			tmpExpression1 <- thisModule.SCHEXP_Or(tmpExpression1,tmpExpression2);
-			
-			for(ee in tmpSequence) {
-				tmpExpression2 <- 	thisModule.SCHEXP_Or(
-										tmpExpression1,
-										ee
-								 	);
-				tmpExpression1 <- tmpExpression2;
-			}
-		}
-		
-		tmpExpression1;
-	}	
-}
-
-rule SCHEXP_FailureModesCollection(fms : Set(IM!FailureMode)) {
-	using {
-		tmp : IM!ScheduleExpressionCondition = OclUndefined;
-	}
-	do {
-		tmp <-
-			thisModule.SCHEXP_MultiOr(
-				fms->collect(fm | thisModule.SCHEXP_FailureMode(fm))
-			);
-
-		tmp;
-	}
-}
-
---------------------------------------------------------------------
--- Rules for allocation
---------------------------------------------------------------------
-rule Allocation(a : MARTE!Assign) {
-	using {
-		tmpXFT : IM!ExternalFault = OclUndefined;
-	}
-	do {
-		for(instFrom in a.from) {
-			for(instTo in a.to) {
-				for(fm in thisModule.InstanceToComponent(instTo).FailureModes) {			
-					tmpXFT <- thisModule.AddExternalFault(fm.getModeName(), instFrom);
-					tmpXFT.Source <- fm;
-					tmpXFT.Name <- instFrom.name + '_allocation_' + fm.Name;
-				}				
-			}
-		}
-	}
-}
---rule Assign (a : MARTE!Assign){
---
---	do{
---		--"from" and "to" are keywords in ATL... (works anyway, only issue: they are highlighted)
---		thisModule.Instances.addAll(a.from);
-----		thisModule.Components.addAll(a.to->collect(f | f.classifier->first()));
---
---		--get also connectors from the allocated HW/SW
---		for (f in a.from){
---			thisModule.Connectors.addAll(f.owner.getConnectors);
---		}
---		for (t in a.to){
---			thisModule.Connectors.addAll(t.owner.getConnectors);
---		}
---
---		--finally get ports from the allocated HW/SW
---		for (f in a.from){
---			for (i in f.owner.getInstances){
---				thisModule.Ports.addAll(i.slot->collect(d | d.definingFeature));
---			}
---		}
---		for (t in a.to){
---			for (i in t.owner.getInstances){
---				thisModule.Ports.addAll(i.slot->collect(d | d.definingFeature));
---			}
---		}
---	}
---}
-
---Find allocation specifications related to a given platform
-helper context UML!Package def : getAllocations() : Set(MARTE!Assign) =
-	MARTE!Assign.allInstances()->select(a | a.base_Comment.owner = self.ownedElement->first().classifier->first());
-
---Find instances involved in allocations related to a given platform
-helper context UML!Package def: getAllocationsInstances() : Set(UML!InstanceSpecification) =
-	self.getAllocations()->collect(a | a.from->union(a.to))->flatten();	
-
---Check if a IM!Component already contains a specific failure mode
-helper context IM!Component def: hasFailureMode(fm : String) : Boolean =
-	not self.FailureModes->select(f | f.localName.trim() = fm.trim())->isEmpty();
-
---Check if a IM!Component already contains a specific fault
-helper context IM!Component def: hasFault(fm : String) : Boolean =
-	not self.Faults->select(f | f.localName.trim() = fm.trim())->isEmpty();
-
---Get <<Failure>> stereotype from a Transition
-helper context UML!Transition def: getFailureStereotype() : CHESS!Failure =
-	CHESS!Failure.allInstances()->select(f | f.base_Transition = self)->first();
-
---Get <<ErrorState>> stereotype from a State
-helper context UML!State def: getErrorStateStereotype() : CHESS!ErrorState =
-	CHESS!ErrorState.allInstances()->select(e | e.base_State = self)->first();
-
---Check if a Vertex is an initial state (healty state of the error model)
-helper context UML!Vertex def: isInitialState() : Boolean =
-	if(self.oclIsKindOf(CHESS!Pseudostate)) then
-		self.kind = #initial
-	else
-		false
-	endif;
-
---Remove the component name
-helper context String def: noNamespace(n : String) : String =
-	self.regexReplaceAll(n + '_', '');
-helper context IM!Fault def: localName : String =
-	let fClean : String = self.Name.noNamespace(self.Component.Name)
-	in fClean.substring(5, fClean.size());	--Removes the initial xft_ or ift_ prefix
-helper context IM!Error def: localName : String =
-	self.Name.noNamespace(self.Component.Name);
-helper context IM!FailureMode def: localName : String =
-	self.Name.noNamespace(self.Component.Name);
-helper context IM!Threat def: fullName : String = self.Name;
-
---Get info on a IM!Fault and IM!FailureMode
-helper context IM!Fault def: getPortName() : String =
-	self.localName.split('\\.').at(1);
-helper context IM!Fault def: getModeName() : String =
-	self.localName.split('\\.').at(2);
-helper context IM!FailureMode def: getPortName() : String =
-	self.localName->split('\\.')->at(1);
-helper context IM!FailureMode def: getModeName() : String =
-	self.localName.split('\\.').at(2);
-
-
---------------------------------------------------------------------
--- Parse strings in VSL notation into IM!Distribution elements
---------------------------------------------------------------------
-helper context String def: parseDistribution() : IM!Distribution = 
-	let dist : String = self.trim().toLower() in
-	if dist.startsWith('exp') then
-		dist.parseExponential()
-	else if dist.startsWith('det') then
-		dist.parseDeterministic()
-	else if dist.startsWith('uni') then
-		dist.parseUniform()
-	else if dist.startsWith('norm') or dist.startsWith('gauss') then
-		dist.parseGaussian()
-	else if dist.startsWith('gam') then
-		dist.parseGamma()
-	else if dist.startsWith('wei') then
-		dist.parseWeibull()
-	else
-		thisModule.Exponential(0)
-	endif endif endif endif endif endif;
-
-helper context String def: parseExponential() : IM!Exponential =
-	thisModule.Exponential(self.substring(self.indexOf('(')+2, self.indexOf(')')).toReal());
-
-helper context String def: parseDeterministic() : IM!Deterministic =
-	thisModule.Deterministic(self.substring(self.indexOf('(')+2, self.indexOf(')')).toReal());
-
-helper context String def: parseUniform() : IM!Uniform =
-	let iComma : Integer = self.indexOf(',') in
-	thisModule.Uniform(
-		self.substring(self.indexOf('(')+2, iComma).toReal(),
-		self.substring(iComma+2, self.indexOf(')')).toReal()
-	);
-
-helper context String def: parseGaussian() : IM!Gaussian =
-	let iComma : Integer = self.indexOf(',') in
-	thisModule.Gaussian(
-		self.substring(self.indexOf('(')+2, iComma).toReal(),
-		self.substring(iComma+2, self.indexOf(')')).toReal()
-	);
-
-helper context String def: parseGamma() : IM!Gamma =
-	let iComma : Integer = self.indexOf(',') in
-	thisModule.Gamma(
-		self.substring(self.indexOf('(')+2, iComma).toReal(),
-		self.substring(iComma+2, self.indexOf(')')).toReal()
-	);
-
-helper context String def: parseWeibull() : IM!Gamma =
-	let iComma : Integer = self.indexOf(',') in
-	thisModule.Weibull(
-		self.substring(self.indexOf('(')+2, iComma).toReal(),
-		self.substring(iComma+2, self.indexOf(')')).toReal()
-	);
-
---------------------------------------------------------------------
--- Collections that are used to filter and categorize model elements
---------------------------------------------------------------------
-helper def : Instances : Sequence(UML2!InstanceSpecification) = Sequence {};
-helper def : Connectors : Set(UML2!InstanceSpecification) = Set {};
-helper def : Comments : Set (UML2!Comment) = Set {};
-helper def : Ports : Set (UML2!Port) = Set {};
-helper def : States : Set(UML2!State) = Set{};
-helper def : Transitions : Set(UML2!Tansition) = Set{};
-
-helper context UML!InstanceSpecification def: getBaseItem() : UML!Classifier = self.classifier->first();
-
---Find the SimpleStochasticBehavior element associated with a Classifier or an InstanceSpecification
---if it exists. Returns OclUndefined otherwise
-helper context UML!Classifier def: getSimpleStochasticBehavior() : CHESS!SimpleStochasticBehavior =
-	CHESS!SimpleStochasticBehavior->allInstances()->select(ssb | ssb.base_Class = self)->first();
-
-helper context UML!InstanceSpecification def: getSimpleStochasticBehavior() : CHESS!SimpleStochasticBehavior =
-	let instssb : CHESS!SimpleStochasticBehavior = 
-		CHESS!SimpleStochasticBehavior->allInstances()->select(ssb | ssb.base_InstanceSpecification = self)->first() in
-	if instssb <> OclUndefined then instssb else 
-		let base : UML!Class = self.getBaseItem() in 
-			if base = OclUndefined then base else base.getSimpleStochasticBehavior() endif
-	endif;
-
---------------------------------------------------------------------
--- Helpers to get dependability information from stereotypes
---------------------------------------------------------------------
-	
---Do we have dependability information for this instance?
-helper context UML!InstanceSpecification def: hasSBAInformation() : Boolean = self.getSBAStereotype() <> OclUndefined;
-
---If the InstanceSpecification has its own stereotype then return it,
--- otherwise return the one of the classifier
-helper context UML!InstanceSpecification def: getSBAStereotype() : OclAny = 
-	let s : OclAny = self.getSBAStereotypeInstance() in
-	if s = OclUndefined then self.classifier->first().getSBAStereotypeClassifier() else s endif;
-
---Get the SBA stereotype applied to the instance, if any
-helper context UML!InstanceSpecification def: getSBAStereotypeInstance() : OclAny =
-	thisModule.sbaStereotypes->collect(s | s.allInstances())->flatten()->select(st | st.base_InstanceSpecification = self)->first();
-
---Find the CHESS stereotype that is used on a given instance specification, or on its classifier
-helper context UML!Class def: getSBAStereotypeClassifier() : OclAny =
-	thisModule.sbaStereotypes->collect(s | s.allInstances())->flatten()->select(st | st.base_Class = self)->first();
-
---Recursive helper to identify which instances need to be taken into account,
---i.e., to identify those that have dependability information attached, or no
---subinstances
-helper context UML!InstanceSpecification  def: findSBAConstituents() : Set(UML!InstanceSpecification) =
-	if self.hasSBAInformation() or self.getSubInstances().isEmpty() then
-		Set{self}
-	else
-		self.getSubInstances()->collect(i | i.findSBAConstituents())->flatten()
-	endif;
-
---Get the stereotype associated to an error model transition
-helper context UML!Transition def: getSBAStereotype() : OclAny =
-	thisModule.sbaTransitions->collect(s | s.allInstances())->
-								flatten()->select(t | t.base_Transition = self)->
-								first();
-
---Does this error model transition has dependability information associated with it?
-helper context UML!Transition def: hasSBAInformation() : Boolean = not self.getSBAStereotype().oclIsUndefined();
-
---------------------------------------------------------------------
--- Helpers to get, start from a given InstanceSpecification,
--- port instances and subcomponent instances
---------------------------------------------------------------------
-helper context UML!InstanceSpecification def: getPortSlots() : Set(UML!Slot) = 
-	self.slot->select(s | s.definingFeature.oclIsKindOf(UML!Port));
-
-helper context UML!InstanceSpecification def: getSubInstanceSlots() : Set(UML!Slot) =
-	self.slot->select(s | not s.definingFeature.oclIsKindOf(UML!Port));
-
-helper context UML!InstanceSpecification def: getSubInstances() : Set(UML!InstanceSpecification) = 
-	self.getSubInstanceSlots()->collect(s | s.value->first().instance);
-
-helper context UML!InstanceSpecification def: isSubInstanceOf(parent : UML!InstanceSpecification) : Boolean =
-	parent.getSubInstances()->includes(self);
-
---Get the name of a port slot, as the name of the originating port
-helper context UML!Slot def: name : String = self.definingFeature.name;
- 
---helper context UML!Slot def: getConnectedSlotsInput() : Set(UML!Slot) =
---	self;
---helper context UML!Slot def: getConnectedSlotsOutput() : Set(UML!Slot) = 
---	self;
---helper context UML!Slot def: getConnectedSlots() : Set(UML!Slot) =
---	self.getConnectedSlotsInput->union(self.getConnectedSlotsOutput);
-
---------------------------------------------------------------------
--- Check if a Port (or Slot) has input or output dataflow
---------------------------------------------------------------------
-helper context UML!Slot def: hasInputFlow() : Boolean = self.definingFeature.hasInputFlow();
-helper context UML!Slot def: hasOutputFlow() : Boolean = self.definingFeature.hasOutputFlow();
-helper context UML!Port def: hasInputFlow() : Boolean =
-	let clientserverport : MARTE!ClientServerPort = MARTE!ClientServerPort.allInstances()->select(c | c.base_Port = self)->first() in
-	let flowport : SYSML!FlowPort = SYSML!FlowPort.allInstances()->select(c | c.base_Port = self)->first() in
-	if clientserverport <> OclUndefined then clientserverport.hasInputFlow() else
-		if flowport <> OclUndefined then flowport.hasInputFlow() else
-			false
-	endif endif;
-helper context UML!Port def: hasOutputFlow() : Boolean =
-	let clientserverport : MARTE!ClientServerPort = MARTE!ClientServerPort.allInstances()->select(c | c.base_Port = self)->first() in
-	let flowport : SYSML!FlowPort = SYSML!FlowPort.allInstances()->select(c | c.base_Port = self)->first() in
-	if clientserverport <> OclUndefined then clientserverport.hasOutputFlow() else
-		if flowport <> OclUndefined then flowport.hasOutputFlow() else
-			false
-	endif endif;
-helper context SYSML!FlowPort def: hasInputFlow() : Boolean = self.direction <> #out;
-helper context SYSML!FlowPort def: hasOutputFlow() : Boolean = self.direction = #out or self.direction = #inout;
-helper context MARTE!ClientServerPort def: hasInputFlow() : Boolean = self.kind <> #provided;
-helper context MARTE!ClientServerPort def: hasOutputFlow() : Boolean = self.kind <> #required;
-
---------------------------------------------------------------------
--- Helpers to explore the model and get the component that is
--- connected to the other side of a port
---------------------------------------------------------------------
-
---Get connectors that are linked to a certain port instance
-helper context UML!Slot def: getConnectors() : Set(UML!InstanceSpecification) =
-	thisModule.umlInstancesConnectors->
-				select(c | not c.slot->select(s | s.definingFeature = self.definingFeature 
-					and s.value->first().instance = self.refImmediateComposite())->isEmpty());
-
---Is the connector instance a "normal" connection
---betweentwo components at the same level?
-helper context UML!InstanceSpecification def: isConnection() : Boolean = 
-	let sl : OrderedSet(UML!Slot) = self.slot->asOrderedSet() in
-	let i1 : UML!InstanceSpecification = sl->first().value->first().instance in
-	let i2 : UML!InstanceSpecification = sl->last().value->first().instance in
-	if i1.oclIsUndefined() or i2.oclIsUndefined() then false else
-		not i1.isSubInstanceOf(i2) and not i2.isSubInstanceOf(i1)
-	endif;
-
---Is the connector instance a delegation?
-helper context UML!InstanceSpecification def: isDelegation() : Boolean = 
-	let sl : OrderedSet(UML!Slot) = self.slot->asOrderedSet() in
-	let i1 : UML!InstanceSpecification = sl->first().value->first().instance in
-	let i2 : UML!InstanceSpecification = sl->last().value->first().instance in
-	i1.isSubInstanceOf(i2) or i2.isSubInstanceOf(i1);
-
---Get port instances that are *directly* connected to a certain port instance
-helper context UML!Slot def: getConnectedImmediate() : Set(UML!Slot) =
-	let connectorsSlots : Set(UML!Slot) = 
-	self.getConnectors()->select(c | c.isConnection())->
-							collect(c | c.slot)->
-							flatten()->
-							select(s | s.definingFeature <> self.definingFeature)
-	in
-	connectorsSlots->collect(s | s.value->first().instance.slot->
-									select(sl | sl.definingFeature = s.definingFeature))->flatten();
-
---Get port instances that receive/send delegation from/to a certain port instance
-helper context UML!Slot def: getDelegationEnds() : Set(UML!Slot) =
-	let connectorsSlots : Set(UML!Slot) =
-	self.getConnectors()->select(c | c.isDelegation())->
-							collect(c | c.slot)->
-							flatten()->
-							select(s | s.definingFeature <> self.definingFeature)
-	in
-	connectorsSlots->collect(s | s.value->first().instance.slot->
-									select(sl | sl.definingFeature = s.definingFeature))->flatten();
-
---Get taget(s) of delegation in sub-instances
-helper context UML!Slot def: getDelegationEndsDownwards() : Set(UML!Slot) = 
-	self.getDelegationEnds()->select(s | s.refImmediateComposite().isSubInstanceOf(self.refImmediateComposite()));
-
---Get source(s) of delegation in parent instance
-helper context UML!Slot def: getDelegationEndsUpwards() : Set(UML!Slot) = 
-	self.getDelegationEnds()->select(s | self.refImmediateComposite().isSubInstanceOf(s.refImmediateComposite()));
-
---Get the target of delegation taking into account SBA stereotypes,
---i.e., get the first slot whose owning instance has SBA information.
---(it can be even the slot under examination itself)
-helper context UML!Slot def: getSBADelegationsDownwards() : Set(UML!Slot) =
-	let inst : UML!InstanceSpecification = self.refImmediateComposite() in
-	let deleg : Set(UML!Slot) = self.getDelegationEndsDownwards() in
-	if deleg.isEmpty() or 
-		inst.hasSBAInformation() or 
-		inst.getSubInstances().isEmpty() 
-	then
-		Set{self}
-	else
-		deleg->collect(e | e.getSBADelegationsDownwards())->flatten()
-	endif;
-helper context UML!Slot def: getSBADelegationsUpwards() : Set(UML!Slot) =
-	let inst : UML!InstanceSpecification = self.refImmediateComposite() in
-	let deleg : Set(UML!Slot) = self.getDelegationEndsUpwards() in
-	if deleg.isEmpty() then
-		Set{self}
-	else
-		deleg->collect(e | e.getSBADelegationsUpwards())->flatten()
-	endif;
-
---Get the target of connection taking into account SBA stereotypes,
---i.e., get the first slot whose owning instance has SBA information.
---(it can be even the slot directly connected to the one under examination)
-helper context UML!Slot def: getSBAConnections() : Set(UML!Slot) =
-	self.getSBADelegationsUpwards()->
-		collect(d | d.getConnectedImmediate())->flatten()->
-		collect(sl | sl.getSBADelegationsDownwards())->flatten();	
-
---------------------------------------------------------------------
--- Parse failure modes for SimpleStochasticBehavior elements
---------------------------------------------------------------------
-
---Split the specification into different parts, one for each port, and find the
---failure modes for the port name passed as input. Calls parseFailureModes() below
-helper context String def: parseFailureModesForPort(port : String) : Set(TupleType(fm: String, p: Real)) =
-	let strSeq : Sequence(String) = self.trim()->split(';') in
-	let strSelected : String = strSeq->select(s | s.trim().startsWith(port))->first() in
-	if strSelected = OclUndefined then
-		strSeq->first().parseFailureModes()
-	else 
-		strSelected.parseFailureModes()
-	endif;
-
---From the specification in string format get the failure modes and proabilities for a single port
-helper context String def: parseFailureModes() : Set(TupleType(fm: String, p: Real)) =
-	let str : String = 
-		if self.indexOf('{') < 0 then
-			self.trim()
-		else
-			self.substring(self.indexOf('{')+2, self.size()).replaceAll('}', ' ').trim()
-		endif	
-	in
-	let default : Set(TupleType(fm: String, p: Real)) = Set{Tuple{fm = 'failure', p = 1.0}} in
-	if str.size() = 0 then
-		default
-	else
-		let ret : Set(TupleType(fm: String, p: Real)) = 
-		str.split(',')->collect(s | s.split(':'))->
-			collect(seq | Tuple{fm = seq->first().trim(), p = seq.last().toReal()})
-		in
-		if ret->isEmpty() then
-			default
-		else
-			ret
-	endif endif;
-
---------------------------------------------------------------------
--- Helpers to manage the metrics
---------------------------------------------------------------------
-
---temporary parser to retrieve which dependability measure a SBAnalysis refers to
-helper context CHESS!StateBasedAnalysis def: WhichMeasure : String =
-	if self.measure.startsWith('Reliability') then 'Reliability'
-	else if self.measure.startsWith('Availability') then 'Availability'
-	else if self.measure.toUpper().startsWith('PFD') then 'PFD' 
-	else 'error'
-	endif endif endif;
-	
---------------------------------------------------------------------
--- Helpers to manage Faults/Errors expressions
---------------------------------------------------------------------
-helper context IM!FaultsExpressionFaultNode def: toString(): String = self.Fault.Name;
-helper context IM!FaultsExpressionOrNode def: toString(): String = '(' + self.FaultsExpression1.toString() + ' OR ' + self.FaultsExpression2.toString() + ')';
-helper context IM!FaultsExpressionAndNode def: toString() : String = '(' + self.FaultsExpression1.toString() + ' AND ' + self.FaultsExpression2.toString() + ')';
-helper context IM!FaultsExpressionNotNode def: toString() : String = '(NOT ' + self.FaultsExpression.toString() + ')';
-
---Get the list of Fault elements involved in a FaultsExpression
-helper context IM!FaultsExpressionNode def: faultsList() : Sequence(IM!Fault) = 
-	if self.oclIsTypeOf(IM!FaultsExpressionFaultNode) then
-		let fexp : IM!FaultsExpressionFaultNode = self in 
-		Sequence{fexp.Fault}
-	else if self.oclIsTypeOf(IM!FaultsExpressionNotNode) then
-		let fexp : IM!FaultsExpressionNotNode = self in 
-		fexp.FaultsExpression.faultsList()
-	else if self.oclIsTypeOf(IM!FaultsExpressionAndNode) then
-		let fexp : IM!FaultsExpressionAndNode = self in 
-		fexp.FaultsExpression1.faultsList()->union(fexp.FaultsExpression2.faultsList())
-	else if self.oclIsTypeOf(IM!FaultsExpressionOrNode) then
-		let fexp : IM!FaultsExpressionOrNode = self in 
-		fexp.FaultsExpression1.faultsList()->union(fexp.FaultsExpression2.faultsList())
-	else
-		Sequence{}	--it should never happen
-	endif endif endif endif;
-
-helper context IM!ErrorsExpressionErrorNode def: toString(): String = self.Error.Name;
-helper context IM!ErrorsExpressionOrNode def: toString(): String = '(' + self.ErrorsExpression1.toString() + ' OR ' + self.ErrorsExpression2.toString() + ')';
-
---------------------------------------------------------------------
--- For debugging purposes: pretty print SBA stereotypes
---------------------------------------------------------------------
-helper context CHESS!SimpleStochasticBehavior def: toString() : String = 
-	'<<SimpleStochasticBehavior>>(' + self.failureOccurrence + ', ' + self.repairDelay + ', ' + self.failureModesDistribution + ')';
-helper context CHESS!FLABehavior def: toString() : String = '<<FLABehavior>>(' + self.fptc + ')';
-helper context CHESS!ErrorModelBehavior def: toString() : String = '<<ErrorModelBehavior>>(' + self.errorModel + ')';
-helper context CHESS!ErrorModel def: toString() : String = '<<ErrorModel>>(' + self.base_StateMachine + ')';
+-----------------------------------------------------------------------

+-- Copyright (C) 2015-2016                                           --

+-- University of Firenze, Italy                                      --

+--                                                                   --

+-- All rights reserved. This program and the accompanying materials  --

+-- are made available under the terms of the Eclipse Public License  --

+-- v1.0 which accompanies this distribution, and is available at     --

+-- http://www.eclipse.org/legal/epl-v10.html                         --

+--                                                                   --

+-- Contributors:                                                     --

+-- Leonardo Montecchi 	lmontecchi@unifi.it                          --

+-----------------------------------------------------------------------

+

+-- @path IM=/org.polarsys.chess.statebased/metamodels/IM2.ecore

+-- @path CHESS=/org.polarsys.chess.chessmlprofile/model/chessmlprofile.ecore

+-- @nsURI MARTE=http://www.eclipse.org/papyrus/MARTE/1

+-- @nsURI UML=http://www.eclipse.org/uml2/4.0.0/UML

+-- @nsURI CHESS=http://CHESS

+-- @nsURI SYSML=http://www.eclipse.org/papyrus/0.7.0/SysML

+

+module CHESS2IM;

+create OUT : IM from IN1 : CHESS, IN2 : UML, IN3 : MARTE, IN4 : SYSML;

+

+helper def: umlInstancesAll : Sequence(UML!InstanceSpecification) = Sequence{}; 	--All the InstanceSpecification of the considered platform

+helper def: umlInstancesConnectors : Set(UML!InstanceSpecification) = Set{};		--Instances of connectors

+helper def: umlInstancesBlocks : Set(UML!InstanceSpecification) = Set{}; 			--Instances of components/blocks

+helper def: umlInstancesStereo : Set(UML!InstanceSpecification) = Set{}; 			--Instances that have dependability information

+helper def: umlInstancesRelevant : Set(UML!InstanceSpecification) = Set{}; 			--Instances that are relevant for the analysis

+helper def: umlAllocations : Set(MARTE!Assign) = Set{};

+

+--Stereotypes that can be used on Blocks/Components for state based analysis

+helper def: sbaStereotypes : Sequence(OclAny) = Sequence{CHESS!SimpleStochasticBehavior, CHESS!FLABehavior, CHESS!ErrorModelBehavior,

+														 CHESS!StatelessSoftware, CHESS!StatefulSoftware, CHESS!StatelessHardware, CHESS!StatefulHardware};

+--Stereotypes that can be used on Transitions of an Error Model

+helper def: sbaTransitions : Sequence(OclAny) = Sequence{CHESS!Failure, CHESS!InternalPropagation, CHESS!InternalFault};														 

+helper def: flaNoFailure : String = 'noFailure';

+helper def: flaWildcard : String = 'wildcard';

+													 

+helper def: flaRules : Map(IM!Component, Map(String, IM!Error)) = Map{};			--Map to obtain the list of flarules for a component, and the corresponding IM!Error elements

+

+helper def: errmodErrorMap : Map(TupleType(e: UML!Vertex, cc: IM!Component), IM!Error) = Map{};

+

+--rule to transform the CHESS!StateBasedAnalysis into an IM!Sistema

+rule SBA {

+	from 

+		sba : CHESS!StateBasedAnalysis

+	do {

+		thisModule.System(sba.platform->first().base_Package);

+		

+		--Handle metrics

+		if (sba.WhichMeasure = 'Reliability') {

+			thisModule.Reliability(sba);

+		}else if (sba.WhichMeasure = 'Availability') {

+			thisModule.Availability(sba);

+		}else if (sba.WhichMeasure = 'PFD') {

+			thisModule.PFD(sba);

+		}else{

+			---TODO: others?

+		}

+	}

+}

+

+unique lazy rule System {

+	from

+		platform : UML!Package	

+	--sba : CHESS!StateBasedAnalysis

+		--at the moment is it implied that there is only a StateBasedAnalysis in the model

+	using {

+		--instances of interest are:

+		--> SET1: all the instances included in the target resource platform, plus

+		--> SET2: all the instances involved in allocations mentioned in the target resource platform, plus

+		--> SET3: all the instances in the same resource platform as those involved in allocations

+		instances : Set(UML!InstanceSpecification) = 

+			UML!InstanceSpecification.allInstances()->select(i | i.refImmediateComposite() = platform)		--SET1

+			->union(platform.getAllocationsInstances())														--SET2

+			->union(UML!InstanceSpecification.allInstances()

+				->select(i | platform.getAllocationsInstances()

+								->collect(ai | ai.refImmediateComposite())

+								->includes(i.refImmediateComposite()))										--SET3

+			)->asSet();																						--Removes duplicates

+			

+		comments : Sequence(UML!Comment) = instances->collect(i | i.ownedComment)->flatten();

+		instSystem : UML!InstanceSpecification = platform.ownedElement->first();

+	} 

+	to

+		s : IM!Sistema (

+			Name <- platform.name

+		)

+	do {

+		--Filter out and categorize relevant CHESS elements

+		thisModule.umlInstancesAll <- instances;

+		thisModule.umlInstancesConnectors <- instances->select(i | i.classifier.isEmpty());

+		thisModule.umlInstancesBlocks <- instances->select(i | not i.classifier.isEmpty());

+		thisModule.umlAllocations <- MARTE!Assign.allInstances()->select(a | comments.includes(a.base_Comment));

+		

+		thisModule.umlInstancesBlocks <- thisModule.umlInstancesAll->select(i | thisModule.umlInstancesConnectors.excludes(i));

+		thisModule.umlInstancesStereo <- thisModule.umlInstancesBlocks->select(i | i.getSBAStereotype() <> OclUndefined);

+

+		--Instances that are relevant for the analysis are:

+		--> Those that are constituents of the instance representing the target platform, plus

+		--> Those that are constituents of the instances representing the platforms that own the instances involved in allocations

+		thisModule.umlInstancesRelevant <- instSystem.findSBAConstituents()

+												->union(platform.getAllocationsInstances()

+															->collect(ai | ai.refImmediateComposite())

+															->collect(im | im.ownedElement->first().findSBAConstituents()))->flatten();

+			

+		--Generate IM!Component elements, failure modes, and what can be done immediately

+		for(i in thisModule.umlInstancesRelevant) {

+			s.components <- s.components->including(

+				thisModule.InstanceToComponent(i)

+			);

+

+			

+			if(i.getSBAStereotype().oclType() = CHESS!SimpleStochasticBehavior) {

+				thisModule.SimpleStochasticBehaviorToComponent(i);

+			}else if(i.getSBAStereotype().oclType() = CHESS!FLABehavior){

+				thisModule.FLASpecificationToComponent(i);

+			}else if(i.getSBAStereotype().oclType() = CHESS!ErrorModelBehavior) {

+				thisModule.ErrorModelToComponent(i);

+			}

+		}

+

+		--Generate external faults

+		for(i in thisModule.umlInstancesRelevant) {

+			thisModule.PopulateExternalFaults(i);	

+		}

+

+		--Generate FGE, i.e., connect external faults

+		for(i in thisModule.umlInstancesRelevant) {

+			if(i.getSBAStereotype().oclType() = CHESS!SimpleStochasticBehavior) {

+				thisModule.SimpleStochasticBehavior_FGE(i);

+			}else if(i.getSBAStereotype().oclType() = CHESS!FLABehavior){

+				thisModule.FLASpecification_FGE(i);

+			}else if(i.getSBAStereotype().oclType() = CHESS!ErrorModelBehavior) {

+				thisModule.ErrorModel_FGE(i);

+			}

+		}

+		

+		--Process allocations

+		for(a in platform.getAllocations()) {

+			thisModule.Allocation(a);

+		}

+		

+		--Set FGE Backlinks

+		for(fge in IM!FaultsGenerateErrors.allInstances()) {

+			thisModule.setFGEBackLinks(fge.PropagationLogic, fge);	

+		}

+		--Set EPF Backlinks

+		for(epf in IM!ErrorsProducesFailures.allInstances()) {

+			thisModule.setEPFBackLinks(epf.PropagationLogic, epf);	

+		}

+		--Set IP Backlinks

+		for(ip in IM!InternalPropagation.allInstances()) {

+			thisModule.setIPBackLinks(ip.PropagationLogic, ip);	

+		}

+

+		--Process repair activities

+		for(r in CHESS!Repair.allInstances()) {

+			thisModule.RepairActivity(r);

+		}

+	}

+}

+

+unique lazy rule InstanceToComponent {

+	from

+		inst : UML!InstanceSpecification

+	to 

+		c : IM!Component (

+			Name <- inst.name

+		)		

+}

+

+--------------------------------------------------------------------

+-- Rules to project component instances to IM!Component elements

+--------------------------------------------------------------------

+

+rule SimpleStochasticBehaviorToComponent(inst : UML!InstanceSpecification) {

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		st : CHESS!SimpleStochasticBehavior = inst.getSBAStereotype();

+		tmpFailures : Set(TupleType(fm : String, p : Real)) = OclUndefined;

+		tmpError : IM!Error = OclUndefined;

+		tmpFailureMode : IM!FailureMode = OclUndefined;

+		myFailureModes : String = if st.failureModesDistribution.oclIsUndefined() then '' else st.failureModesDistribution endif;

+		eSeq : Sequence(IM!Error) = Sequence{};

+		tmpFGE : IM!FaultsGenerateErrors = OclUndefined;

+	}

+	to

+		fault : IM!InternalFault (

+			Component <- c,

+			Name <- inst.name + '_ift',

+			PermanentProbability <- 1,

+			Occurrence <- st.failureOccurrence.parseDistribution(),

+			TransientDuration <- thisModule.Deterministic(0)

+		)

+	do {

+		c.Faults = c.Faults.including(fault);

+		

+		for(p in inst.getPortSlots()

+				->collect(sl | sl.definingFeature)

+				->union(inst.classifier->first().ownedAttribute->select(op | op.oclIsKindOf(UML!Port)))

+				->select(p | p.hasOutputFlow())->asSet()) {

+			tmpFailures <- myFailureModes.parseFailureModesForPort(p.name);

+				

+			tmpError <- thisModule.AddError('e_' + p.name, c);

+			eSeq <- eSeq.including(tmpError);

+			for(fmSpec in tmpFailures) {

+				thisModule.AddEPF(

+					tmpError,

+					thisModule.AddFailureMode(p.name + '.' + fmSpec.fm, c),

+					thisModule.Deterministic(0),

+					1,

+					fmSpec.p

+				);

+			}

+		}

+		

+		tmpFGE <- thisModule.AddFGE(Sequence{fault}, eSeq, thisModule.Deterministic(0), 1, 1);

+		tmpFGE.PropagationLogic <- thisModule.FEXP_Fault(fault);

+		tmpFGE.PropagationLogicStringFormat <- tmpFGE.PropagationLogic.toString();

+

+		c.FaultsGeneratesErrors = c.FaultsGeneratesErrors.including(tmpFGE);

+		

+		if(not st.repairDelay.oclIsUndefined()) {

+			if(st.repairDelay.trim().size() > 0) {

+				thisModule.SimpleStochasticBehaviorRepair(inst);

+			}

+		}

+	}

+}

+--This is called only if repairDelay is not empty

+lazy rule SimpleStochasticBehaviorRepair {

+	from  

+		inst : UML!InstanceSpecification

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst); 		

+	}

+	to 

+		repair : IM!RepairActivity (

+			Target <- c,

+			Name <- inst.name + '_repair',

+			Duration <- inst.getSBAStereotype().repairDelay.parseDistribution(),

+			SuccessProbability <- 1.0,

+			When <- se

+		),

+		se : IM!ScheduleExpression

+		(

+			T <- si

+		),

+		si : IM!ScheduleExpressionImmediately

+	do {

+		se.EX <- thisModule.SCHEXP_FailureModesCollection(c.FailureModes);	

+	}

+}

+

+rule FLASpecificationToComponent(inst : UML!InstanceSpecification) {

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		st : CHESS!FLABehavior = inst.getSBAStereotype();

+		flaRules : Sequence(String) = st.fptc.regexReplaceAll('FLA:', ' ').trim().split(';');

+		tmpLeft : String = OclUndefined;

+		tmpRight : String = OclUndefined;

+		tmpFailures : Sequence(String) = OclUndefined;

+		errorMap : Map(String,IM!Error) = Map{};

+		tmpError : IM!Error = OclUndefined;

+		tmpEPF : IM!ErrorsProducesFailures = OclUndefined;

+		fToPropagate : Sequence(IM!FailureMode) = Sequence{};

+		j : Integer = 0;

+	}

+	

+	do {

+		--For every line of the FLA specification

+		for(spec in flaRules) {

+			j <- j+1;

+			tmpError <- thisModule.AddError('e_'+j,c);

+			

+			tmpRight <- spec.trim().split('->')->last().trim();			--Get right hand side

+			tmpFailures <- tmpRight.split(',');							--Get the different failures in the right hand side

+			

+			--For every failure in the right side of the rule

+			fToPropagate <- Sequence{};

+			for(failure in tmpFailures) {

+				--If it is not the 'noFailure' element

+				if(failure.indexOf('.' + thisModule.flaNoFailure) = -1) {

+					--If the failure mode does not exist already

+					if(not c.hasFailureMode(failure)) {

+						thisModule.AddFailureMode(failure, c);

+					}

+					fToPropagate <- fToPropagate.including(

+						c.FailureModes->select(f | f.localName = failure)->first()

+					);

+				}

+			}

+			

+			--If the set of failure modes to propagate for this rule

+			--is not empty, then create an EPF element

+			if(not fToPropagate.isEmpty()) {

+				tmpEPF <- thisModule.AddFLARuleEPF(tmpError);

+				tmpEPF.Destination <- fToPropagate;

+			}

+

+		}

+	}		

+}

+

+rule ErrorModelToComponent(inst : UML!InstanceSpecification) {

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		st : CHESS!ErrorModelBehavior = inst.getSBAStereotype();

+		errorModel : CHESS!ErrorModel = st.errorModel->first();

+		states : Sequence(UML!State) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(UML!State));

+		pseudo : Sequence(CHESS!Pseudostate) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(CHESS!Pseudostate));

+		transitions : Sequence(UML!Transition) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(UML!Transition));

+		tmpStereotype : OclAny = OclUndefined;

+		tmpExternalFaults : String = OclUndefined;

+	}

+	do {	

+		--Scan all CHESS!Failure elements in the error model,

+		--to create the needed IM!FailureMode elements

+		for(tr in transitions) {

+			tmpStereotype <- tr.getFailureStereotype();

+			if(not tmpStereotype.oclIsUndefined()) {

+				for(f in tmpStereotype.mode) {

+					--If it is not the 'noFailure' element

+					if(f.indexOf('.' + thisModule.flaNoFailure) = -1) {

+						--If the failure mode does not exist already

+						if(not c.hasFailureMode(f)) {

+							thisModule.AddFailureMode(f, c);

+						}

+					}

+				}

+			}

+		}

+		

+		--Transform ErrorModel States

+		for(s in states) {

+			thisModule.ErrorModelStateToError(s,inst);

+		}

+		

+		--Transform ErrorModel Pseudostates (choice)

+		for(s in pseudo->select(p | p.kind = #choice)) {

+			thisModule.ErrorModelStateToError(s,inst);

+		}

+		

+		--Transform ErrorModel <<Failure>> Transitions

+		for(tr in transitions) {

+			tmpStereotype <- tr.getSBAStereotype();

+			if(tmpStereotype.oclIsTypeOf(CHESS!Failure)) {		

+				thisModule.AddEPFFromErrorModelFailure(tmpStereotype,inst);

+			}

+		}

+				

+		--<<InternalFault>> become IM!InternalFault

+		for(tr in transitions) {

+			tmpStereotype <- tr.getSBAStereotype();

+			if(tmpStereotype.oclIsTypeOf(CHESS!InternalFault)) {

+				thisModule.InternalFault(tmpStereotype,inst);

+			}

+		}

+		

+		--Transform ErrorModel <<InternalPropagation>> Transitions,

+		--but only those for which the 'externalFaults' attribute is empty.

+		--(for the others all the external faults need to be in place)

+		for(tr in transitions) {

+			tmpStereotype <- tr.getSBAStereotype();

+			if(tmpStereotype.oclIsTypeOf(CHESS!InternalPropagation)) {

+				if(tmpStereotype.oclIsTypeOf(CHESS!InternalFault)) {

+					--Do nothing (processed elsewhere)				

+				}else{

+					--Match <<InternalPropagation>> stereotype only

+					tmpExternalFaults <- tmpStereotype.externalFaults;

+					if(tmpExternalFaults.oclIsUndefined()) {

+						thisModule.InternalPropagation(tmpStereotype,inst);

+					}

+				}

+			}

+		}

+	}

+}

+

+--------------------------------------------------------------------

+-- Rule to generate external faults for component instances

+--------------------------------------------------------------------

+

+rule PopulateExternalFaults(inst : UML!InstanceSpecification) {

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		inPorts : Set(UML!Slot) = inst.getPortSlots()->select(p | p.hasInputFlow());

+		faultName : String = OclUndefined;

+		connPort : UML!Slot = OclUndefined;

+		connComp : IM!Component = OclUndefined;

+		tmpExternalFault : IM!ExternalFault = OclUndefined;

+	}	

+	do {

+		for(p in inPorts) {

+			--Find connected port

+			connPort <- p.getSBAConnections()->first();

+			--Find connected component (slot owner)

+			if(not connPort.oclIsUndefined()) {

+				connComp <- thisModule.InstanceToComponent(connPort.refImmediateComposite());

+				for(f in connComp.FailureModes->select(fm | fm.getPortName() = connPort.name)) {

+					faultName <- f.Name.split('\\.')->last();

+					--If the external faults has not already been added then add it

+					if(c.Faults->select(ft | ft.Name = connComp.Name + '_' + f)->isEmpty()) {				

+						tmpExternalFault <- thisModule.AddExternalFault(p.name + '.' + faultName, inst);

+						tmpExternalFault.Source <- f;

+					}

+				}

+			}

+		}

+	}

+}

+

+--------------------------------------------------------------------

+-- Rule to generate FGE elements

+--------------------------------------------------------------------

+rule SimpleStochasticBehavior_FGE(inst : UML!InstanceSpecification) {

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		fge : IM!FaultsGenerateErrors = OclUndefined;

+		externals : Sequence(IM!Fault) = c.Faults->select(ft | ft.oclIsTypeOf(IM!ExternalFault));

+	}

+	do {		

+		--FGE for external faults

+		if(externals->size() > 0) {

+			fge <- thisModule.AddFGE(externals, c.Errors, 'det(0)'.parseDistribution(), 1, 1);

+			fge.PropagationLogic <- thisModule.FEXP_MultiOr(

+				externals->collect(f | thisModule.FEXP_Fault(f))

+			);

+			fge.PropagationLogicStringFormat <- fge.PropagationLogic.toString();

+		}

+	}

+}

+

+rule FLASpecification_FGE(inst : UML!InstanceSpecification) {

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		st : CHESS!FLABehavior = inst.getSBAStereotype();

+		flaRules : Sequence(String) = st.fptc.regexReplaceAll('FLA:', ' ').trim().split(';');

+		tmpLeft : String = OclUndefined;

+		tmpRight : String = OclUndefined;

+		tmpFaults : Sequence(String) = OclUndefined;

+		tmpError : IM!Error = OclUndefined;

+		fExpression : IM!FaultsExpressionNode = OclUndefined;

+		fSources : Set(IM!Fault) = Set{};

+		selFaults : Sequence(String) = OclUndefined;

+		tmpExpressions : Sequence(IM!FaultsExpressionNode) = Sequence{};

+		j : Integer = 0;

+		faultPort : String = OclUndefined;

+		faultMode : String = OclUndefined;

+		tmpFGE : IM!FaultsGenerateErrors = OclUndefined;

+	}

+	

+	do {

+		--For every line of the FLA specification

+		for(spec in flaRules) {

+			j <- j+1;

+			tmpError <- c.Errors->select(e | e.localName = 'e_'+j);

+			

+			tmpLeft <- spec.trim().split('->')->first().trim();			--Get right hand side

+			tmpFaults <- tmpLeft.split(',');							--Get the different failures in the right hand side

+			

+			--For every fault in the left side of the rule

+			tmpExpressions <- Sequence{};

+			for(fault in tmpFaults) {

+				faultPort <- fault.split('\\.')->first();

+				faultMode <- fault.split('\\.')->last();

+								

+				if(faultMode = thisModule.flaNoFailure) {

+					selFaults <- c.Faults->select(ft | ft.getPortName() = faultPort);

+					fExpression <- thisModule.FEXP_MultiOr(

+						selFaults->collect(f | thisModule.FEXP_Fault(f))

+					);

+					fExpression <- thisModule.FEXP_Not(fExpression);

+				}else if(faultMode = thisModule.flaWildcard) {

+					selFaults <- c.Faults->select(ft | ft.getPortName() = faultPort); 

+					fExpression <- thisModule.FEXP_MultiOr(

+						selFaults->collect(f | thisModule.FEXP_Fault(f))

+					);

+				}else{

+					selFaults <- c.Faults->select(ft | ft.localName = fault);

+					fExpression <- thisModule.FEXP_Fault(

+						selFaults->first()

+					);

+				}

+				tmpExpressions <- tmpExpressions->append(fExpression);

+			}

+			fExpression <- thisModule.FEXP_MultiAnd(tmpExpressions);

+			

+			tmpFGE <- thisModule.AddFGE(selFaults, tmpError, 'det(0)'.parseDistribution(), 1, 1);

+			fExpression.faultsGenerateErrors <- tmpFGE;

+			tmpFGE.PropagationLogic <- fExpression;

+			tmpFGE.PropagationLogicStringFormat <- fExpression.toString();

+		}

+	}		

+}

+

+rule ErrorModel_FGE(inst : UML!InstanceSpecification) {

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		st : CHESS!ErrorModelBehavior = inst.getSBAStereotype();

+		errorModel : CHESS!ErrorModel = st.errorModel->first();

+		states : Sequence(UML!State) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(UML!State));

+		pseudo : Sequence(CHESS!Pseudostate) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(CHESS!Pseudostate));

+		transitions : Sequence(UML!Transition) = errorModel.base_StateMachine.ownedElement->first().ownedElement->select(e | e.oclIsKindOf(UML!Transition));

+		tmpStereotype : OclAny = OclUndefined;

+		tmpExternalFaults : String = OclUndefined;

+		tmpFGE : IM!FaultsGenerateErrors = OclUndefined;

+		tmpIP : IM!InternalPropagation = OclUndefined;

+		tmpFEXP : IM!FaultsExpressionNode = OclUndefined;

+		tmpEEXP : IM!ErrorsExpressionNode = OclUndefined;

+	}

+	do {

+		--Transform ErrorModel <<InternalPropagation>> Transitions,

+		--for which the 'externalFaults' attribute is *not* empty.

+		--(the others have been processed previously in rule ErrorModelToComponent)

+		for(tr in transitions) {

+			tmpStereotype <- tr.getSBAStereotype();

+			if(tmpStereotype.oclIsTypeOf(CHESS!InternalPropagation)) {

+				if(tmpStereotype.oclIsTypeOf(CHESS!InternalFault)) {

+					--Do nothing (processed elsewhere)				

+				}else{

+					--Match <<InternalPropagation>> stereotype only

+					if(tmpStereotype.externalFaults.oclIsUndefined()) {

+						--Do nothing (processed elsewhere)

+					}else{

+						--Process InternalPropagation that have a value

+						--in the externalFaults attribute

+						--Set a default for the delay and weight

+						if(tmpStereotype.delay.oclIsUndefined()) {

+							tmpStereotype.delay <- 'det(0)';	

+						}

+						if(tmpStereotype.weight.oclIsUndefined()) {

+							tmpStereotype.weight <- '1';	

+						}

+						

+						if(tr.source.isInitialState()) {

+							tmpExternalFaults <- tmpStereotype.externalFaults;

+							tmpFEXP <- thisModule.FEXP_ParseString(tmpExternalFaults, inst);

+							tmpFGE <- thisModule.AddFGE(

+								tmpFEXP.faultsList(),

+								thisModule.errmodErrorMap->get(Tuple{e=tr.target, cc=c}),

+								tmpStereotype.delay.parseDistribution(),

+								1,

+								tmpStereotype.weight.toReal()

+							);

+							tmpFEXP.faultsGenerateErrors <- tmpFGE;

+							tmpFGE.PropagationLogic <- tmpFEXP;

+							tmpFGE.PropagationLogicStringFormat <- tmpFEXP.toString();

+						}

+						else{

+							thisModule.InternalPropagation(tmpStereotype,inst);

+						}

+					}

+				}

+			}

+		}

+	}

+}

+

+

+lazy rule AddExternalFault {

+	from

+		fault : String,

+		inst : UML!InstanceSpecification

+	to 

+		xft : IM!ExternalFault (

+			Component <- thisModule.InstanceToComponent(inst),

+			Name <- inst.name + '_xft_' + fault

+		)

+}

+

+lazy rule ErrorModelStateToError {

+	from 

+		state : UML!Vertex,

+		inst : UML!InstanceSpecification

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+	}

+	to

+		err : IM!Error (

+			Name <- inst.name + '_' + state.name,

+			Component <- c

+		)

+	do {

+		thisModule.errmodErrorMap <- thisModule.errmodErrorMap->including(Tuple{e=state, cc=c}, err);

+	}

+}

+

+lazy rule InternalFault {

+	from

+		chIntFault : CHESS!InternalFault,

+		inst : UML!InstanceSpecification

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);		

+	}

+	to

+		ift : IM!InternalFault (

+			Name <- c.Name + '_ift_' + (c.Faults->select(f | f.oclIsKindOf(IM!InternalFault))->size()+1),

+			Occurrence <- chIntFault.occurrence.parseDistribution(),

+			PermanentProbability <- 1,

+			Component <- c,

+			TransientDuration <- thisModule.Deterministic(0)

+		),

+		fge : IM!FaultsGenerateErrors (

+			Name <- c.Name + '_fge_' + (c.FaultsGeneratesErrors->size()+1),

+			Component <- c,

+			Source <- Sequence{ift},

+			Destination <- thisModule.errmodErrorMap->get(Tuple{e=chIntFault.base_Transition.target, cc=c}),

+			Weight <- 1,

+			PropagationProbability <- 1,

+			ActivationDelay <- thisModule.Deterministic(0),

+			PropagationLogic <- thisModule.FEXP_Fault(ift),

+			PropagationLogicStringFormat <- fge.PropagationLogic.toString()

+		)

+	do {

+		--Workaround for the DEEM simulator crashing when InternalFaults

+		--with zero delay are present in the model

+		if(ift.Occurrence.oclIsTypeOf(IM!Deterministic)) {

+			if(ift.Occurrence.Value = 0) {

+				ift.Occurrence.Value <- '1e-100'.toReal();

+			}

+		}

+	}

+}

+

+lazy rule InternalPropagation {

+	from 

+		chIntProp : CHESS!InternalPropagation,

+		inst : UML!InstanceSpecification

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		myDelay : String = if chIntProp.delay.oclIsUndefined() then 'det(0)' else chIntProp.delay endif;

+		myWeight : Real = if chIntProp.weight.oclIsUndefined() then 1 else chIntProp.weight.toReal() endif;

+	}

+	to

+		imIntProp : IM!InternalPropagation (

+			Component <- c,

+			Name <- c.Name + '_intprop_' + (c.InternalPropagation->size()+1),

+			Source <- Sequence{thisModule.errmodErrorMap->get(Tuple{e=chIntProp.base_Transition.source, cc=c})},

+			Destination <- Sequence{thisModule.errmodErrorMap->get(Tuple{e=chIntProp.base_Transition.target, cc=c})},

+			PropagationProbability <- 1,

+			PropagationDelay <- myDelay.parseDistribution(),

+			Weight <- myWeight,

+			PropagationLogic <- thisModule.EEXP_Error(imIntProp.Source->first()),

+			PropagationLogicStringFormat <- imIntProp.PropagationLogic.toString(),

+			FaultGuard <- thisModule.FEXP_ParseString(chIntProp.externalFaults, inst)

+		)

+}

+

+rule AddFailureMode(name : String, c : IM!Component) {

+	to 

+		fm : IM!FailureMode (

+			Name <- c.Name + '_' + name

+		)

+	do {

+		c.FailureModes <- c.FailureModes->append(fm);

+	

+		fm;

+	}

+}

+

+rule AddError(name : String, c : IM!Component) {

+	to

+		e : IM!Error (

+			Name <- c.Name + '_' + name,

+			Component <- c

+		)

+	do {

+		e;

+	}

+}

+

+lazy rule AddEPFFromErrorModelFailure {

+	from

+		f : CHESS!Failure,

+		inst : UML!InstanceSpecification

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		eSource : IM!Error = thisModule.errmodErrorMap->get(Tuple{e=f.base_Transition.source, cc=c});

+		myDelay : String = if f.delay.oclIsUndefined() then 'det(0)' else f.delay endif;

+		myWeight : Real = if f.weight.oclIsUndefined() then 1 else f.weight.toReal() endif;

+	}

+	to

+		epf : IM!ErrorsProducesFailures (

+			Name <- c.Name + '_epf_' + (c.ErrorsGeneratesFailures->size()+1),

+			Source <- Sequence{eSource},

+			Destination <- c.FailureModes->select(fm | f.mode->includes(fm.localName)),

+			Component <- c,

+			PropagationDelay <- myDelay.parseDistribution(),

+			PropagationProbability <- 1,

+			Weight <- myWeight,

+			PropagationLogic <- thisModule.EEXP_Error(eSource),

+			PropagationLogicStringFormat <- epf.PropagationLogic.toString() 

+		)

+	do {

+		epf;

+	}	

+}

+

+rule AddFLARuleEPF(e : IM!Error) {

+	to

+		epf : IM!ErrorsProducesFailures (

+			Name <- e.Name + '_epf',

+			Source <- Sequence{e},

+			Destination <- Sequence{},

+			Component <- e.Component,

+			PropagationDelay <- thisModule.Deterministic(0),

+			PropagationProbability <- 1,

+			Weight <- 1,

+			PropagationLogic <- thisModule.EEXP_Error(e),

+			PropagationLogicStringFormat <- epf.PropagationLogic.toString()

+		)

+	do{

+		epf;

+	}

+}

+

+rule AddFGE(f : Sequence(IM!Fault), e : Sequence(IM!Error), delay : IM!Distribution, p : Real, weight : Real) {

+	using {

+		c : IM!Component = f->first().Component;

+	}

+	to

+		fge : IM!FaultsGenerateErrors (

+			Name <- c.Name + '_fge_' + (c.FaultsGeneratesErrors->size()+1),

+			Component <- c,

+			Source <- f,

+			Destination <- e,

+			ActivationDelay <- delay,

+			PropagationProbability <- p,

+			Weight <- weight

+		)

+	do {

+		fge;	

+	}

+}

+

+rule AddEPF(e : IM!Error, fm : IM!FailureMode, delay : IM!Distribution, p : Real, weight : Real) {

+	using {

+		c : IM!Component = fm.Component;			

+	}

+	to 

+		epf : IM!ErrorsProducesFailures (

+			Name <- c.Name + '_epf_' + (c.ErrorsGeneratesFailures->size()+1),

+			Component <- c,

+			Source <- Set{e},

+			Destination <- Set{fm},

+			PropagationDelay <- delay,

+			PropagationProbability <- p,

+			Weight <- weight,

+			PropagationLogic <- thisModule.EEXP_Error(e),

+			PropagationLogicStringFormat <- epf.PropagationLogic.toString()

+		)

+}

+

+rule AddSourceError(fm : IM!FailureMode) {

+	using {

+		c : IM!Component = fm.Component;

+	}

+	to 

+		e : IM!Error (

+			Name <- c.Name + '_e_' + fm.Name,

+			Component <- c

+		),

+		epf : IM!ErrorsProducesFailures (

+			Source <- Set{e},

+			Destination <- Set{fm},

+			Component <- c,

+			PropagationLogic <- thisModule.EEXP_Error(e),

+			PropagationLogicStringFormat <- epf.PropagationLogic.toString()

+		)

+}

+

+--------------------------------------------------------------------

+-- Rules related to the definition of the metric

+--------------------------------------------------------------------

+

+lazy rule newEvalIntervalOfTime {

+	from

+		t : Real

+	to

+		iot : IM!IntervalOfTimeAveraged

+		(

+			begin <- 0,

+			end <- t

+		)

+}

+lazy rule newEvalInstantOfTime {

+	from

+		t : Real

+	to

+		instant : IM!InstantOfTime ( timePoint <- t )

+}

+

+--Find target failure modes to be considered based on the attributes

+--of the StateBasedAnalysis stereotype.

+rule FindTargetFailureModes(sba : CHESS!StateBasedAnalysis) {

+	using {

+		targets : Set(UML!InstanceSpecification) = Set{};

+		targetSlots : Set(UML!Slot) = Set{};

+		fmSelected : Set(IM!FailureMode) = Set{};

+	}

+	do {

+		--Find target components based on two attributes

+		-->platform

+		-->targetDepComponent

+		if(sba.targetDepComponent.isEmpty()) {

+			targets <- sba.platform->collect(p | p.base_Package.ownedMember->first())->flatten();

+		}else{

+			targets <- sba.targetDepComponent;

+		}

+		

+		

+		--Find ports of target components having an output dataflow

+		targetSlots <- targets->collect(i | i.getPortSlots())

+								->flatten()

+								->select(sl | sl.hasOutputFlow());

+	

+		--Filter ports based on 'targetPort', if set

+		if(not sba.targetPort.isEmpty()) {

+			targetSlots <- sba.targetPort.asSet()->intersection(targetSlots);

+		}

+	

+		--Process possibly existing downward delegations

+		targetSlots <- targetSlots->collect(sl | sl.getSBADelegationsDownwards())->flatten();

+		

+		--Find all failure modes related to the selected ports

+		fmSelected <-

+			 targetSlots->collect(sl | thisModule.InstanceToComponent(sl.refImmediateComposite()).FailureModes->select(fm | fm.getPortName() = sl.name))

+						->flatten()->asSet();

+

+		--Filter failure modes based on 'targetFailureMode', if set

+		if(not sba.targetFailureMode->isEmpty()) {

+			fmSelected <-

+				fmSelected->select(fm | sba.targetFailureMode->contains(fm.getModeName()));

+		}

+

+		fmSelected;	

+	}

+}

+

+rule Reliability(sba : CHESS!StateBasedAnalysis, time : Real){

+

+	using {

+		strClean : String = sba.measure.regexReplaceAll('[={}()]', ' ').trim();

+		iInstant : Integer = strClean.indexOf('instantOfTime');

+

+					

+		imsistema : IM!Sistema = IM!Sistema.allInstances()->first();

+	}

+	to

+		re : IM!Reliability (

+			Name <-	sba.base_NamedElement.name,

+			target <- thisModule.FindTargetFailureModes(sba)

+		)

+

+	do{

+		imsistema.measures.add(re);

+		if (iInstant > 0) {

+			re.evaluations.add(

+				thisModule.newEvalInstantOfTime(

+					strClean.substring(iInstant + 1 + 'instantOfTime'.size(), strClean.size()).toReal()

+				)

+			);

+		}

+		else{

+			--Should not happen!

+		}

+	}

+}

+

+rule Availability(sba : CHESS!StateBasedAnalysis) {

+	using {

+		strClean : String = sba.measure.regexReplaceAll('[={}()]', ' ').trim();

+		iInterval : Integer = strClean.indexOf('intervalEnd');

+		iInstant : Integer = strClean.indexOf('instantOfTime');

+

+		imsistema : IM!Sistema = IM!Sistema.allInstances()->first();

+	}

+	to

+		re : IM!Availability (

+			Name <-	sba.base_NamedElement.name,

+			target <- thisModule.FindTargetFailureModes(sba)

+		)

+	do{

+		imsistema.measures.add(re);

+

+		if (iInterval > 0) {

+			re.evaluations.add(

+				thisModule.newEvalIntervalOfTime(

+					strClean.substring(iInterval + 1 + 'intervalEnd'.size(), strClean.size()).toReal()

+				)

+			);

+		}

+		else if (iInstant > 0) {

+			re.evaluations.add(

+				thisModule.newEvalInstantOfTime(

+					strClean.substring(iInstant + 1 + 'instantOfTime'.size(), strClean.size()).toReal()

+				)

+			);

+		}

+		else{

+			--Should not happen!

+		}

+	}

+}

+

+rule PFD(sba : CHESS!StateBasedAnalysis) {

+	using {

+		strClean : String = sba.measure.regexReplaceAll('[={}()]', ' ').trim();

+

+		imsistema : IM!Sistema = IM!Sistema.allInstances()->first();

+	}

+	to

+		pfd : IM!FailureProbability (

+			Name <-	sba.base_NamedElement.name,

+			target <- thisModule.FindTargetFailureModes(sba)

+		)

+

+	do{

+		imsistema.measures.add(pfd);

+		

+		pfd.evaluations.add(

+			thisModule.newEvalInstantOfTime(

+				strClean.regexReplaceAll('PFD', ' ').trim().toReal()

+			)

+		);

+	}

+}

+

+--------------------------------------------------------------------

+-- Rules to create IM!Distribution elements

+--------------------------------------------------------------------

+lazy rule Exponential {

+	from

+		lambda : Real

+	to

+		e : IM!Exponential ( Rate <- lambda )

+}

+

+lazy rule Deterministic {

+	from

+		value : Real

+	to

+		d : IM!Deterministic ( Value <- value )

+}

+

+lazy rule Uniform {

+	from

+		lower : Real,

+		upper : Real

+	to

+		d : IM!Uniform ( 

+			Lower <- lower,

+			Upper <- upper

+		)

+}

+

+lazy rule Gaussian {

+	from

+		mean : Real,

+		variance : Real

+	to 

+		g : IM!Gaussian (

+			Mean <- mean,

+			Variance <- variance

+		)

+}

+

+lazy rule Gamma {

+	from

+		a : Real,

+		b : Real

+	to 

+		g : IM!Gamma (

+			Alpha <- a,

+			Beta <- b

+		)

+}

+

+lazy rule Weibull {

+	from

+		a : Real,

+		b : Real

+	to 

+		g : IM!Weibull (

+			Alpha <- a,

+			Beta <- b

+		)

+}

+

+--------------------------------------------------------------------

+-- Rules to build Faults/Errors expressions

+--------------------------------------------------------------------

+rule FEXP_Fault(f: IM!Fault) {

+	to

+		fefn : IM!FaultsExpressionFaultNode (

+			Fault <- f

+		)

+	do{

+		fefn;

+	}

+}

+

+rule FEXP_Or(e1 : IM!FaultsExpressionNode, e2: IM!FaultsExpressionNode) {

+	to

+		feon : IM!FaultsExpressionOrNode (

+			FaultsExpression1 <- e1,

+			FaultsExpression2 <- e2

+		)

+	do{

+		feon;

+	}

+}

+

+rule FEXP_And(e1 : IM!FaultsExpressionNode, e2: IM!FaultsExpressionNode) {

+	to

+		fean : IM!FaultsExpressionAndNode (

+			FaultsExpression1 <- e1,

+			FaultsExpression2 <- e2

+		)

+	do{

+		fean;

+	}

+}

+

+rule FEXP_Not(e : IM!FaultsExpressionNode) {

+	to 

+		fenn : IM!FaultsExpressionNotNode (

+			FaultsExpression <- e	

+		)

+	do {

+		fenn;

+	}

+}

+

+rule FEXP_MultiOr(fe : Sequence(IM!FaultsExpressionNode)) {

+	using {

+		tmpExpression1 : IM!FaultsExpressionNode = OclUndefined;

+		tmpExpression2 : IM!FaultsExpressionNode = OclUndefined;

+		tmpSequence : Sequence(IM!Fault) = fe;

+	}

+	do {

+		if(fe->size() = 1) {

+			tmpExpression1 <- fe->first();

+		}else{

+			tmpExpression1 <- tmpSequence->first();

+			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());

+			tmpExpression2 <- tmpSequence->first();

+			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());

+			

+			tmpExpression1 <- thisModule.FEXP_Or(tmpExpression1,tmpExpression2);

+			for(ft in tmpSequence) {

+				tmpExpression2 <- 	thisModule.FEXP_Or(

+										tmpExpression1,

+										ft

+								 	);

+				tmpExpression1 <- tmpExpression2;

+			}

+		}

+		

+		tmpExpression1;

+	}	

+}

+

+rule FEXP_MultiAnd(fe : Sequence(IM!FaultsExpressionNode)) {

+	using {

+		tmpExpression1 : IM!FaultsExpressionNode = OclUndefined;

+		tmpExpression2 : IM!FaultsExpressionNode = OclUndefined;

+		tmpSequence : Sequence(IM!Fault) = fe;

+	}

+	do {

+		if(fe->size() = 1) {

+			tmpExpression1 <- fe->first();

+		}else{

+			tmpExpression1 <- tmpSequence->first();

+			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());

+			tmpExpression2 <- tmpSequence->first();

+			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());

+			

+			tmpExpression1 <- thisModule.FEXP_And(tmpExpression1,tmpExpression2);

+			for(ft in tmpSequence) {

+				tmpExpression2 <- 	thisModule.FEXP_And(

+										tmpExpression1,

+										ft

+								 	);

+				tmpExpression1 <- tmpExpression2;

+			}

+		}

+		

+		tmpExpression1;

+	}	

+}

+

+rule EEXP_Error(e: IM!Error) {

+	to

+		eeen : IM!ErrorsExpressionErrorNode (

+			Error <- e

+		)

+	do{

+		eeen;

+	}

+}

+

+--Parses a string into a FaultsExpression

+---TODO: Implement more advanced parsing

+rule FEXP_ParseString(exp : String, inst : UML!InstanceSpecification) {

+	using {

+		c : IM!Component = thisModule.InstanceToComponent(inst);

+		tmpSplit : Sequence(String) = OclUndefined;

+		expRet : IM!FaultsExpressionNode = OclUndefined;

+	}

+	do {

+		if(not exp.oclIsUndefined()) {

+			tmpSplit <- exp.split(' and | AND ');

+			if(tmpSplit.size() > 1) {

+				expRet <-

+				thisModule.FEXP_MultiAnd(

+					tmpSplit->collect(

+						ft | c.Faults->select(ff | ff.localName = ft.trim())->first()

+					)->

+					flatten()->

+					collect(ft | thisModule.FEXP_Fault(ft))

+				);

+			}else {

+				tmpSplit <- exp.split(' or | OR ');

+				if(tmpSplit.size() > 1) {

+					expRet <-

+					thisModule.FEXP_MultiOr(

+						tmpSplit->collect(

+							s | c.Faults->select(ft | ft.localName = s.trim())

+						)->

+						flatten()->

+						collect(ft | thisModule.FEXP_Fault(ft))

+					);

+				}else {

+					expRet <- thisModule.FEXP_Fault(tmpSplit->first());

+				}

+			}

+		}

+		

+		expRet;

+	}

+}

+

+rule setFGEBackLinks(fen: IM!FaultsExpressionNode, fge: IM!FaultsGenerateErrors ) {

+	do {

+		fen.faultsGenerateErrors <- fge;

+		if (fen.oclIsTypeOf(IM!FaultsExpressionOrNode)) {

+			thisModule.setFGEBackLinks(fen.FaultsExpression1, fge);

+			thisModule.setFGEBackLinks(fen.FaultsExpression2, fge);

+		}else if (fen.oclIsTypeOf(IM!FaultsExpressionAndNode)){

+			thisModule.setFGEBackLinks(fen.FaultsExpression1, fge);

+			thisModule.setFGEBackLinks(fen.FaultsExpression2, fge);

+		}else if (fen.oclIsTypeOf(IM!FaultsExpressionNotNode)) {

+			thisModule.setFGEBackLinks(fen.FaultsExpression, fge);

+		}

+	}

+}

+

+rule setEPFBackLinks(een: IM!ErrorsExpressionNode, epf: IM!ErrorsProducesFailures ) {

+	do {

+		een.errorPropagation <- epf;

+	}

+}

+

+rule setIPBackLinks(een: IM!ErrorsExpressionNode, ip: IM!InternalPropagation ) {

+	do {

+		een.errorPropagation <- ip;

+	}

+}

+

+

+--Rule for Repair activities

+unique lazy rule RepairActivity {

+	from

+		r : CHESS!Repair

+	to

+		act : IM!RepairActivity

+		(

+			Name <- r.base_Activity.name,

+			SuccessProbability <- r.probSuccess.toReal(),

+			Duration <- r.duration.parseDistribution(),

+			When <- timeexp

+		),

+		timeexp : IM!ScheduleExpression

+		(

+				T <-

+				if r.when.trim().startsWith('Periodic') then

+					thisModule.SCHEXP_Periodic(r.when)

+				else

+					if r.when.trim().startsWith('AtTime') then

+						thisModule.SCHEXP_AtTime(r.when)

+					else

+						OclUndefined

+					endif

+				endif,

+				EX <- timeexp_ex

+		),

+		timeexp_ex : IM!ScheduleExpressionTrue

+	do {

+		act.Target <- UML!Slot.allInstances()

+						->select(sl | r.targets->includes(sl.definingFeature))

+						->collect(sl | sl.value->first().instance)

+						->select(i | thisModule.umlInstancesRelevant->includes(i))

+						->collect(i | thisModule.InstanceToComponent(i));

+	}

+}

+

+--Rule for ErrorDetection activities

+unique lazy rule ErrorDetectionActivity {

+	from

+		r : CHESS!ErrorDetection

+	to

+		act : IM!DetectionActivity

+		(

+			Name <- r.base_Activity.name,

+			Coverage <- r.probSuccess.toReal(),

+			Duration <- r.duration.parseDistribution(),

+			When <- timeexp

+		),

+		timeexp : IM!ScheduleExpression

+		(

+				T <-

+				if r.when.trim().startsWith('Periodic') then

+					thisModule.SCHEXP_Periodic(r.when)

+				else

+					if r.when.trim().startsWith('AtTime') then

+						thisModule.SCHEXP_AtTime(r.when)

+					else

+						OclUndefined

+					endif

+				endif,

+				EX <- timeexp_ex

+		),

+		timeexp_ex : IM!ScheduleExpressionTrue

+	do {

+		act.Target <- UML!Slot.allInstances()

+						->select(sl | r.targets->includes(sl.definingFeature))

+						->collect(sl | sl.value->first().instance)

+						->collect(i | thisModule.InstanceToComponent(i));

+	}

+}

+

+--rule RepairActivity(r : IM!RepairActivity){

+--

+--	to

+--		se : IM!ScheduleExpression

+--		(

+--			T <- si

+--		),

+--		si : IM!ScheduleExpressionImmediately

+--	do{

+--		r.When <- se;

+--		for (c in r.Target){

+--			for(fm in c.FailureModes) {

+--				thisModule.SchedCond(fm);

+--			}

+--		}

+--		if (thisModule.TempScen->size() = 1){

+--			se.EX <- thisModule.TempScen->first();

+--		}else{

+--			for(scen in thisModule.TempScen){

+--				if (scen <> thisModule.TempScen->last()){

+--					thisModule.CreateScenOrExpr();

+--				}

+--			}

+--			thisModule.TempScen->addAll(thisModule.TempScenSeq);

+--

+--			for(scen in thisModule.TempScen){

+--				if (scen.oclIsTypeOf(IM!ScheduleExpressionOr)){

+--					scen.e1 <- thisModule.TempScen.at(thisModule.Counter);

+--					thisModule.Counter <- thisModule.Counter+1;

+--					scen.e2 <- thisModule.TempScen.at(thisModule.Counter);

+--					thisModule.Counter <- thisModule.Counter+1;

+--				}

+--			}

+--			se.EX <- thisModule.TempScen->last();

+--		}

+--

+--		thisModule.TempScen.clear();

+--		thisModule.TempScenSeq.clear();

+--		thisModule.Counter <- 1;

+--	}

+--}

+

+rule SchedCond(fm : IM!FailureMode){

+

+	to

+		scefn : IM!ScheduleExpressionFailed (

+			failureMode <- fm

+		)

+

+	do{

+		thisModule.TempScen.add(scefn);

+	}

+}

+

+rule CreateScenOrExpr(){

+

+	to

+		sceon : IM!ScheduleExpressionOr

+

+	do{

+		thisModule.TempScenSeq.add(sceon);

+	}

+

+}

+

+--------------------------------------------------------------------

+-- Rules to generate ScheduleExpression elements

+--------------------------------------------------------------------

+

+lazy rule SCHEXP_Periodic {

+	from

+		s : String

+	using {

+		sClean : String = s.regexReplaceAll('[={}()]', ' ').trim();

+	}

+	to

+		p : IM!ScheduleExpressionPeriodic

+		(

+			PeriodDuration <- d

+		),

+		d : IM!Deterministic

+		(

+			Value <- sClean.substring('Periodic'.size()+1, sClean.size()).toReal()

+		)

+}

+lazy rule SCHEXP_AtTime {

+	from

+		s : String

+	using {

+		sClean : String = s.regexReplaceAll('[={}()]', ' ').trim();

+	}

+	to

+		p : IM!ScheduleExpressionAtTime

+		(

+			t <- sClean.substring('AtTime'.size()+1, sClean.size()).toReal()

+		)

+}

+

+rule SCHEXP_Or(exp1 : IM!ScheduleExpressionCond, exp2 : IM!ScheduleExpressionCond) {

+	to 

+		e : IM!ScheduleExpressionOr

+		(

+			e1 <- exp1,

+			e2 <- exp2			

+		)

+	do {

+		e;

+	}

+}

+

+rule SCHEXP_And(exp1 : IM!ScheduleExpressionCond, exp2 : IM!ScheduleExpressionCond) {

+	to 

+		e : IM!ScheduleExpressionAnd

+		(

+			e1 <- exp1,

+			e2 <- exp2			

+		)

+	do {

+		e;

+	}

+}

+

+rule SCHEXP_FailureMode(fm : IM!FailureMode) {

+	to

+		e : IM!ScheduleExpressionFailed

+		(

+			failureMode <- fm			

+		)

+	do {

+		e;

+	}

+}

+

+rule SCHEXP_MultiOr(schSeq : Set(IM!ScheduleExpressionCond)) {

+	using {

+		tmpExpression1 : IM!ScheduleExpressionCond = OclUndefined;

+		tmpExpression2 : IM!ScheduleExpressionCond = OclUndefined;

+		tmpSequence : Sequence(IM!ScheduleExpressionCond) = schSeq;

+	}

+	do {

+		if(schSeq->size() = 1) {

+			tmpExpression1 <- schSeq->first();

+		}else{

+			tmpExpression1 <- tmpSequence->first();

+			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());

+--			tmpExpression2 <- tmpSequence->first();

+--			tmpSequence <- tmpSequence.subSequence(2, tmpSequence.size());

+--			

+--			tmpExpression1 <- thisModule.SCHEXP_Or(tmpExpression1,tmpExpression2);

+			

+			for(ee in tmpSequence) {

+				tmpExpression2 <- 	thisModule.SCHEXP_Or(

+										tmpExpression1,

+										ee

+								 	);

+				tmpExpression1 <- tmpExpression2;

+			}

+		}

+		

+		tmpExpression1;

+	}	

+}

+

+rule SCHEXP_FailureModesCollection(fms : Set(IM!FailureMode)) {

+	using {

+		tmp : IM!ScheduleExpressionCondition = OclUndefined;

+	}

+	do {

+		tmp <-

+			thisModule.SCHEXP_MultiOr(

+				fms->collect(fm | thisModule.SCHEXP_FailureMode(fm))

+			);

+

+		tmp;

+	}

+}

+

+--------------------------------------------------------------------

+-- Rules for allocation

+--------------------------------------------------------------------

+rule Allocation(a : MARTE!Assign) {

+	using {

+		tmpXFT : IM!ExternalFault = OclUndefined;

+	}

+	do {

+		for(instFrom in a.from) {

+			for(instTo in a.to) {

+				for(fm in thisModule.InstanceToComponent(instTo).FailureModes) {			

+					tmpXFT <- thisModule.AddExternalFault(fm.getModeName(), instFrom);

+					tmpXFT.Source <- fm;

+					tmpXFT.Name <- instFrom.name + '_allocation_' + fm.Name;

+				}				

+			}

+		}

+	}

+}

+--rule Assign (a : MARTE!Assign){

+--

+--	do{

+--		--"from" and "to" are keywords in ATL... (works anyway, only issue: they are highlighted)

+--		thisModule.Instances.addAll(a.from);

+----		thisModule.Components.addAll(a.to->collect(f | f.classifier->first()));

+--

+--		--get also connectors from the allocated HW/SW

+--		for (f in a.from){

+--			thisModule.Connectors.addAll(f.owner.getConnectors);

+--		}

+--		for (t in a.to){

+--			thisModule.Connectors.addAll(t.owner.getConnectors);

+--		}

+--

+--		--finally get ports from the allocated HW/SW

+--		for (f in a.from){

+--			for (i in f.owner.getInstances){

+--				thisModule.Ports.addAll(i.slot->collect(d | d.definingFeature));

+--			}

+--		}

+--		for (t in a.to){

+--			for (i in t.owner.getInstances){

+--				thisModule.Ports.addAll(i.slot->collect(d | d.definingFeature));

+--			}

+--		}

+--	}

+--}

+

+--Find allocation specifications related to a given platform

+helper context UML!Package def : getAllocations() : Set(MARTE!Assign) =

+	MARTE!Assign.allInstances()->select(a | a.base_Comment.owner = self.ownedElement->first().classifier->first());

+

+--Find instances involved in allocations related to a given platform

+helper context UML!Package def: getAllocationsInstances() : Set(UML!InstanceSpecification) =

+	self.getAllocations()->collect(a | a.from->union(a.to))->flatten();	

+

+--Check if a IM!Component already contains a specific failure mode

+helper context IM!Component def: hasFailureMode(fm : String) : Boolean =

+	not self.FailureModes->select(f | f.localName.trim() = fm.trim())->isEmpty();

+

+--Check if a IM!Component already contains a specific fault

+helper context IM!Component def: hasFault(fm : String) : Boolean =

+	not self.Faults->select(f | f.localName.trim() = fm.trim())->isEmpty();

+

+--Get <<Failure>> stereotype from a Transition

+helper context UML!Transition def: getFailureStereotype() : CHESS!Failure =

+	CHESS!Failure.allInstances()->select(f | f.base_Transition = self)->first();

+

+--Get <<ErrorState>> stereotype from a State

+helper context UML!State def: getErrorStateStereotype() : CHESS!ErrorState =

+	CHESS!ErrorState.allInstances()->select(e | e.base_State = self)->first();

+

+--Check if a Vertex is an initial state (healty state of the error model)

+helper context UML!Vertex def: isInitialState() : Boolean =

+	if(self.oclIsKindOf(CHESS!Pseudostate)) then

+		self.kind = #initial

+	else

+		false

+	endif;

+

+--Remove the component name

+helper context String def: noNamespace(n : String) : String =

+	self.regexReplaceAll(n + '_', '');

+helper context IM!Fault def: localName : String =

+	let fClean : String = self.Name.noNamespace(self.Component.Name)

+	in fClean.substring(5, fClean.size());	--Removes the initial xft_ or ift_ prefix

+helper context IM!Error def: localName : String =

+	self.Name.noNamespace(self.Component.Name);

+helper context IM!FailureMode def: localName : String =

+	self.Name.noNamespace(self.Component.Name);

+helper context IM!Threat def: fullName : String = self.Name;

+

+--Get info on a IM!Fault and IM!FailureMode

+helper context IM!Fault def: getPortName() : String =

+	self.localName.split('\\.').at(1);

+helper context IM!Fault def: getModeName() : String =

+	self.localName.split('\\.').at(2);

+helper context IM!FailureMode def: getPortName() : String =

+	self.localName->split('\\.')->at(1);

+helper context IM!FailureMode def: getModeName() : String =

+	self.localName.split('\\.').at(2);

+

+

+--------------------------------------------------------------------

+-- Parse strings in VSL notation into IM!Distribution elements

+--------------------------------------------------------------------

+helper context String def: parseDistribution() : IM!Distribution = 

+	let dist : String = self.trim().toLower() in

+	if dist.startsWith('exp') then

+		dist.parseExponential()

+	else if dist.startsWith('det') then

+		dist.parseDeterministic()

+	else if dist.startsWith('uni') then

+		dist.parseUniform()

+	else if dist.startsWith('norm') or dist.startsWith('gauss') then

+		dist.parseGaussian()

+	else if dist.startsWith('gam') then

+		dist.parseGamma()

+	else if dist.startsWith('wei') then

+		dist.parseWeibull()

+	else

+		thisModule.Exponential(0)

+	endif endif endif endif endif endif;

+

+helper context String def: parseExponential() : IM!Exponential =

+	thisModule.Exponential(self.substring(self.indexOf('(')+2, self.indexOf(')')).toReal());

+

+helper context String def: parseDeterministic() : IM!Deterministic =

+	thisModule.Deterministic(self.substring(self.indexOf('(')+2, self.indexOf(')')).toReal());

+

+helper context String def: parseUniform() : IM!Uniform =

+	let iComma : Integer = self.indexOf(',') in

+	thisModule.Uniform(

+		self.substring(self.indexOf('(')+2, iComma).toReal(),

+		self.substring(iComma+2, self.indexOf(')')).toReal()

+	);

+

+helper context String def: parseGaussian() : IM!Gaussian =

+	let iComma : Integer = self.indexOf(',') in

+	thisModule.Gaussian(

+		self.substring(self.indexOf('(')+2, iComma).toReal(),

+		self.substring(iComma+2, self.indexOf(')')).toReal()

+	);

+

+helper context String def: parseGamma() : IM!Gamma =

+	let iComma : Integer = self.indexOf(',') in

+	thisModule.Gamma(

+		self.substring(self.indexOf('(')+2, iComma).toReal(),

+		self.substring(iComma+2, self.indexOf(')')).toReal()

+	);

+

+helper context String def: parseWeibull() : IM!Gamma =

+	let iComma : Integer = self.indexOf(',') in

+	thisModule.Weibull(

+		self.substring(self.indexOf('(')+2, iComma).toReal(),

+		self.substring(iComma+2, self.indexOf(')')).toReal()

+	);

+

+--------------------------------------------------------------------

+-- Collections that are used to filter and categorize model elements

+--------------------------------------------------------------------

+helper def : Instances : Sequence(UML2!InstanceSpecification) = Sequence {};

+helper def : Connectors : Set(UML2!InstanceSpecification) = Set {};

+helper def : Comments : Set (UML2!Comment) = Set {};

+helper def : Ports : Set (UML2!Port) = Set {};

+helper def : States : Set(UML2!State) = Set{};

+helper def : Transitions : Set(UML2!Tansition) = Set{};

+

+helper context UML!InstanceSpecification def: getBaseItem() : UML!Classifier = self.classifier->first();

+

+--Find the SimpleStochasticBehavior element associated with a Classifier or an InstanceSpecification

+--if it exists. Returns OclUndefined otherwise

+helper context UML!Classifier def: getSimpleStochasticBehavior() : CHESS!SimpleStochasticBehavior =

+	CHESS!SimpleStochasticBehavior->allInstances()->select(ssb | ssb.base_Class = self)->first();

+

+helper context UML!InstanceSpecification def: getSimpleStochasticBehavior() : CHESS!SimpleStochasticBehavior =

+	let instssb : CHESS!SimpleStochasticBehavior = 

+		CHESS!SimpleStochasticBehavior->allInstances()->select(ssb | ssb.base_InstanceSpecification = self)->first() in

+	if instssb <> OclUndefined then instssb else 

+		let base : UML!Class = self.getBaseItem() in 

+			if base = OclUndefined then base else base.getSimpleStochasticBehavior() endif

+	endif;

+

+--------------------------------------------------------------------

+-- Helpers to get dependability information from stereotypes

+--------------------------------------------------------------------

+	

+--Do we have dependability information for this instance?

+helper context UML!InstanceSpecification def: hasSBAInformation() : Boolean = self.getSBAStereotype() <> OclUndefined;

+

+--If the InstanceSpecification has its own stereotype then return it,

+-- otherwise return the one of the classifier

+helper context UML!InstanceSpecification def: getSBAStereotype() : OclAny = 

+	let s : OclAny = self.getSBAStereotypeInstance() in

+	if s = OclUndefined then self.classifier->first().getSBAStereotypeClassifier() else s endif;

+

+--Get the SBA stereotype applied to the instance, if any

+helper context UML!InstanceSpecification def: getSBAStereotypeInstance() : OclAny =

+	thisModule.sbaStereotypes->collect(s | s.allInstances())->flatten()->select(st | st.base_InstanceSpecification = self)->first();

+

+--Find the CHESS stereotype that is used on a given instance specification, or on its classifier

+helper context UML!Class def: getSBAStereotypeClassifier() : OclAny =

+	thisModule.sbaStereotypes->collect(s | s.allInstances())->flatten()->select(st | st.base_Class = self)->first();

+

+--Recursive helper to identify which instances need to be taken into account,

+--i.e., to identify those that have dependability information attached, or no

+--subinstances

+helper context UML!InstanceSpecification  def: findSBAConstituents() : Set(UML!InstanceSpecification) =

+	if self.hasSBAInformation() or self.getSubInstances().isEmpty() then

+		Set{self}

+	else

+		self.getSubInstances()->collect(i | i.findSBAConstituents())->flatten()

+	endif;

+

+--Get the stereotype associated to an error model transition

+helper context UML!Transition def: getSBAStereotype() : OclAny =

+	thisModule.sbaTransitions->collect(s | s.allInstances())->

+								flatten()->select(t | t.base_Transition = self)->

+								first();

+

+--Does this error model transition has dependability information associated with it?

+helper context UML!Transition def: hasSBAInformation() : Boolean = not self.getSBAStereotype().oclIsUndefined();

+

+--------------------------------------------------------------------

+-- Helpers to get, start from a given InstanceSpecification,

+-- port instances and subcomponent instances

+--------------------------------------------------------------------

+helper context UML!InstanceSpecification def: getPortSlots() : Set(UML!Slot) = 

+	self.slot->select(s | s.definingFeature.oclIsKindOf(UML!Port));

+

+helper context UML!InstanceSpecification def: getSubInstanceSlots() : Set(UML!Slot) =

+	self.slot->select(s | not s.definingFeature.oclIsKindOf(UML!Port));

+

+helper context UML!InstanceSpecification def: getSubInstances() : Set(UML!InstanceSpecification) = 

+	self.getSubInstanceSlots()->collect(s | s.value->first().instance);

+

+helper context UML!InstanceSpecification def: isSubInstanceOf(parent : UML!InstanceSpecification) : Boolean =

+	parent.getSubInstances()->includes(self);

+

+--Get the name of a port slot, as the name of the originating port

+helper context UML!Slot def: name : String = self.definingFeature.name;

+ 

+--helper context UML!Slot def: getConnectedSlotsInput() : Set(UML!Slot) =

+--	self;

+--helper context UML!Slot def: getConnectedSlotsOutput() : Set(UML!Slot) = 

+--	self;

+--helper context UML!Slot def: getConnectedSlots() : Set(UML!Slot) =

+--	self.getConnectedSlotsInput->union(self.getConnectedSlotsOutput);

+

+--------------------------------------------------------------------

+-- Check if a Port (or Slot) has input or output dataflow

+--------------------------------------------------------------------

+helper context UML!Slot def: hasInputFlow() : Boolean = self.definingFeature.hasInputFlow();

+helper context UML!Slot def: hasOutputFlow() : Boolean = self.definingFeature.hasOutputFlow();

+helper context UML!Port def: hasInputFlow() : Boolean =

+	let clientserverport : MARTE!ClientServerPort = MARTE!ClientServerPort.allInstances()->select(c | c.base_Port = self)->first() in

+	let flowport : SYSML!FlowPort = SYSML!FlowPort.allInstances()->select(c | c.base_Port = self)->first() in

+	let flowportmarte : MARTE!FlowPort = MARTE!FlowPort.allInstances()->select(c | c.base_Port = self)->first() in

+	if clientserverport <> OclUndefined then clientserverport.hasInputFlow() else

+		if flowport <> OclUndefined then flowport.hasInputFlow() else

+			if flowportmarte <> OclUndefined then flowportmarte.hasInputFlowMarte() else

+				false

+	endif endif endif;

+helper context UML!Port def: hasOutputFlow() : Boolean =

+	let clientserverport : MARTE!ClientServerPort = MARTE!ClientServerPort.allInstances()->select(c | c.base_Port = self)->first() in

+	let flowport : SYSML!FlowPort = SYSML!FlowPort.allInstances()->select(c | c.base_Port = self)->first() in

+	let flowportmarte : MARTE!FlowPort = MARTE!FlowPort.allInstances()->select(c | c.base_Port = self)->first() in

+	if clientserverport <> OclUndefined then clientserverport.hasOutputFlow() else

+		if flowport <> OclUndefined then flowport.hasOutputFlow() else

+			if flowportmarte <> OclUndefined then flowportmarte.hasOutputFlowMarte() else

+				false

+	endif endif endif;

+helper context SYSML!FlowPort def: hasInputFlow() : Boolean = self.direction <> #out;

+helper context SYSML!FlowPort def: hasOutputFlow() : Boolean = self.direction = #out or self.direction = #inout;

+helper context MARTE!FlowPort def: hasInputFlowMarte() : Boolean = self.direction <> #out;

+helper context MARTE!FlowPort def: hasOutputFlowMarte() : Boolean = self.direction = #out or self.direction = #inout;

+helper context MARTE!ClientServerPort def: hasInputFlow() : Boolean = self.kind <> #provided;

+helper context MARTE!ClientServerPort def: hasOutputFlow() : Boolean = self.kind <> #required;

+

+--------------------------------------------------------------------

+-- Helpers to explore the model and get the component that is

+-- connected to the other side of a port

+--------------------------------------------------------------------

+

+--Get connectors that are linked to a certain port instance

+helper context UML!Slot def: getConnectors() : Set(UML!InstanceSpecification) =

+	thisModule.umlInstancesConnectors->

+				select(c | not c.slot->select(s | s.definingFeature = self.definingFeature 

+					and s.value->first().instance = self.refImmediateComposite())->isEmpty());

+

+--Is the connector instance a "normal" connection

+--betweentwo components at the same level?

+helper context UML!InstanceSpecification def: isConnection() : Boolean = 

+	let sl : OrderedSet(UML!Slot) = self.slot->asOrderedSet() in

+	let i1 : UML!InstanceSpecification = sl->first().value->first().instance in

+	let i2 : UML!InstanceSpecification = sl->last().value->first().instance in

+	if i1.oclIsUndefined() or i2.oclIsUndefined() then false else

+		not i1.isSubInstanceOf(i2) and not i2.isSubInstanceOf(i1)

+	endif;

+

+--Is the connector instance a delegation?

+helper context UML!InstanceSpecification def: isDelegation() : Boolean = 

+	let sl : OrderedSet(UML!Slot) = self.slot->asOrderedSet() in

+	let i1 : UML!InstanceSpecification = sl->first().value->first().instance in

+	let i2 : UML!InstanceSpecification = sl->last().value->first().instance in

+	i1.isSubInstanceOf(i2) or i2.isSubInstanceOf(i1);

+

+--Get port instances that are *directly* connected to a certain port instance

+helper context UML!Slot def: getConnectedImmediate() : Set(UML!Slot) =

+	let connectorsSlots : Set(UML!Slot) = 

+	self.getConnectors()->select(c | c.isConnection())->

+							collect(c | c.slot)->

+							flatten()->

+							select(s | s.definingFeature <> self.definingFeature)

+	in

+	connectorsSlots->collect(s | s.value->first().instance.slot->

+									select(sl | sl.definingFeature = s.definingFeature))->flatten();

+

+--Get port instances that receive/send delegation from/to a certain port instance

+helper context UML!Slot def: getDelegationEnds() : Set(UML!Slot) =

+	let connectorsSlots : Set(UML!Slot) =

+	self.getConnectors()->select(c | c.isDelegation())->

+							collect(c | c.slot)->

+							flatten()->

+							select(s | s.definingFeature <> self.definingFeature)

+	in

+	connectorsSlots->collect(s | s.value->first().instance.slot->

+									select(sl | sl.definingFeature = s.definingFeature))->flatten();

+

+--Get taget(s) of delegation in sub-instances

+helper context UML!Slot def: getDelegationEndsDownwards() : Set(UML!Slot) = 

+	self.getDelegationEnds()->select(s | s.refImmediateComposite().isSubInstanceOf(self.refImmediateComposite()));

+

+--Get source(s) of delegation in parent instance

+helper context UML!Slot def: getDelegationEndsUpwards() : Set(UML!Slot) = 

+	self.getDelegationEnds()->select(s | self.refImmediateComposite().isSubInstanceOf(s.refImmediateComposite()));

+

+--Get the target of delegation taking into account SBA stereotypes,

+--i.e., get the first slot whose owning instance has SBA information.

+--(it can be even the slot under examination itself)

+helper context UML!Slot def: getSBADelegationsDownwards() : Set(UML!Slot) =

+	let inst : UML!InstanceSpecification = self.refImmediateComposite() in

+	let deleg : Set(UML!Slot) = self.getDelegationEndsDownwards() in

+	if deleg.isEmpty() or 

+		inst.hasSBAInformation() or 

+		inst.getSubInstances().isEmpty() 

+	then

+		Set{self}

+	else

+		deleg->collect(e | e.getSBADelegationsDownwards())->flatten()

+	endif;

+helper context UML!Slot def: getSBADelegationsUpwards() : Set(UML!Slot) =

+	let inst : UML!InstanceSpecification = self.refImmediateComposite() in

+	let deleg : Set(UML!Slot) = self.getDelegationEndsUpwards() in

+	if deleg.isEmpty() then

+		Set{self}

+	else

+		deleg->collect(e | e.getSBADelegationsUpwards())->flatten()

+	endif;

+

+--Get the target of connection taking into account SBA stereotypes,

+--i.e., get the first slot whose owning instance has SBA information.

+--(it can be even the slot directly connected to the one under examination)

+helper context UML!Slot def: getSBAConnections() : Set(UML!Slot) =

+	self.getSBADelegationsUpwards()->

+		collect(d | d.getConnectedImmediate())->flatten()->

+		collect(sl | sl.getSBADelegationsDownwards())->flatten();	

+

+--------------------------------------------------------------------

+-- Parse failure modes for SimpleStochasticBehavior elements

+--------------------------------------------------------------------

+

+--Split the specification into different parts, one for each port, and find the

+--failure modes for the port name passed as input. Calls parseFailureModes() below

+helper context String def: parseFailureModesForPort(port : String) : Set(TupleType(fm: String, p: Real)) =

+	let strSeq : Sequence(String) = self.trim()->split(';') in

+	let strSelected : String = strSeq->select(s | s.trim().startsWith(port))->first() in

+	if strSelected = OclUndefined then

+		strSeq->first().parseFailureModes()

+	else 

+		strSelected.parseFailureModes()

+	endif;

+

+--From the specification in string format get the failure modes and proabilities for a single port

+helper context String def: parseFailureModes() : Set(TupleType(fm: String, p: Real)) =

+	let str : String = 

+		if self.indexOf('{') < 0 then

+			self.trim()

+		else

+			self.substring(self.indexOf('{')+2, self.size()).replaceAll('}', ' ').trim()

+		endif	

+	in

+	let default : Set(TupleType(fm: String, p: Real)) = Set{Tuple{fm = 'failure', p = 1.0}} in

+	if str.size() = 0 then

+		default

+	else

+		let ret : Set(TupleType(fm: String, p: Real)) = 

+		str.split(',')->collect(s | s.split(':'))->

+			collect(seq | Tuple{fm = seq->first().trim(), p = seq.last().toReal()})

+		in

+		if ret->isEmpty() then

+			default

+		else

+			ret

+	endif endif;

+

+--------------------------------------------------------------------

+-- Helpers to manage the metrics

+--------------------------------------------------------------------

+

+--temporary parser to retrieve which dependability measure a SBAnalysis refers to

+helper context CHESS!StateBasedAnalysis def: WhichMeasure : String =

+	if self.measure.startsWith('Reliability') then 'Reliability'

+	else if self.measure.startsWith('Availability') then 'Availability'

+	else if self.measure.toUpper().startsWith('PFD') then 'PFD' 

+	else 'error'

+	endif endif endif;

+	

+--------------------------------------------------------------------

+-- Helpers to manage Faults/Errors expressions

+--------------------------------------------------------------------

+helper context IM!FaultsExpressionFaultNode def: toString(): String = self.Fault.Name;

+helper context IM!FaultsExpressionOrNode def: toString(): String = '(' + self.FaultsExpression1.toString() + ' OR ' + self.FaultsExpression2.toString() + ')';

+helper context IM!FaultsExpressionAndNode def: toString() : String = '(' + self.FaultsExpression1.toString() + ' AND ' + self.FaultsExpression2.toString() + ')';

+helper context IM!FaultsExpressionNotNode def: toString() : String = '(NOT ' + self.FaultsExpression.toString() + ')';

+

+--Get the list of Fault elements involved in a FaultsExpression

+helper context IM!FaultsExpressionNode def: faultsList() : Sequence(IM!Fault) = 

+	if self.oclIsTypeOf(IM!FaultsExpressionFaultNode) then

+		let fexp : IM!FaultsExpressionFaultNode = self in 

+		Sequence{fexp.Fault}

+	else if self.oclIsTypeOf(IM!FaultsExpressionNotNode) then

+		let fexp : IM!FaultsExpressionNotNode = self in 

+		fexp.FaultsExpression.faultsList()

+	else if self.oclIsTypeOf(IM!FaultsExpressionAndNode) then

+		let fexp : IM!FaultsExpressionAndNode = self in 

+		fexp.FaultsExpression1.faultsList()->union(fexp.FaultsExpression2.faultsList())

+	else if self.oclIsTypeOf(IM!FaultsExpressionOrNode) then

+		let fexp : IM!FaultsExpressionOrNode = self in 

+		fexp.FaultsExpression1.faultsList()->union(fexp.FaultsExpression2.faultsList())

+	else

+		Sequence{}	--it should never happen

+	endif endif endif endif;

+

+helper context IM!ErrorsExpressionErrorNode def: toString(): String = self.Error.Name;

+helper context IM!ErrorsExpressionOrNode def: toString(): String = '(' + self.ErrorsExpression1.toString() + ' OR ' + self.ErrorsExpression2.toString() + ')';

+

+--------------------------------------------------------------------

+-- For debugging purposes: pretty print SBA stereotypes

+--------------------------------------------------------------------

+helper context CHESS!SimpleStochasticBehavior def: toString() : String = 

+	'<<SimpleStochasticBehavior>>(' + self.failureOccurrence + ', ' + self.repairDelay + ', ' + self.failureModesDistribution + ')';

+helper context CHESS!FLABehavior def: toString() : String = '<<FLABehavior>>(' + self.fptc + ')';

+helper context CHESS!ErrorModelBehavior def: toString() : String = '<<ErrorModelBehavior>>(' + self.errorModel + ')';

+helper context CHESS!ErrorModel def: toString() : String = '<<ErrorModel>>(' + self.base_StateMachine + ')';

diff --git a/plugins/sba/org.polarsys.chess.statebased/plugin.xml b/plugins/sba/org.polarsys.chess.statebased/plugin.xml
index ecc4a7c..e4045d0 100644
--- a/plugins/sba/org.polarsys.chess.statebased/plugin.xml
+++ b/plugins/sba/org.polarsys.chess.statebased/plugin.xml
@@ -23,71 +23,62 @@
          point="org.eclipse.ui.menus">
       <menuContribution
             allPopups="false"
-            locationURI="menu:org.eclipse.ui.main.menu">
+            locationURI="menu:org.polarsys.chess.mainMenu?after=org.polarsys.chess.mainmenu.dependability.separator2">
          <menu
-               id="org.polarsys.chess.mainMenu"
-               label="CHESS"
-               mnemonic="E">
-            <menu
-                  id="chess.menu.analysis.id"
-                  label="Analysis">
-               <menu
-                     id="chess.menu.analysis.dependability.id"
-                     label="Dependability">
-                  <command
-                        commandId="org.polarsys.chess.stateBasedTransformationCommandID"
-                        label="State-Based"
-                        style="push">
-                     <visibleWhen
-                           checkEnabled="false">
-                        <or>
-                           <with
-                                 variable="activeEditorId">
-                              <equals
-                                    value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
-                              </equals>
-                           </with>
-                           <with
-                                 variable="activeEditorInput">
-                              <adapt
-                                    type="org.eclipse.core.resources.IResource">
-                                 <test
-                                       property="org.eclipse.core.resources.projectNature"
-                                       value="org.polarsys.chess.CHESSNature">
-                                 </test>
-                              </adapt>
-                           </with>
-                        </or>
-                     </visibleWhen>
-                  </command>
-                  <command
-                        commandId="org.polarsys.chess.stateBasedWithParametersCommandID"
-                        label="State-Based (With External Parameters)"
-                        style="push">
-                     <visibleWhen
-                           checkEnabled="false">
-                        <or>
-                           <with
-                                 variable="activeEditorId">
-                              <equals
-                                    value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
-                              </equals>
-                           </with>
-                           <with
-                                 variable="activeEditorInput">
-                              <adapt
-                                    type="org.eclipse.core.resources.IResource">
-                                 <test
-                                       property="org.eclipse.core.resources.projectNature"
-                                       value="org.polarsys.chess.CHESSNature">
-                                 </test>
-                              </adapt>
-                           </with>
-                        </or>
-                     </visibleWhen>
-                  </command>
-               </menu>
-            </menu>
+               id="chess.menu.dependability.id"
+               label="Dependability">
+            <command
+                  commandId="org.polarsys.chess.stateBasedTransformationCommandID"
+                  label="State-Based"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <with
+                           variable="activeEditorId">
+                        <equals
+                              value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
+                        </equals>
+                     </with>
+                     <with
+                           variable="activeEditorInput">
+                        <adapt
+                              type="org.eclipse.core.resources.IResource">
+                           <test
+                                 property="org.eclipse.core.resources.projectNature"
+                                 value="org.polarsys.chess.CHESSNature">
+                           </test>
+                        </adapt>
+                     </with>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.polarsys.chess.stateBasedWithParametersCommandID"
+                  label="State-Based (With External Parameters)"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <with
+                           variable="activeEditorId">
+                        <equals
+                              value="org.eclipse.uml2.uml.editor.presentation.UMLEditorID">
+                        </equals>
+                     </with>
+                     <with
+                           variable="activeEditorInput">
+                        <adapt
+                              type="org.eclipse.core.resources.IResource">
+                           <test
+                                 property="org.eclipse.core.resources.projectNature"
+                                 value="org.polarsys.chess.CHESSNature">
+                           </test>
+                        </adapt>
+                     </with>
+                  </or>
+               </visibleWhen>
+            </command>
          </menu>
       </menuContribution>
 </extension>   
diff --git a/plugins/sba/org.polarsys.chess.statebased/src/org/polarsys/chess/statebased/StateBasedTransformationCommand.java b/plugins/sba/org.polarsys.chess.statebased/src/org/polarsys/chess/statebased/StateBasedTransformationCommand.java
index 424af31..45e46bd 100644
--- a/plugins/sba/org.polarsys.chess.statebased/src/org/polarsys/chess/statebased/StateBasedTransformationCommand.java
+++ b/plugins/sba/org.polarsys.chess.statebased/src/org/polarsys/chess/statebased/StateBasedTransformationCommand.java
@@ -210,7 +210,7 @@
 			
 			Resource inResource = ResourceUtils.getUMLResource(editor.getServicesRegistry());
 			IFile inputFile = CHESSProjectSupport.resourceToFile(inResource);
-			IFile inputCopy = CHESSProjectSupport.copyFile(inputFile, SBANALYSIS_DIR, UML);
+			IFile inputCopy = CHESSProjectSupport.copyFile(inputFile, SBANALYSIS_DIR, inputFile.getName());
 			
 			chessModelPath = inputCopy.getFullPath().toString();
 			
diff --git a/plugins/sba/org.polarsys.chess.statebased/transformations/CHESS2IM.asm b/plugins/sba/org.polarsys.chess.statebased/transformations/CHESS2IM.asm
index f6021a5..b09c0d6 100644
--- a/plugins/sba/org.polarsys.chess.statebased/transformations/CHESS2IM.asm
+++ b/plugins/sba/org.polarsys.chess.statebased/transformations/CHESS2IM.asm
@@ -92,18 +92,18 @@
 		<constant value="37:36-37:46"/>
 		<constant value="39:67-39:72"/>
 		<constant value="41:90-41:95"/>
-		<constant value="1500:16-1500:24"/>
-		<constant value="1503:16-1503:24"/>
-		<constant value="1505:16-1505:30"/>
-		<constant value="1507:16-1507:25"/>
-		<constant value="1578:65-1578:76"/>
-		<constant value="1579:61-1579:67"/>
-		<constant value="1580:46-1580:52"/>
-		<constant value="1581:40-1581:46"/>
-		<constant value="1582:41-1582:46"/>
-		<constant value="1583:50-1583:55"/>
-		<constant value="1657:16-1657:24"/>
-		<constant value="1822:16-1822:40"/>
+		<constant value="1505:16-1505:24"/>
+		<constant value="1508:16-1508:24"/>
+		<constant value="1510:16-1510:30"/>
+		<constant value="1512:16-1512:25"/>
+		<constant value="1583:65-1583:76"/>
+		<constant value="1584:61-1584:67"/>
+		<constant value="1585:46-1585:52"/>
+		<constant value="1586:40-1586:46"/>
+		<constant value="1587:41-1587:46"/>
+		<constant value="1588:50-1588:55"/>
+		<constant value="1662:16-1662:24"/>
+		<constant value="1833:16-1833:40"/>
 		<constant value="self"/>
 		<constant value="__resolve__"/>
 		<constant value="1"/>
@@ -511,8 +511,13 @@
 		<constant value="TransientDuration"/>
 		<constant value="Faults"/>
 		<constant value="J.getPortSlots():J"/>
+		<constant value="definingFeature"/>
+		<constant value="ownedAttribute"/>
+		<constant value="Port"/>
+		<constant value="J.oclIsKindOf(J):J"/>
+		<constant value="117"/>
 		<constant value="J.hasOutputFlow():J"/>
-		<constant value="98"/>
+		<constant value="127"/>
 		<constant value="J.parseFailureModesForPort(J):J"/>
 		<constant value="e_"/>
 		<constant value="J.AddError(JJ):J"/>
@@ -528,8 +533,12 @@
 		<constant value="PropagationLogicStringFormat"/>
 		<constant value="FaultsGeneratesErrors"/>
 		<constant value="repairDelay"/>
-		<constant value="179"/>
-		<constant value="182"/>
+		<constant value="209"/>
+		<constant value="220"/>
+		<constant value="J.trim():J"/>
+		<constant value="J.size():J"/>
+		<constant value="J.&gt;(J):J"/>
+		<constant value="217"/>
 		<constant value="J.SimpleStochasticBehaviorRepair(J):J"/>
 		<constant value="179:22-179:32"/>
 		<constant value="179:53-179:57"/>
@@ -572,89 +581,110 @@
 		<constant value="197:33-197:38"/>
 		<constant value="197:14-197:39"/>
 		<constant value="197:3-197:40"/>
-		<constant value="199:15-199:19"/>
-		<constant value="199:15-199:34"/>
-		<constant value="199:47-199:48"/>
-		<constant value="199:47-199:64"/>
-		<constant value="199:15-199:65"/>
-		<constant value="200:19-200:33"/>
-		<constant value="200:59-200:63"/>
-		<constant value="200:59-200:68"/>
-		<constant value="200:19-200:69"/>
-		<constant value="200:4-200:70"/>
-		<constant value="202:16-202:26"/>
-		<constant value="202:36-202:40"/>
-		<constant value="202:43-202:47"/>
-		<constant value="202:43-202:52"/>
-		<constant value="202:36-202:52"/>
-		<constant value="202:54-202:55"/>
-		<constant value="202:16-202:56"/>
-		<constant value="202:4-202:57"/>
-		<constant value="203:12-203:16"/>
-		<constant value="203:27-203:35"/>
-		<constant value="203:12-203:36"/>
-		<constant value="203:4-203:37"/>
-		<constant value="204:18-204:29"/>
-		<constant value="205:5-205:15"/>
-		<constant value="206:6-206:14"/>
-		<constant value="207:6-207:16"/>
-		<constant value="207:32-207:36"/>
-		<constant value="207:32-207:41"/>
-		<constant value="207:44-207:47"/>
-		<constant value="207:32-207:47"/>
-		<constant value="207:50-207:56"/>
-		<constant value="207:50-207:59"/>
-		<constant value="207:32-207:59"/>
-		<constant value="207:61-207:62"/>
-		<constant value="207:6-207:63"/>
-		<constant value="208:6-208:16"/>
-		<constant value="208:31-208:32"/>
-		<constant value="208:6-208:33"/>
-		<constant value="209:6-209:7"/>
-		<constant value="210:6-210:12"/>
-		<constant value="210:6-210:14"/>
-		<constant value="205:5-211:7"/>
-		<constant value="204:4-212:5"/>
-		<constant value="199:3-213:4"/>
-		<constant value="215:13-215:23"/>
-		<constant value="215:40-215:45"/>
-		<constant value="215:31-215:46"/>
-		<constant value="215:48-215:52"/>
-		<constant value="215:54-215:64"/>
-		<constant value="215:79-215:80"/>
-		<constant value="215:54-215:81"/>
-		<constant value="215:83-215:84"/>
-		<constant value="215:86-215:87"/>
-		<constant value="215:13-215:88"/>
-		<constant value="215:3-215:89"/>
-		<constant value="216:3-216:9"/>
-		<constant value="216:30-216:40"/>
-		<constant value="216:52-216:57"/>
-		<constant value="216:30-216:58"/>
-		<constant value="216:3-216:59"/>
-		<constant value="217:3-217:9"/>
-		<constant value="217:42-217:48"/>
-		<constant value="217:42-217:65"/>
-		<constant value="217:42-217:76"/>
-		<constant value="217:3-217:77"/>
-		<constant value="219:3-219:4"/>
-		<constant value="219:3-219:26"/>
-		<constant value="219:29-219:30"/>
-		<constant value="219:29-219:52"/>
-		<constant value="219:63-219:69"/>
-		<constant value="219:29-219:70"/>
-		<constant value="219:3-219:71"/>
-		<constant value="221:10-221:12"/>
-		<constant value="221:10-221:24"/>
-		<constant value="221:10-221:41"/>
-		<constant value="221:6-221:41"/>
-		<constant value="222:4-222:14"/>
-		<constant value="222:46-222:50"/>
-		<constant value="222:4-222:52"/>
-		<constant value="221:3-223:4"/>
-		<constant value="196:2-224:3"/>
+		<constant value="199:12-199:16"/>
+		<constant value="199:12-199:31"/>
+		<constant value="200:20-200:22"/>
+		<constant value="200:20-200:38"/>
+		<constant value="199:12-200:39"/>
+		<constant value="201:13-201:17"/>
+		<constant value="201:13-201:28"/>
+		<constant value="201:13-201:37"/>
+		<constant value="201:13-201:52"/>
+		<constant value="201:66-201:68"/>
+		<constant value="201:81-201:89"/>
+		<constant value="201:66-201:90"/>
+		<constant value="201:13-201:91"/>
+		<constant value="199:12-201:92"/>
+		<constant value="202:18-202:19"/>
+		<constant value="202:18-202:35"/>
+		<constant value="199:12-202:36"/>
+		<constant value="199:12-202:45"/>
+		<constant value="203:19-203:33"/>
+		<constant value="203:59-203:60"/>
+		<constant value="203:59-203:65"/>
+		<constant value="203:19-203:66"/>
+		<constant value="203:4-203:67"/>
+		<constant value="205:16-205:26"/>
+		<constant value="205:36-205:40"/>
+		<constant value="205:43-205:44"/>
+		<constant value="205:43-205:49"/>
+		<constant value="205:36-205:49"/>
+		<constant value="205:51-205:52"/>
+		<constant value="205:16-205:53"/>
+		<constant value="205:4-205:54"/>
+		<constant value="206:12-206:16"/>
+		<constant value="206:27-206:35"/>
+		<constant value="206:12-206:36"/>
+		<constant value="206:4-206:37"/>
+		<constant value="207:18-207:29"/>
+		<constant value="208:5-208:15"/>
+		<constant value="209:6-209:14"/>
+		<constant value="210:6-210:16"/>
+		<constant value="210:32-210:33"/>
+		<constant value="210:32-210:38"/>
+		<constant value="210:41-210:44"/>
+		<constant value="210:32-210:44"/>
+		<constant value="210:47-210:53"/>
+		<constant value="210:47-210:56"/>
+		<constant value="210:32-210:56"/>
+		<constant value="210:58-210:59"/>
+		<constant value="210:6-210:60"/>
+		<constant value="211:6-211:16"/>
+		<constant value="211:31-211:32"/>
+		<constant value="211:6-211:33"/>
+		<constant value="212:6-212:7"/>
+		<constant value="213:6-213:12"/>
+		<constant value="213:6-213:14"/>
+		<constant value="208:5-214:7"/>
+		<constant value="207:4-215:5"/>
+		<constant value="199:3-216:4"/>
+		<constant value="218:13-218:23"/>
+		<constant value="218:40-218:45"/>
+		<constant value="218:31-218:46"/>
+		<constant value="218:48-218:52"/>
+		<constant value="218:54-218:64"/>
+		<constant value="218:79-218:80"/>
+		<constant value="218:54-218:81"/>
+		<constant value="218:83-218:84"/>
+		<constant value="218:86-218:87"/>
+		<constant value="218:13-218:88"/>
+		<constant value="218:3-218:89"/>
+		<constant value="219:3-219:9"/>
+		<constant value="219:30-219:40"/>
+		<constant value="219:52-219:57"/>
+		<constant value="219:30-219:58"/>
+		<constant value="219:3-219:59"/>
+		<constant value="220:3-220:9"/>
+		<constant value="220:42-220:48"/>
+		<constant value="220:42-220:65"/>
+		<constant value="220:42-220:76"/>
+		<constant value="220:3-220:77"/>
+		<constant value="222:3-222:4"/>
+		<constant value="222:3-222:26"/>
+		<constant value="222:29-222:30"/>
+		<constant value="222:29-222:52"/>
+		<constant value="222:63-222:69"/>
+		<constant value="222:29-222:70"/>
+		<constant value="222:3-222:71"/>
+		<constant value="224:10-224:12"/>
+		<constant value="224:10-224:24"/>
+		<constant value="224:10-224:41"/>
+		<constant value="224:6-224:41"/>
+		<constant value="225:7-225:9"/>
+		<constant value="225:7-225:21"/>
+		<constant value="225:7-225:28"/>
+		<constant value="225:7-225:35"/>
+		<constant value="225:38-225:39"/>
+		<constant value="225:7-225:39"/>
+		<constant value="226:5-226:15"/>
+		<constant value="226:47-226:51"/>
+		<constant value="226:5-226:53"/>
+		<constant value="225:4-227:5"/>
+		<constant value="224:3-228:4"/>
+		<constant value="196:2-229:3"/>
+		<constant value="sl"/>
+		<constant value="op"/>
 		<constant value="fmSpec"/>
-		<constant value="slot"/>
 		<constant value="fault"/>
 		<constant value="st"/>
 		<constant value="tmpFailures"/>
@@ -680,43 +710,42 @@
 		<constant value="FailureModes"/>
 		<constant value="J.SCHEXP_FailureModesCollection(J):J"/>
 		<constant value="EX"/>
-		<constant value="231:22-231:32"/>
-		<constant value="231:53-231:57"/>
-		<constant value="231:22-231:58"/>
-		<constant value="235:14-235:15"/>
-		<constant value="235:4-235:15"/>
-		<constant value="236:12-236:16"/>
-		<constant value="236:12-236:21"/>
-		<constant value="236:24-236:33"/>
-		<constant value="236:12-236:33"/>
-		<constant value="236:4-236:33"/>
-		<constant value="237:16-237:20"/>
-		<constant value="237:16-237:39"/>
-		<constant value="237:16-237:51"/>
-		<constant value="237:16-237:71"/>
-		<constant value="237:4-237:71"/>
-		<constant value="238:26-238:29"/>
-		<constant value="238:4-238:29"/>
-		<constant value="239:12-239:14"/>
-		<constant value="239:4-239:14"/>
-		<constant value="234:3-240:4"/>
-		<constant value="243:9-243:11"/>
-		<constant value="243:4-243:11"/>
-		<constant value="241:3-244:4"/>
-		<constant value="245:3-245:40"/>
-		<constant value="247:3-247:5"/>
-		<constant value="247:12-247:22"/>
-		<constant value="247:53-247:54"/>
-		<constant value="247:53-247:67"/>
-		<constant value="247:12-247:68"/>
-		<constant value="247:3-247:69"/>
-		<constant value="246:2-248:3"/>
+		<constant value="236:22-236:32"/>
+		<constant value="236:53-236:57"/>
+		<constant value="236:22-236:58"/>
+		<constant value="240:14-240:15"/>
+		<constant value="240:4-240:15"/>
+		<constant value="241:12-241:16"/>
+		<constant value="241:12-241:21"/>
+		<constant value="241:24-241:33"/>
+		<constant value="241:12-241:33"/>
+		<constant value="241:4-241:33"/>
+		<constant value="242:16-242:20"/>
+		<constant value="242:16-242:39"/>
+		<constant value="242:16-242:51"/>
+		<constant value="242:16-242:71"/>
+		<constant value="242:4-242:71"/>
+		<constant value="243:26-243:29"/>
+		<constant value="243:4-243:29"/>
+		<constant value="244:12-244:14"/>
+		<constant value="244:4-244:14"/>
+		<constant value="239:3-245:4"/>
+		<constant value="248:9-248:11"/>
+		<constant value="248:4-248:11"/>
+		<constant value="246:3-249:4"/>
+		<constant value="250:3-250:40"/>
+		<constant value="252:3-252:5"/>
+		<constant value="252:12-252:22"/>
+		<constant value="252:53-252:54"/>
+		<constant value="252:53-252:67"/>
+		<constant value="252:12-252:68"/>
+		<constant value="252:3-252:69"/>
+		<constant value="251:2-253:3"/>
 		<constant value="FLASpecificationToComponent"/>
 		<constant value="fptc"/>
 		<constant value="FLA:"/>
 		<constant value=" "/>
 		<constant value="J.regexReplaceAll(JJ):J"/>
-		<constant value="J.trim():J"/>
 		<constant value=";"/>
 		<constant value="J.split(J):J"/>
 		<constant value="13"/>
@@ -736,97 +765,97 @@
 		<constant value="138"/>
 		<constant value="J.AddFLARuleEPF(J):J"/>
 		<constant value="Destination"/>
-		<constant value="253:22-253:32"/>
-		<constant value="253:53-253:57"/>
-		<constant value="253:22-253:58"/>
-		<constant value="254:28-254:32"/>
-		<constant value="254:28-254:51"/>
-		<constant value="255:33-255:35"/>
-		<constant value="255:33-255:40"/>
-		<constant value="255:57-255:63"/>
-		<constant value="255:65-255:68"/>
-		<constant value="255:33-255:69"/>
-		<constant value="255:33-255:76"/>
-		<constant value="255:83-255:86"/>
-		<constant value="255:33-255:87"/>
-		<constant value="256:22-256:34"/>
-		<constant value="257:23-257:35"/>
-		<constant value="258:36-258:48"/>
-		<constant value="259:37-259:42"/>
-		<constant value="260:25-260:37"/>
-		<constant value="261:40-261:52"/>
-		<constant value="262:45-262:55"/>
-		<constant value="263:17-263:18"/>
-		<constant value="268:15-268:23"/>
-		<constant value="269:9-269:10"/>
-		<constant value="269:11-269:12"/>
-		<constant value="269:9-269:12"/>
-		<constant value="269:4-269:13"/>
-		<constant value="270:16-270:26"/>
-		<constant value="270:36-270:40"/>
-		<constant value="270:41-270:42"/>
-		<constant value="270:36-270:42"/>
-		<constant value="270:43-270:44"/>
-		<constant value="270:16-270:45"/>
-		<constant value="270:4-270:46"/>
-		<constant value="272:16-272:20"/>
-		<constant value="272:16-272:27"/>
-		<constant value="272:34-272:38"/>
-		<constant value="272:16-272:39"/>
-		<constant value="272:16-272:47"/>
-		<constant value="272:16-272:54"/>
-		<constant value="272:4-272:55"/>
-		<constant value="273:19-273:27"/>
-		<constant value="273:34-273:37"/>
-		<constant value="273:19-273:38"/>
-		<constant value="273:4-273:39"/>
-		<constant value="276:20-276:30"/>
-		<constant value="276:4-276:31"/>
-		<constant value="277:19-277:30"/>
-		<constant value="279:8-279:15"/>
-		<constant value="279:24-279:27"/>
-		<constant value="279:30-279:40"/>
-		<constant value="279:30-279:53"/>
-		<constant value="279:24-279:53"/>
-		<constant value="279:8-279:54"/>
-		<constant value="279:58-279:59"/>
-		<constant value="279:57-279:59"/>
-		<constant value="279:8-279:59"/>
-		<constant value="281:13-281:14"/>
-		<constant value="281:30-281:37"/>
-		<constant value="281:13-281:38"/>
-		<constant value="281:9-281:38"/>
-		<constant value="282:7-282:17"/>
-		<constant value="282:33-282:40"/>
-		<constant value="282:42-282:43"/>
-		<constant value="282:7-282:45"/>
-		<constant value="281:6-283:7"/>
-		<constant value="284:22-284:34"/>
-		<constant value="285:7-285:8"/>
-		<constant value="285:7-285:21"/>
-		<constant value="285:34-285:35"/>
-		<constant value="285:34-285:45"/>
-		<constant value="285:48-285:55"/>
-		<constant value="285:34-285:55"/>
-		<constant value="285:7-285:56"/>
-		<constant value="285:7-285:65"/>
-		<constant value="284:22-286:7"/>
-		<constant value="284:6-286:8"/>
-		<constant value="279:5-287:6"/>
-		<constant value="277:4-288:5"/>
-		<constant value="292:11-292:23"/>
-		<constant value="292:11-292:33"/>
-		<constant value="292:7-292:33"/>
-		<constant value="293:15-293:25"/>
-		<constant value="293:40-293:48"/>
-		<constant value="293:15-293:49"/>
-		<constant value="293:5-293:50"/>
-		<constant value="294:5-294:11"/>
-		<constant value="294:27-294:39"/>
-		<constant value="294:5-294:40"/>
-		<constant value="292:4-295:5"/>
-		<constant value="268:3-297:4"/>
-		<constant value="266:2-298:3"/>
+		<constant value="258:22-258:32"/>
+		<constant value="258:53-258:57"/>
+		<constant value="258:22-258:58"/>
+		<constant value="259:28-259:32"/>
+		<constant value="259:28-259:51"/>
+		<constant value="260:33-260:35"/>
+		<constant value="260:33-260:40"/>
+		<constant value="260:57-260:63"/>
+		<constant value="260:65-260:68"/>
+		<constant value="260:33-260:69"/>
+		<constant value="260:33-260:76"/>
+		<constant value="260:83-260:86"/>
+		<constant value="260:33-260:87"/>
+		<constant value="261:22-261:34"/>
+		<constant value="262:23-262:35"/>
+		<constant value="263:36-263:48"/>
+		<constant value="264:37-264:42"/>
+		<constant value="265:25-265:37"/>
+		<constant value="266:40-266:52"/>
+		<constant value="267:45-267:55"/>
+		<constant value="268:17-268:18"/>
+		<constant value="273:15-273:23"/>
+		<constant value="274:9-274:10"/>
+		<constant value="274:11-274:12"/>
+		<constant value="274:9-274:12"/>
+		<constant value="274:4-274:13"/>
+		<constant value="275:16-275:26"/>
+		<constant value="275:36-275:40"/>
+		<constant value="275:41-275:42"/>
+		<constant value="275:36-275:42"/>
+		<constant value="275:43-275:44"/>
+		<constant value="275:16-275:45"/>
+		<constant value="275:4-275:46"/>
+		<constant value="277:16-277:20"/>
+		<constant value="277:16-277:27"/>
+		<constant value="277:34-277:38"/>
+		<constant value="277:16-277:39"/>
+		<constant value="277:16-277:47"/>
+		<constant value="277:16-277:54"/>
+		<constant value="277:4-277:55"/>
+		<constant value="278:19-278:27"/>
+		<constant value="278:34-278:37"/>
+		<constant value="278:19-278:38"/>
+		<constant value="278:4-278:39"/>
+		<constant value="281:20-281:30"/>
+		<constant value="281:4-281:31"/>
+		<constant value="282:19-282:30"/>
+		<constant value="284:8-284:15"/>
+		<constant value="284:24-284:27"/>
+		<constant value="284:30-284:40"/>
+		<constant value="284:30-284:53"/>
+		<constant value="284:24-284:53"/>
+		<constant value="284:8-284:54"/>
+		<constant value="284:58-284:59"/>
+		<constant value="284:57-284:59"/>
+		<constant value="284:8-284:59"/>
+		<constant value="286:13-286:14"/>
+		<constant value="286:30-286:37"/>
+		<constant value="286:13-286:38"/>
+		<constant value="286:9-286:38"/>
+		<constant value="287:7-287:17"/>
+		<constant value="287:33-287:40"/>
+		<constant value="287:42-287:43"/>
+		<constant value="287:7-287:45"/>
+		<constant value="286:6-288:7"/>
+		<constant value="289:22-289:34"/>
+		<constant value="290:7-290:8"/>
+		<constant value="290:7-290:21"/>
+		<constant value="290:34-290:35"/>
+		<constant value="290:34-290:45"/>
+		<constant value="290:48-290:55"/>
+		<constant value="290:34-290:55"/>
+		<constant value="290:7-290:56"/>
+		<constant value="290:7-290:65"/>
+		<constant value="289:22-291:7"/>
+		<constant value="289:6-291:8"/>
+		<constant value="284:5-292:6"/>
+		<constant value="282:4-293:5"/>
+		<constant value="297:11-297:23"/>
+		<constant value="297:11-297:33"/>
+		<constant value="297:7-297:33"/>
+		<constant value="298:15-298:25"/>
+		<constant value="298:40-298:48"/>
+		<constant value="298:15-298:49"/>
+		<constant value="298:5-298:50"/>
+		<constant value="299:5-299:11"/>
+		<constant value="299:27-299:39"/>
+		<constant value="299:5-299:40"/>
+		<constant value="297:4-300:5"/>
+		<constant value="273:3-302:4"/>
+		<constant value="271:2-303:3"/>
 		<constant value="f"/>
 		<constant value="failure"/>
 		<constant value="spec"/>
@@ -840,7 +869,6 @@
 		<constant value="errorModel"/>
 		<constant value="base_StateMachine"/>
 		<constant value="State"/>
-		<constant value="J.oclIsKindOf(J):J"/>
 		<constant value="Pseudostate"/>
 		<constant value="51"/>
 		<constant value="Transition"/>
@@ -849,7 +877,6 @@
 		<constant value="122"/>
 		<constant value="mode"/>
 		<constant value="111"/>
-		<constant value="117"/>
 		<constant value="J.ErrorModelStateToError(JJ):J"/>
 		<constant value="kind"/>
 		<constant value="EnumLiteral"/>
@@ -865,144 +892,143 @@
 		<constant value="207"/>
 		<constant value="225"/>
 		<constant value="externalFaults"/>
-		<constant value="220"/>
 		<constant value="224"/>
 		<constant value="J.InternalPropagation(JJ):J"/>
-		<constant value="303:22-303:32"/>
-		<constant value="303:53-303:57"/>
-		<constant value="303:22-303:58"/>
-		<constant value="304:35-304:39"/>
-		<constant value="304:35-304:58"/>
-		<constant value="305:35-305:37"/>
-		<constant value="305:35-305:48"/>
-		<constant value="305:35-305:57"/>
-		<constant value="306:34-306:44"/>
-		<constant value="306:34-306:62"/>
-		<constant value="306:34-306:75"/>
-		<constant value="306:34-306:84"/>
-		<constant value="306:34-306:97"/>
-		<constant value="306:110-306:111"/>
-		<constant value="306:124-306:133"/>
-		<constant value="306:110-306:134"/>
-		<constant value="306:34-306:135"/>
-		<constant value="307:42-307:52"/>
-		<constant value="307:42-307:70"/>
-		<constant value="307:42-307:83"/>
-		<constant value="307:42-307:92"/>
-		<constant value="307:42-307:105"/>
-		<constant value="307:118-307:119"/>
-		<constant value="307:132-307:149"/>
-		<constant value="307:118-307:150"/>
-		<constant value="307:42-307:151"/>
-		<constant value="308:44-308:54"/>
-		<constant value="308:44-308:72"/>
-		<constant value="308:44-308:85"/>
-		<constant value="308:44-308:94"/>
-		<constant value="308:44-308:107"/>
-		<constant value="308:120-308:121"/>
-		<constant value="308:134-308:148"/>
-		<constant value="308:120-308:149"/>
-		<constant value="308:44-308:150"/>
-		<constant value="309:28-309:40"/>
-		<constant value="310:32-310:44"/>
-		<constant value="315:13-315:24"/>
-		<constant value="316:21-316:23"/>
-		<constant value="316:21-316:46"/>
-		<constant value="316:4-316:47"/>
-		<constant value="317:11-317:24"/>
-		<constant value="317:11-317:41"/>
-		<constant value="317:7-317:41"/>
-		<constant value="318:14-318:27"/>
-		<constant value="318:14-318:32"/>
-		<constant value="320:9-320:10"/>
-		<constant value="320:19-320:22"/>
-		<constant value="320:25-320:35"/>
-		<constant value="320:25-320:48"/>
-		<constant value="320:19-320:48"/>
-		<constant value="320:9-320:49"/>
-		<constant value="320:53-320:54"/>
-		<constant value="320:52-320:54"/>
-		<constant value="320:9-320:54"/>
-		<constant value="322:14-322:15"/>
-		<constant value="322:31-322:32"/>
-		<constant value="322:14-322:33"/>
-		<constant value="322:10-322:33"/>
-		<constant value="323:8-323:18"/>
-		<constant value="323:34-323:35"/>
-		<constant value="323:37-323:38"/>
-		<constant value="323:8-323:40"/>
-		<constant value="322:7-324:8"/>
-		<constant value="320:6-325:7"/>
-		<constant value="318:5-326:6"/>
-		<constant value="317:4-327:5"/>
-		<constant value="315:3-328:4"/>
-		<constant value="331:12-331:18"/>
-		<constant value="332:4-332:14"/>
-		<constant value="332:38-332:39"/>
-		<constant value="332:40-332:44"/>
-		<constant value="332:4-332:46"/>
-		<constant value="331:3-333:4"/>
+		<constant value="308:22-308:32"/>
+		<constant value="308:53-308:57"/>
+		<constant value="308:22-308:58"/>
+		<constant value="309:35-309:39"/>
+		<constant value="309:35-309:58"/>
+		<constant value="310:35-310:37"/>
+		<constant value="310:35-310:48"/>
+		<constant value="310:35-310:57"/>
+		<constant value="311:34-311:44"/>
+		<constant value="311:34-311:62"/>
+		<constant value="311:34-311:75"/>
+		<constant value="311:34-311:84"/>
+		<constant value="311:34-311:97"/>
+		<constant value="311:110-311:111"/>
+		<constant value="311:124-311:133"/>
+		<constant value="311:110-311:134"/>
+		<constant value="311:34-311:135"/>
+		<constant value="312:42-312:52"/>
+		<constant value="312:42-312:70"/>
+		<constant value="312:42-312:83"/>
+		<constant value="312:42-312:92"/>
+		<constant value="312:42-312:105"/>
+		<constant value="312:118-312:119"/>
+		<constant value="312:132-312:149"/>
+		<constant value="312:118-312:150"/>
+		<constant value="312:42-312:151"/>
+		<constant value="313:44-313:54"/>
+		<constant value="313:44-313:72"/>
+		<constant value="313:44-313:85"/>
+		<constant value="313:44-313:94"/>
+		<constant value="313:44-313:107"/>
+		<constant value="313:120-313:121"/>
+		<constant value="313:134-313:148"/>
+		<constant value="313:120-313:149"/>
+		<constant value="313:44-313:150"/>
+		<constant value="314:28-314:40"/>
+		<constant value="315:32-315:44"/>
+		<constant value="320:13-320:24"/>
+		<constant value="321:21-321:23"/>
+		<constant value="321:21-321:46"/>
+		<constant value="321:4-321:47"/>
+		<constant value="322:11-322:24"/>
+		<constant value="322:11-322:41"/>
+		<constant value="322:7-322:41"/>
+		<constant value="323:14-323:27"/>
+		<constant value="323:14-323:32"/>
+		<constant value="325:9-325:10"/>
+		<constant value="325:19-325:22"/>
+		<constant value="325:25-325:35"/>
+		<constant value="325:25-325:48"/>
+		<constant value="325:19-325:48"/>
+		<constant value="325:9-325:49"/>
+		<constant value="325:53-325:54"/>
+		<constant value="325:52-325:54"/>
+		<constant value="325:9-325:54"/>
+		<constant value="327:14-327:15"/>
+		<constant value="327:31-327:32"/>
+		<constant value="327:14-327:33"/>
+		<constant value="327:10-327:33"/>
+		<constant value="328:8-328:18"/>
+		<constant value="328:34-328:35"/>
+		<constant value="328:37-328:38"/>
+		<constant value="328:8-328:40"/>
+		<constant value="327:7-329:8"/>
+		<constant value="325:6-330:7"/>
+		<constant value="323:5-331:6"/>
+		<constant value="322:4-332:5"/>
+		<constant value="320:3-333:4"/>
 		<constant value="336:12-336:18"/>
-		<constant value="336:31-336:32"/>
-		<constant value="336:31-336:37"/>
-		<constant value="336:40-336:47"/>
-		<constant value="336:31-336:47"/>
-		<constant value="336:12-336:48"/>
 		<constant value="337:4-337:14"/>
 		<constant value="337:38-337:39"/>
 		<constant value="337:40-337:44"/>
 		<constant value="337:4-337:46"/>
 		<constant value="336:3-338:4"/>
-		<constant value="341:13-341:24"/>
-		<constant value="342:21-342:23"/>
-		<constant value="342:21-342:42"/>
-		<constant value="342:4-342:43"/>
-		<constant value="343:7-343:20"/>
-		<constant value="343:33-343:46"/>
-		<constant value="343:7-343:47"/>
-		<constant value="344:5-344:15"/>
-		<constant value="344:44-344:57"/>
-		<constant value="344:58-344:62"/>
-		<constant value="344:5-344:64"/>
-		<constant value="343:4-345:5"/>
-		<constant value="341:3-346:4"/>
-		<constant value="349:13-349:24"/>
-		<constant value="350:21-350:23"/>
-		<constant value="350:21-350:42"/>
-		<constant value="350:4-350:43"/>
-		<constant value="351:7-351:20"/>
-		<constant value="351:33-351:52"/>
-		<constant value="351:7-351:53"/>
-		<constant value="352:5-352:15"/>
-		<constant value="352:30-352:43"/>
-		<constant value="352:44-352:48"/>
-		<constant value="352:5-352:50"/>
-		<constant value="351:4-353:5"/>
-		<constant value="349:3-354:4"/>
-		<constant value="359:13-359:24"/>
-		<constant value="360:21-360:23"/>
-		<constant value="360:21-360:42"/>
-		<constant value="360:4-360:43"/>
-		<constant value="361:7-361:20"/>
-		<constant value="361:33-361:58"/>
-		<constant value="361:7-361:59"/>
-		<constant value="362:8-362:21"/>
-		<constant value="362:34-362:53"/>
-		<constant value="362:8-362:54"/>
-		<constant value="366:27-366:40"/>
-		<constant value="366:27-366:55"/>
-		<constant value="366:6-366:56"/>
-		<constant value="367:9-367:26"/>
-		<constant value="367:9-367:43"/>
-		<constant value="368:7-368:17"/>
-		<constant value="368:38-368:51"/>
-		<constant value="368:52-368:56"/>
-		<constant value="368:7-368:58"/>
-		<constant value="367:6-369:7"/>
-		<constant value="362:5-370:6"/>
-		<constant value="361:4-371:5"/>
-		<constant value="359:3-372:4"/>
-		<constant value="312:2-373:3"/>
+		<constant value="341:12-341:18"/>
+		<constant value="341:31-341:32"/>
+		<constant value="341:31-341:37"/>
+		<constant value="341:40-341:47"/>
+		<constant value="341:31-341:47"/>
+		<constant value="341:12-341:48"/>
+		<constant value="342:4-342:14"/>
+		<constant value="342:38-342:39"/>
+		<constant value="342:40-342:44"/>
+		<constant value="342:4-342:46"/>
+		<constant value="341:3-343:4"/>
+		<constant value="346:13-346:24"/>
+		<constant value="347:21-347:23"/>
+		<constant value="347:21-347:42"/>
+		<constant value="347:4-347:43"/>
+		<constant value="348:7-348:20"/>
+		<constant value="348:33-348:46"/>
+		<constant value="348:7-348:47"/>
+		<constant value="349:5-349:15"/>
+		<constant value="349:44-349:57"/>
+		<constant value="349:58-349:62"/>
+		<constant value="349:5-349:64"/>
+		<constant value="348:4-350:5"/>
+		<constant value="346:3-351:4"/>
+		<constant value="354:13-354:24"/>
+		<constant value="355:21-355:23"/>
+		<constant value="355:21-355:42"/>
+		<constant value="355:4-355:43"/>
+		<constant value="356:7-356:20"/>
+		<constant value="356:33-356:52"/>
+		<constant value="356:7-356:53"/>
+		<constant value="357:5-357:15"/>
+		<constant value="357:30-357:43"/>
+		<constant value="357:44-357:48"/>
+		<constant value="357:5-357:50"/>
+		<constant value="356:4-358:5"/>
+		<constant value="354:3-359:4"/>
+		<constant value="364:13-364:24"/>
+		<constant value="365:21-365:23"/>
+		<constant value="365:21-365:42"/>
+		<constant value="365:4-365:43"/>
+		<constant value="366:7-366:20"/>
+		<constant value="366:33-366:58"/>
+		<constant value="366:7-366:59"/>
+		<constant value="367:8-367:21"/>
+		<constant value="367:34-367:53"/>
+		<constant value="367:8-367:54"/>
+		<constant value="371:27-371:40"/>
+		<constant value="371:27-371:55"/>
+		<constant value="371:6-371:56"/>
+		<constant value="372:9-372:26"/>
+		<constant value="372:9-372:43"/>
+		<constant value="373:7-373:17"/>
+		<constant value="373:38-373:51"/>
+		<constant value="373:52-373:56"/>
+		<constant value="373:7-373:58"/>
+		<constant value="372:6-374:7"/>
+		<constant value="367:5-375:6"/>
+		<constant value="366:4-376:5"/>
+		<constant value="364:3-377:4"/>
+		<constant value="317:2-378:3"/>
 		<constant value="tr"/>
 		<constant value="states"/>
 		<constant value="pseudo"/>
@@ -1019,76 +1045,76 @@
 		<constant value="118"/>
 		<constant value="J.AddExternalFault(JJ):J"/>
 		<constant value="Source"/>
-		<constant value="382:22-382:32"/>
-		<constant value="382:53-382:57"/>
-		<constant value="382:22-382:58"/>
-		<constant value="383:29-383:33"/>
-		<constant value="383:29-383:48"/>
-		<constant value="383:61-383:62"/>
-		<constant value="383:61-383:77"/>
-		<constant value="383:29-383:78"/>
-		<constant value="384:24-384:36"/>
-		<constant value="385:25-385:37"/>
-		<constant value="386:29-386:41"/>
-		<constant value="387:41-387:53"/>
-		<constant value="390:12-390:19"/>
-		<constant value="392:16-392:17"/>
-		<constant value="392:16-392:37"/>
-		<constant value="392:16-392:46"/>
-		<constant value="392:4-392:47"/>
-		<constant value="394:11-394:19"/>
-		<constant value="394:11-394:36"/>
-		<constant value="394:7-394:36"/>
-		<constant value="395:17-395:27"/>
-		<constant value="395:48-395:56"/>
-		<constant value="395:48-395:80"/>
-		<constant value="395:17-395:81"/>
-		<constant value="395:5-395:82"/>
-		<constant value="396:14-396:22"/>
-		<constant value="396:14-396:35"/>
-		<constant value="396:49-396:51"/>
-		<constant value="396:49-396:65"/>
-		<constant value="396:68-396:76"/>
-		<constant value="396:68-396:81"/>
-		<constant value="396:49-396:81"/>
-		<constant value="396:14-396:82"/>
-		<constant value="397:19-397:20"/>
-		<constant value="397:19-397:25"/>
-		<constant value="397:32-397:37"/>
-		<constant value="397:19-397:38"/>
-		<constant value="397:19-397:46"/>
-		<constant value="397:6-397:47"/>
-		<constant value="399:9-399:10"/>
-		<constant value="399:9-399:17"/>
-		<constant value="399:31-399:33"/>
-		<constant value="399:31-399:38"/>
-		<constant value="399:41-399:49"/>
-		<constant value="399:41-399:54"/>
-		<constant value="399:57-399:60"/>
-		<constant value="399:41-399:60"/>
-		<constant value="399:63-399:64"/>
-		<constant value="399:41-399:64"/>
-		<constant value="399:31-399:64"/>
-		<constant value="399:9-399:65"/>
-		<constant value="399:9-399:76"/>
-		<constant value="400:27-400:37"/>
-		<constant value="400:55-400:56"/>
-		<constant value="400:55-400:61"/>
-		<constant value="400:64-400:67"/>
-		<constant value="400:55-400:67"/>
-		<constant value="400:70-400:79"/>
-		<constant value="400:55-400:79"/>
-		<constant value="400:81-400:85"/>
-		<constant value="400:27-400:86"/>
-		<constant value="400:7-400:87"/>
-		<constant value="401:7-401:23"/>
-		<constant value="401:34-401:35"/>
-		<constant value="401:7-401:36"/>
-		<constant value="399:6-402:7"/>
-		<constant value="396:5-403:6"/>
-		<constant value="394:4-404:5"/>
-		<constant value="390:3-405:4"/>
-		<constant value="389:2-406:3"/>
+		<constant value="387:22-387:32"/>
+		<constant value="387:53-387:57"/>
+		<constant value="387:22-387:58"/>
+		<constant value="388:29-388:33"/>
+		<constant value="388:29-388:48"/>
+		<constant value="388:61-388:62"/>
+		<constant value="388:61-388:77"/>
+		<constant value="388:29-388:78"/>
+		<constant value="389:24-389:36"/>
+		<constant value="390:25-390:37"/>
+		<constant value="391:29-391:41"/>
+		<constant value="392:41-392:53"/>
+		<constant value="395:12-395:19"/>
+		<constant value="397:16-397:17"/>
+		<constant value="397:16-397:37"/>
+		<constant value="397:16-397:46"/>
+		<constant value="397:4-397:47"/>
+		<constant value="399:11-399:19"/>
+		<constant value="399:11-399:36"/>
+		<constant value="399:7-399:36"/>
+		<constant value="400:17-400:27"/>
+		<constant value="400:48-400:56"/>
+		<constant value="400:48-400:80"/>
+		<constant value="400:17-400:81"/>
+		<constant value="400:5-400:82"/>
+		<constant value="401:14-401:22"/>
+		<constant value="401:14-401:35"/>
+		<constant value="401:49-401:51"/>
+		<constant value="401:49-401:65"/>
+		<constant value="401:68-401:76"/>
+		<constant value="401:68-401:81"/>
+		<constant value="401:49-401:81"/>
+		<constant value="401:14-401:82"/>
+		<constant value="402:19-402:20"/>
+		<constant value="402:19-402:25"/>
+		<constant value="402:32-402:37"/>
+		<constant value="402:19-402:38"/>
+		<constant value="402:19-402:46"/>
+		<constant value="402:6-402:47"/>
+		<constant value="404:9-404:10"/>
+		<constant value="404:9-404:17"/>
+		<constant value="404:31-404:33"/>
+		<constant value="404:31-404:38"/>
+		<constant value="404:41-404:49"/>
+		<constant value="404:41-404:54"/>
+		<constant value="404:57-404:60"/>
+		<constant value="404:41-404:60"/>
+		<constant value="404:63-404:64"/>
+		<constant value="404:41-404:64"/>
+		<constant value="404:31-404:64"/>
+		<constant value="404:9-404:65"/>
+		<constant value="404:9-404:76"/>
+		<constant value="405:27-405:37"/>
+		<constant value="405:55-405:56"/>
+		<constant value="405:55-405:61"/>
+		<constant value="405:64-405:67"/>
+		<constant value="405:55-405:67"/>
+		<constant value="405:70-405:79"/>
+		<constant value="405:55-405:79"/>
+		<constant value="405:81-405:85"/>
+		<constant value="405:27-405:86"/>
+		<constant value="405:7-405:87"/>
+		<constant value="406:7-406:23"/>
+		<constant value="406:34-406:35"/>
+		<constant value="406:7-406:36"/>
+		<constant value="404:6-407:7"/>
+		<constant value="401:5-408:6"/>
+		<constant value="399:4-409:5"/>
+		<constant value="395:3-410:4"/>
+		<constant value="394:2-411:3"/>
 		<constant value="ft"/>
 		<constant value="inPorts"/>
 		<constant value="faultName"/>
@@ -1098,52 +1124,50 @@
 		<constant value="SimpleStochasticBehavior_FGE"/>
 		<constant value="ExternalFault"/>
 		<constant value="25"/>
-		<constant value="J.size():J"/>
-		<constant value="J.&gt;(J):J"/>
 		<constant value="63"/>
 		<constant value="Errors"/>
 		<constant value="det(0)"/>
 		<constant value="J.FEXP_MultiOr(J):J"/>
-		<constant value="414:22-414:32"/>
-		<constant value="414:53-414:57"/>
-		<constant value="414:22-414:58"/>
-		<constant value="415:35-415:47"/>
-		<constant value="416:36-416:37"/>
-		<constant value="416:36-416:44"/>
-		<constant value="416:58-416:60"/>
-		<constant value="416:73-416:89"/>
-		<constant value="416:58-416:90"/>
-		<constant value="416:36-416:91"/>
-		<constant value="420:6-420:15"/>
-		<constant value="420:6-420:23"/>
-		<constant value="420:26-420:27"/>
-		<constant value="420:6-420:27"/>
-		<constant value="421:11-421:21"/>
-		<constant value="421:29-421:38"/>
-		<constant value="421:40-421:41"/>
-		<constant value="421:40-421:48"/>
-		<constant value="421:50-421:58"/>
-		<constant value="421:50-421:78"/>
-		<constant value="421:80-421:81"/>
-		<constant value="421:83-421:84"/>
-		<constant value="421:11-421:85"/>
-		<constant value="421:4-421:86"/>
-		<constant value="422:4-422:7"/>
-		<constant value="422:28-422:38"/>
-		<constant value="423:5-423:14"/>
-		<constant value="423:28-423:38"/>
-		<constant value="423:50-423:51"/>
-		<constant value="423:28-423:52"/>
-		<constant value="423:5-423:53"/>
-		<constant value="422:28-424:5"/>
-		<constant value="422:4-424:6"/>
-		<constant value="425:4-425:7"/>
-		<constant value="425:40-425:43"/>
-		<constant value="425:40-425:60"/>
-		<constant value="425:40-425:71"/>
-		<constant value="425:4-425:72"/>
-		<constant value="420:3-426:4"/>
-		<constant value="418:2-427:3"/>
+		<constant value="419:22-419:32"/>
+		<constant value="419:53-419:57"/>
+		<constant value="419:22-419:58"/>
+		<constant value="420:35-420:47"/>
+		<constant value="421:36-421:37"/>
+		<constant value="421:36-421:44"/>
+		<constant value="421:58-421:60"/>
+		<constant value="421:73-421:89"/>
+		<constant value="421:58-421:90"/>
+		<constant value="421:36-421:91"/>
+		<constant value="425:6-425:15"/>
+		<constant value="425:6-425:23"/>
+		<constant value="425:26-425:27"/>
+		<constant value="425:6-425:27"/>
+		<constant value="426:11-426:21"/>
+		<constant value="426:29-426:38"/>
+		<constant value="426:40-426:41"/>
+		<constant value="426:40-426:48"/>
+		<constant value="426:50-426:58"/>
+		<constant value="426:50-426:78"/>
+		<constant value="426:80-426:81"/>
+		<constant value="426:83-426:84"/>
+		<constant value="426:11-426:85"/>
+		<constant value="426:4-426:86"/>
+		<constant value="427:4-427:7"/>
+		<constant value="427:28-427:38"/>
+		<constant value="428:5-428:14"/>
+		<constant value="428:28-428:38"/>
+		<constant value="428:50-428:51"/>
+		<constant value="428:28-428:52"/>
+		<constant value="428:5-428:53"/>
+		<constant value="427:28-429:5"/>
+		<constant value="427:4-429:6"/>
+		<constant value="430:4-430:7"/>
+		<constant value="430:40-430:43"/>
+		<constant value="430:40-430:60"/>
+		<constant value="430:40-430:71"/>
+		<constant value="430:4-430:72"/>
+		<constant value="425:3-431:4"/>
+		<constant value="423:2-432:3"/>
 		<constant value="externals"/>
 		<constant value="FLASpecification_FGE"/>
 		<constant value="16"/>
@@ -1156,159 +1180,159 @@
 		<constant value="J.append(J):J"/>
 		<constant value="J.FEXP_MultiAnd(J):J"/>
 		<constant value="faultsGenerateErrors"/>
-		<constant value="432:22-432:32"/>
-		<constant value="432:53-432:57"/>
-		<constant value="432:22-432:58"/>
-		<constant value="433:28-433:32"/>
-		<constant value="433:28-433:51"/>
-		<constant value="434:33-434:35"/>
-		<constant value="434:33-434:40"/>
-		<constant value="434:57-434:63"/>
-		<constant value="434:65-434:68"/>
-		<constant value="434:33-434:69"/>
-		<constant value="434:33-434:76"/>
-		<constant value="434:83-434:86"/>
-		<constant value="434:33-434:87"/>
-		<constant value="435:22-435:34"/>
-		<constant value="436:23-436:35"/>
-		<constant value="437:34-437:46"/>
-		<constant value="438:25-438:37"/>
-		<constant value="439:43-439:55"/>
-		<constant value="440:30-440:35"/>
-		<constant value="441:34-441:46"/>
-		<constant value="442:56-442:66"/>
-		<constant value="443:17-443:18"/>
-		<constant value="444:24-444:36"/>
-		<constant value="445:24-445:36"/>
-		<constant value="446:38-446:50"/>
-		<constant value="451:15-451:23"/>
-		<constant value="452:9-452:10"/>
-		<constant value="452:11-452:12"/>
-		<constant value="452:9-452:12"/>
-		<constant value="452:4-452:13"/>
-		<constant value="453:16-453:17"/>
-		<constant value="453:16-453:24"/>
-		<constant value="453:37-453:38"/>
-		<constant value="453:37-453:48"/>
-		<constant value="453:51-453:55"/>
-		<constant value="453:56-453:57"/>
-		<constant value="453:51-453:57"/>
-		<constant value="453:37-453:57"/>
-		<constant value="453:16-453:58"/>
-		<constant value="453:4-453:59"/>
-		<constant value="455:15-455:19"/>
-		<constant value="455:15-455:26"/>
-		<constant value="455:33-455:37"/>
-		<constant value="455:15-455:38"/>
-		<constant value="455:15-455:47"/>
-		<constant value="455:15-455:54"/>
-		<constant value="455:4-455:55"/>
-		<constant value="456:17-456:24"/>
-		<constant value="456:31-456:34"/>
-		<constant value="456:17-456:35"/>
-		<constant value="456:4-456:36"/>
-		<constant value="459:22-459:32"/>
-		<constant value="459:4-459:33"/>
-		<constant value="460:17-460:26"/>
-		<constant value="461:18-461:23"/>
-		<constant value="461:30-461:35"/>
-		<constant value="461:18-461:36"/>
-		<constant value="461:18-461:45"/>
-		<constant value="461:5-461:46"/>
-		<constant value="462:18-462:23"/>
-		<constant value="462:30-462:35"/>
-		<constant value="462:18-462:36"/>
-		<constant value="462:18-462:44"/>
-		<constant value="462:5-462:45"/>
-		<constant value="464:8-464:17"/>
-		<constant value="464:20-464:30"/>
-		<constant value="464:20-464:43"/>
-		<constant value="464:8-464:43"/>
-		<constant value="470:14-470:23"/>
-		<constant value="470:26-470:36"/>
-		<constant value="470:26-470:48"/>
-		<constant value="470:14-470:48"/>
+		<constant value="437:22-437:32"/>
+		<constant value="437:53-437:57"/>
+		<constant value="437:22-437:58"/>
+		<constant value="438:28-438:32"/>
+		<constant value="438:28-438:51"/>
+		<constant value="439:33-439:35"/>
+		<constant value="439:33-439:40"/>
+		<constant value="439:57-439:63"/>
+		<constant value="439:65-439:68"/>
+		<constant value="439:33-439:69"/>
+		<constant value="439:33-439:76"/>
+		<constant value="439:83-439:86"/>
+		<constant value="439:33-439:87"/>
+		<constant value="440:22-440:34"/>
+		<constant value="441:23-441:35"/>
+		<constant value="442:34-442:46"/>
+		<constant value="443:25-443:37"/>
+		<constant value="444:43-444:55"/>
+		<constant value="445:30-445:35"/>
+		<constant value="446:34-446:46"/>
+		<constant value="447:56-447:66"/>
+		<constant value="448:17-448:18"/>
+		<constant value="449:24-449:36"/>
+		<constant value="450:24-450:36"/>
+		<constant value="451:38-451:50"/>
+		<constant value="456:15-456:23"/>
+		<constant value="457:9-457:10"/>
+		<constant value="457:11-457:12"/>
+		<constant value="457:9-457:12"/>
+		<constant value="457:4-457:13"/>
+		<constant value="458:16-458:17"/>
+		<constant value="458:16-458:24"/>
+		<constant value="458:37-458:38"/>
+		<constant value="458:37-458:48"/>
+		<constant value="458:51-458:55"/>
+		<constant value="458:56-458:57"/>
+		<constant value="458:51-458:57"/>
+		<constant value="458:37-458:57"/>
+		<constant value="458:16-458:58"/>
+		<constant value="458:4-458:59"/>
+		<constant value="460:15-460:19"/>
+		<constant value="460:15-460:26"/>
+		<constant value="460:33-460:37"/>
+		<constant value="460:15-460:38"/>
+		<constant value="460:15-460:47"/>
+		<constant value="460:15-460:54"/>
+		<constant value="460:4-460:55"/>
+		<constant value="461:17-461:24"/>
+		<constant value="461:31-461:34"/>
+		<constant value="461:17-461:35"/>
+		<constant value="461:4-461:36"/>
+		<constant value="464:22-464:32"/>
+		<constant value="464:4-464:33"/>
+		<constant value="465:17-465:26"/>
+		<constant value="466:18-466:23"/>
+		<constant value="466:30-466:35"/>
+		<constant value="466:18-466:36"/>
+		<constant value="466:18-466:45"/>
+		<constant value="466:5-466:46"/>
+		<constant value="467:18-467:23"/>
+		<constant value="467:30-467:35"/>
+		<constant value="467:18-467:36"/>
+		<constant value="467:18-467:44"/>
+		<constant value="467:5-467:45"/>
+		<constant value="469:8-469:17"/>
+		<constant value="469:20-469:30"/>
+		<constant value="469:20-469:43"/>
+		<constant value="469:8-469:43"/>
+		<constant value="475:14-475:23"/>
+		<constant value="475:26-475:36"/>
+		<constant value="475:26-475:48"/>
+		<constant value="475:14-475:48"/>
+		<constant value="481:19-481:20"/>
+		<constant value="481:19-481:27"/>
+		<constant value="481:41-481:43"/>
+		<constant value="481:41-481:53"/>
+		<constant value="481:56-481:61"/>
+		<constant value="481:41-481:61"/>
+		<constant value="481:19-481:62"/>
+		<constant value="481:6-481:63"/>
+		<constant value="482:21-482:31"/>
+		<constant value="483:7-483:16"/>
+		<constant value="483:7-483:25"/>
+		<constant value="482:21-484:7"/>
+		<constant value="482:6-484:8"/>
 		<constant value="476:19-476:20"/>
 		<constant value="476:19-476:27"/>
 		<constant value="476:41-476:43"/>
-		<constant value="476:41-476:53"/>
-		<constant value="476:56-476:61"/>
-		<constant value="476:41-476:61"/>
-		<constant value="476:19-476:62"/>
-		<constant value="476:6-476:63"/>
+		<constant value="476:41-476:57"/>
+		<constant value="476:60-476:69"/>
+		<constant value="476:41-476:69"/>
+		<constant value="476:19-476:70"/>
+		<constant value="476:6-476:71"/>
 		<constant value="477:21-477:31"/>
 		<constant value="478:7-478:16"/>
-		<constant value="478:7-478:25"/>
+		<constant value="478:30-478:40"/>
+		<constant value="478:52-478:53"/>
+		<constant value="478:30-478:54"/>
+		<constant value="478:7-478:55"/>
 		<constant value="477:21-479:7"/>
 		<constant value="477:6-479:8"/>
-		<constant value="471:19-471:20"/>
-		<constant value="471:19-471:27"/>
-		<constant value="471:41-471:43"/>
-		<constant value="471:41-471:57"/>
-		<constant value="471:60-471:69"/>
-		<constant value="471:41-471:69"/>
-		<constant value="471:19-471:70"/>
-		<constant value="471:6-471:71"/>
-		<constant value="472:21-472:31"/>
-		<constant value="473:7-473:16"/>
-		<constant value="473:30-473:40"/>
-		<constant value="473:52-473:53"/>
-		<constant value="473:30-473:54"/>
-		<constant value="473:7-473:55"/>
-		<constant value="472:21-474:7"/>
-		<constant value="472:6-474:8"/>
-		<constant value="470:11-480:6"/>
-		<constant value="465:19-465:20"/>
-		<constant value="465:19-465:27"/>
-		<constant value="465:41-465:43"/>
-		<constant value="465:41-465:57"/>
-		<constant value="465:60-465:69"/>
-		<constant value="465:41-465:69"/>
-		<constant value="465:19-465:70"/>
-		<constant value="465:6-465:71"/>
-		<constant value="466:21-466:31"/>
-		<constant value="467:7-467:16"/>
-		<constant value="467:30-467:40"/>
-		<constant value="467:52-467:53"/>
-		<constant value="467:30-467:54"/>
-		<constant value="467:7-467:55"/>
-		<constant value="466:21-468:7"/>
-		<constant value="466:6-468:8"/>
-		<constant value="469:21-469:31"/>
-		<constant value="469:41-469:52"/>
-		<constant value="469:21-469:53"/>
-		<constant value="469:6-469:54"/>
-		<constant value="464:5-480:6"/>
-		<constant value="481:23-481:37"/>
-		<constant value="481:46-481:57"/>
-		<constant value="481:23-481:58"/>
-		<constant value="481:5-481:59"/>
-		<constant value="460:4-482:5"/>
-		<constant value="483:19-483:29"/>
-		<constant value="483:44-483:58"/>
-		<constant value="483:19-483:59"/>
-		<constant value="483:4-483:60"/>
-		<constant value="485:14-485:24"/>
-		<constant value="485:32-485:41"/>
-		<constant value="485:43-485:51"/>
-		<constant value="485:53-485:61"/>
-		<constant value="485:53-485:81"/>
-		<constant value="485:83-485:84"/>
-		<constant value="485:86-485:87"/>
-		<constant value="485:14-485:88"/>
-		<constant value="485:4-485:89"/>
-		<constant value="486:4-486:15"/>
-		<constant value="486:40-486:46"/>
-		<constant value="486:4-486:47"/>
-		<constant value="487:4-487:10"/>
-		<constant value="487:31-487:42"/>
-		<constant value="487:4-487:43"/>
-		<constant value="488:4-488:10"/>
-		<constant value="488:43-488:54"/>
-		<constant value="488:43-488:65"/>
-		<constant value="488:4-488:66"/>
-		<constant value="451:3-489:4"/>
-		<constant value="449:2-490:3"/>
+		<constant value="475:11-485:6"/>
+		<constant value="470:19-470:20"/>
+		<constant value="470:19-470:27"/>
+		<constant value="470:41-470:43"/>
+		<constant value="470:41-470:57"/>
+		<constant value="470:60-470:69"/>
+		<constant value="470:41-470:69"/>
+		<constant value="470:19-470:70"/>
+		<constant value="470:6-470:71"/>
+		<constant value="471:21-471:31"/>
+		<constant value="472:7-472:16"/>
+		<constant value="472:30-472:40"/>
+		<constant value="472:52-472:53"/>
+		<constant value="472:30-472:54"/>
+		<constant value="472:7-472:55"/>
+		<constant value="471:21-473:7"/>
+		<constant value="471:6-473:8"/>
+		<constant value="474:21-474:31"/>
+		<constant value="474:41-474:52"/>
+		<constant value="474:21-474:53"/>
+		<constant value="474:6-474:54"/>
+		<constant value="469:5-485:6"/>
+		<constant value="486:23-486:37"/>
+		<constant value="486:46-486:57"/>
+		<constant value="486:23-486:58"/>
+		<constant value="486:5-486:59"/>
+		<constant value="465:4-487:5"/>
+		<constant value="488:19-488:29"/>
+		<constant value="488:44-488:58"/>
+		<constant value="488:19-488:59"/>
+		<constant value="488:4-488:60"/>
+		<constant value="490:14-490:24"/>
+		<constant value="490:32-490:41"/>
+		<constant value="490:43-490:51"/>
+		<constant value="490:53-490:61"/>
+		<constant value="490:53-490:81"/>
+		<constant value="490:83-490:84"/>
+		<constant value="490:86-490:87"/>
+		<constant value="490:14-490:88"/>
+		<constant value="490:4-490:89"/>
+		<constant value="491:4-491:15"/>
+		<constant value="491:40-491:46"/>
+		<constant value="491:4-491:47"/>
+		<constant value="492:4-492:10"/>
+		<constant value="492:31-492:42"/>
+		<constant value="492:4-492:43"/>
+		<constant value="493:4-493:10"/>
+		<constant value="493:43-493:54"/>
+		<constant value="493:43-493:65"/>
+		<constant value="493:4-493:66"/>
+		<constant value="456:3-494:4"/>
+		<constant value="454:2-495:3"/>
 		<constant value="tmpFaults"/>
 		<constant value="fExpression"/>
 		<constant value="fSources"/>
@@ -1335,175 +1359,175 @@
 		<constant value="cc"/>
 		<constant value="J.get(J):J"/>
 		<constant value="J.toReal():J"/>
-		<constant value="495:22-495:32"/>
-		<constant value="495:53-495:57"/>
-		<constant value="495:22-495:58"/>
-		<constant value="496:35-496:39"/>
-		<constant value="496:35-496:58"/>
-		<constant value="497:35-497:37"/>
-		<constant value="497:35-497:48"/>
-		<constant value="497:35-497:57"/>
-		<constant value="498:34-498:44"/>
-		<constant value="498:34-498:62"/>
-		<constant value="498:34-498:75"/>
-		<constant value="498:34-498:84"/>
-		<constant value="498:34-498:97"/>
-		<constant value="498:110-498:111"/>
-		<constant value="498:124-498:133"/>
-		<constant value="498:110-498:134"/>
-		<constant value="498:34-498:135"/>
-		<constant value="499:42-499:52"/>
-		<constant value="499:42-499:70"/>
-		<constant value="499:42-499:83"/>
-		<constant value="499:42-499:92"/>
-		<constant value="499:42-499:105"/>
-		<constant value="499:118-499:119"/>
-		<constant value="499:132-499:149"/>
-		<constant value="499:118-499:150"/>
-		<constant value="499:42-499:151"/>
-		<constant value="500:44-500:54"/>
-		<constant value="500:44-500:72"/>
-		<constant value="500:44-500:85"/>
-		<constant value="500:44-500:94"/>
-		<constant value="500:44-500:107"/>
-		<constant value="500:120-500:121"/>
-		<constant value="500:134-500:148"/>
-		<constant value="500:120-500:149"/>
-		<constant value="500:44-500:150"/>
-		<constant value="501:28-501:40"/>
-		<constant value="502:32-502:44"/>
-		<constant value="503:38-503:50"/>
-		<constant value="504:36-504:48"/>
-		<constant value="505:39-505:51"/>
-		<constant value="506:39-506:51"/>
-		<constant value="512:13-512:24"/>
-		<constant value="513:21-513:23"/>
-		<constant value="513:21-513:42"/>
-		<constant value="513:4-513:43"/>
-		<constant value="514:7-514:20"/>
-		<constant value="514:33-514:58"/>
-		<constant value="514:7-514:59"/>
-		<constant value="515:8-515:21"/>
-		<constant value="515:34-515:53"/>
-		<constant value="515:8-515:54"/>
-		<constant value="519:9-519:22"/>
-		<constant value="519:9-519:37"/>
-		<constant value="519:9-519:54"/>
-		<constant value="525:10-525:23"/>
-		<constant value="525:10-525:29"/>
-		<constant value="525:10-525:46"/>
-		<constant value="526:8-526:21"/>
-		<constant value="526:31-526:39"/>
-		<constant value="526:8-526:40"/>
-		<constant value="525:7-527:8"/>
-		<constant value="528:10-528:23"/>
-		<constant value="528:10-528:30"/>
-		<constant value="528:10-528:47"/>
-		<constant value="529:8-529:21"/>
-		<constant value="529:32-529:35"/>
-		<constant value="529:8-529:36"/>
-		<constant value="528:7-530:8"/>
-		<constant value="532:10-532:12"/>
-		<constant value="532:10-532:19"/>
-		<constant value="532:10-532:36"/>
-		<constant value="547:8-547:18"/>
-		<constant value="547:39-547:52"/>
-		<constant value="547:53-547:57"/>
-		<constant value="547:8-547:59"/>
-		<constant value="533:29-533:42"/>
-		<constant value="533:29-533:57"/>
-		<constant value="533:8-533:58"/>
-		<constant value="534:19-534:29"/>
-		<constant value="534:47-534:64"/>
-		<constant value="534:66-534:70"/>
-		<constant value="534:19-534:71"/>
-		<constant value="534:8-534:72"/>
-		<constant value="535:18-535:28"/>
-		<constant value="536:9-536:16"/>
-		<constant value="536:9-536:29"/>
-		<constant value="537:9-537:19"/>
-		<constant value="537:9-537:34"/>
-		<constant value="537:48-537:50"/>
-		<constant value="537:48-537:57"/>
-		<constant value="537:46-537:57"/>
-		<constant value="537:62-537:63"/>
-		<constant value="537:59-537:63"/>
-		<constant value="537:40-537:64"/>
-		<constant value="537:9-537:65"/>
-		<constant value="538:9-538:22"/>
-		<constant value="538:9-538:28"/>
-		<constant value="538:9-538:48"/>
-		<constant value="539:9-539:10"/>
-		<constant value="540:9-540:22"/>
-		<constant value="540:9-540:29"/>
-		<constant value="540:9-540:38"/>
-		<constant value="535:18-541:9"/>
-		<constant value="535:8-541:10"/>
-		<constant value="542:8-542:15"/>
-		<constant value="542:40-542:46"/>
-		<constant value="542:8-542:47"/>
-		<constant value="543:8-543:14"/>
-		<constant value="543:35-543:42"/>
-		<constant value="543:8-543:43"/>
-		<constant value="544:8-544:14"/>
-		<constant value="544:47-544:54"/>
-		<constant value="544:47-544:65"/>
-		<constant value="544:8-544:66"/>
-		<constant value="532:7-548:8"/>
-		<constant value="519:6-549:7"/>
-		<constant value="515:5-550:6"/>
-		<constant value="514:4-551:5"/>
-		<constant value="512:3-552:4"/>
-		<constant value="508:2-553:3"/>
+		<constant value="500:22-500:32"/>
+		<constant value="500:53-500:57"/>
+		<constant value="500:22-500:58"/>
+		<constant value="501:35-501:39"/>
+		<constant value="501:35-501:58"/>
+		<constant value="502:35-502:37"/>
+		<constant value="502:35-502:48"/>
+		<constant value="502:35-502:57"/>
+		<constant value="503:34-503:44"/>
+		<constant value="503:34-503:62"/>
+		<constant value="503:34-503:75"/>
+		<constant value="503:34-503:84"/>
+		<constant value="503:34-503:97"/>
+		<constant value="503:110-503:111"/>
+		<constant value="503:124-503:133"/>
+		<constant value="503:110-503:134"/>
+		<constant value="503:34-503:135"/>
+		<constant value="504:42-504:52"/>
+		<constant value="504:42-504:70"/>
+		<constant value="504:42-504:83"/>
+		<constant value="504:42-504:92"/>
+		<constant value="504:42-504:105"/>
+		<constant value="504:118-504:119"/>
+		<constant value="504:132-504:149"/>
+		<constant value="504:118-504:150"/>
+		<constant value="504:42-504:151"/>
+		<constant value="505:44-505:54"/>
+		<constant value="505:44-505:72"/>
+		<constant value="505:44-505:85"/>
+		<constant value="505:44-505:94"/>
+		<constant value="505:44-505:107"/>
+		<constant value="505:120-505:121"/>
+		<constant value="505:134-505:148"/>
+		<constant value="505:120-505:149"/>
+		<constant value="505:44-505:150"/>
+		<constant value="506:28-506:40"/>
+		<constant value="507:32-507:44"/>
+		<constant value="508:38-508:50"/>
+		<constant value="509:36-509:48"/>
+		<constant value="510:39-510:51"/>
+		<constant value="511:39-511:51"/>
+		<constant value="517:13-517:24"/>
+		<constant value="518:21-518:23"/>
+		<constant value="518:21-518:42"/>
+		<constant value="518:4-518:43"/>
+		<constant value="519:7-519:20"/>
+		<constant value="519:33-519:58"/>
+		<constant value="519:7-519:59"/>
+		<constant value="520:8-520:21"/>
+		<constant value="520:34-520:53"/>
+		<constant value="520:8-520:54"/>
+		<constant value="524:9-524:22"/>
+		<constant value="524:9-524:37"/>
+		<constant value="524:9-524:54"/>
+		<constant value="530:10-530:23"/>
+		<constant value="530:10-530:29"/>
+		<constant value="530:10-530:46"/>
+		<constant value="531:8-531:21"/>
+		<constant value="531:31-531:39"/>
+		<constant value="531:8-531:40"/>
+		<constant value="530:7-532:8"/>
+		<constant value="533:10-533:23"/>
+		<constant value="533:10-533:30"/>
+		<constant value="533:10-533:47"/>
+		<constant value="534:8-534:21"/>
+		<constant value="534:32-534:35"/>
+		<constant value="534:8-534:36"/>
+		<constant value="533:7-535:8"/>
+		<constant value="537:10-537:12"/>
+		<constant value="537:10-537:19"/>
+		<constant value="537:10-537:36"/>
+		<constant value="552:8-552:18"/>
+		<constant value="552:39-552:52"/>
+		<constant value="552:53-552:57"/>
+		<constant value="552:8-552:59"/>
+		<constant value="538:29-538:42"/>
+		<constant value="538:29-538:57"/>
+		<constant value="538:8-538:58"/>
+		<constant value="539:19-539:29"/>
+		<constant value="539:47-539:64"/>
+		<constant value="539:66-539:70"/>
+		<constant value="539:19-539:71"/>
+		<constant value="539:8-539:72"/>
+		<constant value="540:18-540:28"/>
+		<constant value="541:9-541:16"/>
+		<constant value="541:9-541:29"/>
+		<constant value="542:9-542:19"/>
+		<constant value="542:9-542:34"/>
+		<constant value="542:48-542:50"/>
+		<constant value="542:48-542:57"/>
+		<constant value="542:46-542:57"/>
+		<constant value="542:62-542:63"/>
+		<constant value="542:59-542:63"/>
+		<constant value="542:40-542:64"/>
+		<constant value="542:9-542:65"/>
+		<constant value="543:9-543:22"/>
+		<constant value="543:9-543:28"/>
+		<constant value="543:9-543:48"/>
+		<constant value="544:9-544:10"/>
+		<constant value="545:9-545:22"/>
+		<constant value="545:9-545:29"/>
+		<constant value="545:9-545:38"/>
+		<constant value="540:18-546:9"/>
+		<constant value="540:8-546:10"/>
+		<constant value="547:8-547:15"/>
+		<constant value="547:40-547:46"/>
+		<constant value="547:8-547:47"/>
+		<constant value="548:8-548:14"/>
+		<constant value="548:35-548:42"/>
+		<constant value="548:8-548:43"/>
+		<constant value="549:8-549:14"/>
+		<constant value="549:47-549:54"/>
+		<constant value="549:47-549:65"/>
+		<constant value="549:8-549:66"/>
+		<constant value="537:7-553:8"/>
+		<constant value="524:6-554:7"/>
+		<constant value="520:5-555:6"/>
+		<constant value="519:4-556:5"/>
+		<constant value="517:3-557:4"/>
+		<constant value="513:2-558:3"/>
 		<constant value="tmpIP"/>
 		<constant value="tmpFEXP"/>
 		<constant value="tmpEEXP"/>
 		<constant value="AddExternalFault"/>
 		<constant value="xft"/>
 		<constant value="_xft_"/>
-		<constant value="563:17-563:27"/>
-		<constant value="563:48-563:52"/>
-		<constant value="563:17-563:53"/>
-		<constant value="563:4-563:53"/>
-		<constant value="564:12-564:16"/>
-		<constant value="564:12-564:21"/>
-		<constant value="564:24-564:31"/>
-		<constant value="564:12-564:31"/>
-		<constant value="564:34-564:39"/>
-		<constant value="564:12-564:39"/>
-		<constant value="564:4-564:39"/>
-		<constant value="562:3-565:4"/>
+		<constant value="568:17-568:27"/>
+		<constant value="568:48-568:52"/>
+		<constant value="568:17-568:53"/>
+		<constant value="568:4-568:53"/>
+		<constant value="569:12-569:16"/>
+		<constant value="569:12-569:21"/>
+		<constant value="569:24-569:31"/>
+		<constant value="569:12-569:31"/>
+		<constant value="569:34-569:39"/>
+		<constant value="569:12-569:39"/>
+		<constant value="569:4-569:39"/>
+		<constant value="567:3-570:4"/>
 		<constant value="ErrorModelStateToError"/>
 		<constant value="MUML!Vertex;"/>
 		<constant value="state"/>
 		<constant value="err"/>
 		<constant value="J.including(JJ):J"/>
-		<constant value="573:22-573:32"/>
-		<constant value="573:53-573:57"/>
-		<constant value="573:22-573:58"/>
-		<constant value="577:12-577:16"/>
-		<constant value="577:12-577:21"/>
-		<constant value="577:24-577:27"/>
-		<constant value="577:12-577:27"/>
-		<constant value="577:30-577:35"/>
-		<constant value="577:30-577:40"/>
-		<constant value="577:12-577:40"/>
-		<constant value="577:4-577:40"/>
-		<constant value="578:17-578:18"/>
-		<constant value="578:4-578:18"/>
-		<constant value="576:3-579:4"/>
-		<constant value="581:3-581:13"/>
-		<constant value="581:32-581:42"/>
-		<constant value="581:32-581:57"/>
-		<constant value="581:77-581:82"/>
-		<constant value="581:75-581:82"/>
-		<constant value="581:87-581:88"/>
-		<constant value="581:84-581:88"/>
-		<constant value="581:69-581:89"/>
-		<constant value="581:91-581:94"/>
-		<constant value="581:32-581:95"/>
-		<constant value="581:3-581:96"/>
-		<constant value="580:2-582:3"/>
+		<constant value="578:22-578:32"/>
+		<constant value="578:53-578:57"/>
+		<constant value="578:22-578:58"/>
+		<constant value="582:12-582:16"/>
+		<constant value="582:12-582:21"/>
+		<constant value="582:24-582:27"/>
+		<constant value="582:12-582:27"/>
+		<constant value="582:30-582:35"/>
+		<constant value="582:30-582:40"/>
+		<constant value="582:12-582:40"/>
+		<constant value="582:4-582:40"/>
+		<constant value="583:17-583:18"/>
+		<constant value="583:4-583:18"/>
+		<constant value="581:3-584:4"/>
+		<constant value="586:3-586:13"/>
+		<constant value="586:32-586:42"/>
+		<constant value="586:32-586:57"/>
+		<constant value="586:77-586:82"/>
+		<constant value="586:75-586:82"/>
+		<constant value="586:87-586:88"/>
+		<constant value="586:84-586:88"/>
+		<constant value="586:69-586:89"/>
+		<constant value="586:91-586:94"/>
+		<constant value="586:32-586:95"/>
+		<constant value="586:3-586:96"/>
+		<constant value="585:2-587:3"/>
 		<constant value="MCHESS!InternalFault;"/>
 		<constant value="chIntFault"/>
 		<constant value="ift"/>
@@ -1521,98 +1545,98 @@
 		<constant value="Value"/>
 		<constant value="187"/>
 		<constant value="1e-100"/>
-		<constant value="590:22-590:32"/>
-		<constant value="590:53-590:57"/>
-		<constant value="590:22-590:58"/>
-		<constant value="594:12-594:13"/>
-		<constant value="594:12-594:18"/>
-		<constant value="594:21-594:28"/>
-		<constant value="594:12-594:28"/>
-		<constant value="594:32-594:33"/>
-		<constant value="594:32-594:40"/>
-		<constant value="594:53-594:54"/>
-		<constant value="594:67-594:83"/>
-		<constant value="594:53-594:84"/>
-		<constant value="594:32-594:85"/>
-		<constant value="594:32-594:93"/>
-		<constant value="594:94-594:95"/>
-		<constant value="594:32-594:95"/>
-		<constant value="594:12-594:96"/>
-		<constant value="594:4-594:96"/>
-		<constant value="595:18-595:28"/>
-		<constant value="595:18-595:39"/>
-		<constant value="595:18-595:59"/>
-		<constant value="595:4-595:59"/>
-		<constant value="596:28-596:29"/>
-		<constant value="596:4-596:29"/>
-		<constant value="597:17-597:18"/>
-		<constant value="597:4-597:18"/>
-		<constant value="598:25-598:35"/>
-		<constant value="598:50-598:51"/>
-		<constant value="598:25-598:52"/>
-		<constant value="598:4-598:52"/>
-		<constant value="593:3-599:4"/>
-		<constant value="601:12-601:13"/>
-		<constant value="601:12-601:18"/>
-		<constant value="601:21-601:28"/>
-		<constant value="601:12-601:28"/>
-		<constant value="601:32-601:33"/>
-		<constant value="601:32-601:55"/>
-		<constant value="601:32-601:63"/>
-		<constant value="601:64-601:65"/>
-		<constant value="601:32-601:65"/>
-		<constant value="601:12-601:66"/>
-		<constant value="601:4-601:66"/>
+		<constant value="595:22-595:32"/>
+		<constant value="595:53-595:57"/>
+		<constant value="595:22-595:58"/>
+		<constant value="599:12-599:13"/>
+		<constant value="599:12-599:18"/>
+		<constant value="599:21-599:28"/>
+		<constant value="599:12-599:28"/>
+		<constant value="599:32-599:33"/>
+		<constant value="599:32-599:40"/>
+		<constant value="599:53-599:54"/>
+		<constant value="599:67-599:83"/>
+		<constant value="599:53-599:84"/>
+		<constant value="599:32-599:85"/>
+		<constant value="599:32-599:93"/>
+		<constant value="599:94-599:95"/>
+		<constant value="599:32-599:95"/>
+		<constant value="599:12-599:96"/>
+		<constant value="599:4-599:96"/>
+		<constant value="600:18-600:28"/>
+		<constant value="600:18-600:39"/>
+		<constant value="600:18-600:59"/>
+		<constant value="600:4-600:59"/>
+		<constant value="601:28-601:29"/>
+		<constant value="601:4-601:29"/>
 		<constant value="602:17-602:18"/>
 		<constant value="602:4-602:18"/>
-		<constant value="603:23-603:26"/>
-		<constant value="603:14-603:27"/>
-		<constant value="603:4-603:27"/>
-		<constant value="604:19-604:29"/>
-		<constant value="604:19-604:44"/>
-		<constant value="604:58-604:68"/>
-		<constant value="604:58-604:84"/>
-		<constant value="604:58-604:91"/>
-		<constant value="604:56-604:91"/>
-		<constant value="604:96-604:97"/>
-		<constant value="604:93-604:97"/>
-		<constant value="604:50-604:98"/>
-		<constant value="604:19-604:99"/>
-		<constant value="604:4-604:99"/>
-		<constant value="605:14-605:15"/>
-		<constant value="605:4-605:15"/>
-		<constant value="606:30-606:31"/>
-		<constant value="606:4-606:31"/>
-		<constant value="607:23-607:33"/>
-		<constant value="607:48-607:49"/>
-		<constant value="607:23-607:50"/>
-		<constant value="607:4-607:50"/>
-		<constant value="608:24-608:34"/>
-		<constant value="608:46-608:49"/>
-		<constant value="608:24-608:50"/>
-		<constant value="608:4-608:50"/>
-		<constant value="609:36-609:39"/>
-		<constant value="609:36-609:56"/>
-		<constant value="609:36-609:67"/>
-		<constant value="609:4-609:67"/>
-		<constant value="600:3-610:4"/>
-		<constant value="614:6-614:9"/>
-		<constant value="614:6-614:20"/>
-		<constant value="614:33-614:49"/>
-		<constant value="614:6-614:50"/>
-		<constant value="615:7-615:10"/>
-		<constant value="615:7-615:21"/>
-		<constant value="615:7-615:27"/>
-		<constant value="615:30-615:31"/>
-		<constant value="615:7-615:31"/>
-		<constant value="616:5-616:8"/>
-		<constant value="616:5-616:19"/>
-		<constant value="616:29-616:37"/>
-		<constant value="616:29-616:46"/>
-		<constant value="616:5-616:47"/>
-		<constant value="615:4-617:5"/>
-		<constant value="614:3-618:4"/>
-		<constant value="611:2-619:3"/>
+		<constant value="603:25-603:35"/>
+		<constant value="603:50-603:51"/>
+		<constant value="603:25-603:52"/>
+		<constant value="603:4-603:52"/>
+		<constant value="598:3-604:4"/>
+		<constant value="606:12-606:13"/>
+		<constant value="606:12-606:18"/>
+		<constant value="606:21-606:28"/>
+		<constant value="606:12-606:28"/>
+		<constant value="606:32-606:33"/>
+		<constant value="606:32-606:55"/>
+		<constant value="606:32-606:63"/>
+		<constant value="606:64-606:65"/>
+		<constant value="606:32-606:65"/>
+		<constant value="606:12-606:66"/>
+		<constant value="606:4-606:66"/>
+		<constant value="607:17-607:18"/>
+		<constant value="607:4-607:18"/>
+		<constant value="608:23-608:26"/>
+		<constant value="608:14-608:27"/>
+		<constant value="608:4-608:27"/>
+		<constant value="609:19-609:29"/>
+		<constant value="609:19-609:44"/>
+		<constant value="609:58-609:68"/>
+		<constant value="609:58-609:84"/>
+		<constant value="609:58-609:91"/>
+		<constant value="609:56-609:91"/>
+		<constant value="609:96-609:97"/>
+		<constant value="609:93-609:97"/>
+		<constant value="609:50-609:98"/>
+		<constant value="609:19-609:99"/>
+		<constant value="609:4-609:99"/>
+		<constant value="610:14-610:15"/>
+		<constant value="610:4-610:15"/>
+		<constant value="611:30-611:31"/>
+		<constant value="611:4-611:31"/>
+		<constant value="612:23-612:33"/>
+		<constant value="612:48-612:49"/>
+		<constant value="612:23-612:50"/>
+		<constant value="612:4-612:50"/>
+		<constant value="613:24-613:34"/>
+		<constant value="613:46-613:49"/>
+		<constant value="613:24-613:50"/>
+		<constant value="613:4-613:50"/>
+		<constant value="614:36-614:39"/>
+		<constant value="614:36-614:56"/>
+		<constant value="614:36-614:67"/>
+		<constant value="614:4-614:67"/>
+		<constant value="605:3-615:4"/>
+		<constant value="619:6-619:9"/>
+		<constant value="619:6-619:20"/>
+		<constant value="619:33-619:49"/>
+		<constant value="619:6-619:50"/>
+		<constant value="620:7-620:10"/>
+		<constant value="620:7-620:21"/>
+		<constant value="620:7-620:27"/>
+		<constant value="620:30-620:31"/>
+		<constant value="620:7-620:31"/>
+		<constant value="621:5-621:8"/>
+		<constant value="621:5-621:19"/>
+		<constant value="621:29-621:37"/>
+		<constant value="621:29-621:46"/>
+		<constant value="621:5-621:47"/>
+		<constant value="620:4-622:5"/>
+		<constant value="619:3-623:4"/>
+		<constant value="616:2-624:3"/>
 		<constant value="MCHESS!InternalPropagation;"/>
 		<constant value="chIntProp"/>
 		<constant value="27"/>
@@ -1623,117 +1647,117 @@
 		<constant value="PropagationDelay"/>
 		<constant value="J.EEXP_Error(J):J"/>
 		<constant value="FaultGuard"/>
-		<constant value="627:22-627:32"/>
-		<constant value="627:53-627:57"/>
-		<constant value="627:22-627:58"/>
-		<constant value="628:25-628:34"/>
-		<constant value="628:25-628:40"/>
-		<constant value="628:25-628:57"/>
-		<constant value="628:77-628:86"/>
-		<constant value="628:77-628:92"/>
-		<constant value="628:63-628:71"/>
-		<constant value="628:22-628:98"/>
-		<constant value="629:24-629:33"/>
-		<constant value="629:24-629:40"/>
-		<constant value="629:24-629:57"/>
-		<constant value="629:70-629:79"/>
-		<constant value="629:70-629:86"/>
-		<constant value="629:70-629:95"/>
-		<constant value="629:63-629:64"/>
-		<constant value="629:21-629:101"/>
-		<constant value="633:17-633:18"/>
-		<constant value="633:4-633:18"/>
-		<constant value="634:12-634:13"/>
-		<constant value="634:12-634:18"/>
-		<constant value="634:21-634:32"/>
-		<constant value="634:12-634:32"/>
-		<constant value="634:36-634:37"/>
-		<constant value="634:36-634:57"/>
-		<constant value="634:36-634:65"/>
-		<constant value="634:66-634:67"/>
-		<constant value="634:36-634:67"/>
-		<constant value="634:12-634:68"/>
-		<constant value="634:4-634:68"/>
-		<constant value="635:23-635:33"/>
-		<constant value="635:23-635:48"/>
-		<constant value="635:62-635:71"/>
-		<constant value="635:62-635:87"/>
-		<constant value="635:62-635:94"/>
-		<constant value="635:60-635:94"/>
-		<constant value="635:99-635:100"/>
-		<constant value="635:96-635:100"/>
-		<constant value="635:54-635:101"/>
-		<constant value="635:23-635:102"/>
-		<constant value="635:14-635:103"/>
-		<constant value="635:4-635:103"/>
-		<constant value="636:28-636:38"/>
-		<constant value="636:28-636:53"/>
-		<constant value="636:67-636:76"/>
-		<constant value="636:67-636:92"/>
-		<constant value="636:67-636:99"/>
-		<constant value="636:65-636:99"/>
-		<constant value="636:104-636:105"/>
-		<constant value="636:101-636:105"/>
-		<constant value="636:59-636:106"/>
-		<constant value="636:28-636:107"/>
-		<constant value="636:19-636:108"/>
-		<constant value="636:4-636:108"/>
-		<constant value="637:30-637:31"/>
-		<constant value="637:4-637:31"/>
-		<constant value="638:24-638:31"/>
-		<constant value="638:24-638:51"/>
-		<constant value="638:4-638:51"/>
-		<constant value="639:14-639:22"/>
-		<constant value="639:4-639:22"/>
-		<constant value="640:24-640:34"/>
-		<constant value="640:46-640:55"/>
-		<constant value="640:46-640:62"/>
-		<constant value="640:46-640:71"/>
-		<constant value="640:24-640:72"/>
-		<constant value="640:4-640:72"/>
-		<constant value="641:36-641:45"/>
-		<constant value="641:36-641:62"/>
-		<constant value="641:36-641:73"/>
-		<constant value="641:4-641:73"/>
-		<constant value="642:18-642:28"/>
-		<constant value="642:46-642:55"/>
-		<constant value="642:46-642:70"/>
-		<constant value="642:72-642:76"/>
-		<constant value="642:18-642:77"/>
-		<constant value="642:4-642:77"/>
-		<constant value="632:3-643:4"/>
+		<constant value="632:22-632:32"/>
+		<constant value="632:53-632:57"/>
+		<constant value="632:22-632:58"/>
+		<constant value="633:25-633:34"/>
+		<constant value="633:25-633:40"/>
+		<constant value="633:25-633:57"/>
+		<constant value="633:77-633:86"/>
+		<constant value="633:77-633:92"/>
+		<constant value="633:63-633:71"/>
+		<constant value="633:22-633:98"/>
+		<constant value="634:24-634:33"/>
+		<constant value="634:24-634:40"/>
+		<constant value="634:24-634:57"/>
+		<constant value="634:70-634:79"/>
+		<constant value="634:70-634:86"/>
+		<constant value="634:70-634:95"/>
+		<constant value="634:63-634:64"/>
+		<constant value="634:21-634:101"/>
+		<constant value="638:17-638:18"/>
+		<constant value="638:4-638:18"/>
+		<constant value="639:12-639:13"/>
+		<constant value="639:12-639:18"/>
+		<constant value="639:21-639:32"/>
+		<constant value="639:12-639:32"/>
+		<constant value="639:36-639:37"/>
+		<constant value="639:36-639:57"/>
+		<constant value="639:36-639:65"/>
+		<constant value="639:66-639:67"/>
+		<constant value="639:36-639:67"/>
+		<constant value="639:12-639:68"/>
+		<constant value="639:4-639:68"/>
+		<constant value="640:23-640:33"/>
+		<constant value="640:23-640:48"/>
+		<constant value="640:62-640:71"/>
+		<constant value="640:62-640:87"/>
+		<constant value="640:62-640:94"/>
+		<constant value="640:60-640:94"/>
+		<constant value="640:99-640:100"/>
+		<constant value="640:96-640:100"/>
+		<constant value="640:54-640:101"/>
+		<constant value="640:23-640:102"/>
+		<constant value="640:14-640:103"/>
+		<constant value="640:4-640:103"/>
+		<constant value="641:28-641:38"/>
+		<constant value="641:28-641:53"/>
+		<constant value="641:67-641:76"/>
+		<constant value="641:67-641:92"/>
+		<constant value="641:67-641:99"/>
+		<constant value="641:65-641:99"/>
+		<constant value="641:104-641:105"/>
+		<constant value="641:101-641:105"/>
+		<constant value="641:59-641:106"/>
+		<constant value="641:28-641:107"/>
+		<constant value="641:19-641:108"/>
+		<constant value="641:4-641:108"/>
+		<constant value="642:30-642:31"/>
+		<constant value="642:4-642:31"/>
+		<constant value="643:24-643:31"/>
+		<constant value="643:24-643:51"/>
+		<constant value="643:4-643:51"/>
+		<constant value="644:14-644:22"/>
+		<constant value="644:4-644:22"/>
+		<constant value="645:24-645:34"/>
+		<constant value="645:46-645:55"/>
+		<constant value="645:46-645:62"/>
+		<constant value="645:46-645:71"/>
+		<constant value="645:24-645:72"/>
+		<constant value="645:4-645:72"/>
+		<constant value="646:36-646:45"/>
+		<constant value="646:36-646:62"/>
+		<constant value="646:36-646:73"/>
+		<constant value="646:4-646:73"/>
+		<constant value="647:18-647:28"/>
+		<constant value="647:46-647:55"/>
+		<constant value="647:46-647:70"/>
+		<constant value="647:72-647:76"/>
+		<constant value="647:18-647:77"/>
+		<constant value="647:4-647:77"/>
+		<constant value="637:3-648:4"/>
 		<constant value="myDelay"/>
 		<constant value="myWeight"/>
 		<constant value="AddFailureMode"/>
-		<constant value="649:12-649:13"/>
-		<constant value="649:12-649:18"/>
-		<constant value="649:21-649:24"/>
-		<constant value="649:12-649:24"/>
-		<constant value="649:27-649:31"/>
-		<constant value="649:12-649:31"/>
-		<constant value="649:4-649:31"/>
-		<constant value="652:3-652:4"/>
-		<constant value="652:21-652:22"/>
-		<constant value="652:21-652:35"/>
-		<constant value="652:44-652:46"/>
-		<constant value="652:21-652:47"/>
-		<constant value="652:3-652:48"/>
-		<constant value="654:3-654:5"/>
-		<constant value="654:3-654:6"/>
-		<constant value="651:2-655:3"/>
+		<constant value="654:12-654:13"/>
+		<constant value="654:12-654:18"/>
+		<constant value="654:21-654:24"/>
+		<constant value="654:12-654:24"/>
+		<constant value="654:27-654:31"/>
+		<constant value="654:12-654:31"/>
+		<constant value="654:4-654:31"/>
+		<constant value="657:3-657:4"/>
+		<constant value="657:21-657:22"/>
+		<constant value="657:21-657:35"/>
+		<constant value="657:44-657:46"/>
+		<constant value="657:21-657:47"/>
+		<constant value="657:3-657:48"/>
+		<constant value="659:3-659:5"/>
+		<constant value="659:3-659:6"/>
+		<constant value="656:2-660:3"/>
 		<constant value="AddError"/>
-		<constant value="661:12-661:13"/>
-		<constant value="661:12-661:18"/>
-		<constant value="661:21-661:24"/>
-		<constant value="661:12-661:24"/>
-		<constant value="661:27-661:31"/>
-		<constant value="661:12-661:31"/>
-		<constant value="661:4-661:31"/>
-		<constant value="662:17-662:18"/>
-		<constant value="662:4-662:18"/>
-		<constant value="665:3-665:4"/>
-		<constant value="665:3-665:5"/>
-		<constant value="664:2-666:3"/>
+		<constant value="666:12-666:13"/>
+		<constant value="666:12-666:18"/>
+		<constant value="666:21-666:24"/>
+		<constant value="666:12-666:24"/>
+		<constant value="666:27-666:31"/>
+		<constant value="666:12-666:31"/>
+		<constant value="666:4-666:31"/>
+		<constant value="667:17-667:18"/>
+		<constant value="667:4-667:18"/>
+		<constant value="670:3-670:4"/>
+		<constant value="670:3-670:5"/>
+		<constant value="669:2-671:3"/>
 		<constant value="AddEPFFromErrorModelFailure"/>
 		<constant value="MCHESS!Failure;"/>
 		<constant value="43"/>
@@ -1742,209 +1766,209 @@
 		<constant value="_epf_"/>
 		<constant value="ErrorsGeneratesFailures"/>
 		<constant value="106"/>
-		<constant value="674:22-674:32"/>
-		<constant value="674:53-674:57"/>
-		<constant value="674:22-674:58"/>
-		<constant value="675:24-675:34"/>
-		<constant value="675:24-675:49"/>
-		<constant value="675:63-675:64"/>
-		<constant value="675:63-675:80"/>
-		<constant value="675:63-675:87"/>
-		<constant value="675:61-675:87"/>
-		<constant value="675:92-675:93"/>
-		<constant value="675:89-675:93"/>
-		<constant value="675:55-675:94"/>
-		<constant value="675:24-675:95"/>
-		<constant value="676:25-676:26"/>
-		<constant value="676:25-676:32"/>
-		<constant value="676:25-676:49"/>
-		<constant value="676:69-676:70"/>
-		<constant value="676:69-676:76"/>
-		<constant value="676:55-676:63"/>
-		<constant value="676:22-676:82"/>
-		<constant value="677:24-677:25"/>
-		<constant value="677:24-677:32"/>
-		<constant value="677:24-677:49"/>
-		<constant value="677:62-677:63"/>
-		<constant value="677:62-677:70"/>
-		<constant value="677:62-677:79"/>
-		<constant value="677:55-677:56"/>
-		<constant value="677:21-677:85"/>
-		<constant value="681:12-681:13"/>
-		<constant value="681:12-681:18"/>
-		<constant value="681:21-681:28"/>
-		<constant value="681:12-681:28"/>
-		<constant value="681:32-681:33"/>
-		<constant value="681:32-681:57"/>
-		<constant value="681:32-681:65"/>
-		<constant value="681:66-681:67"/>
-		<constant value="681:32-681:67"/>
-		<constant value="681:12-681:68"/>
-		<constant value="681:4-681:68"/>
-		<constant value="682:23-682:30"/>
-		<constant value="682:14-682:31"/>
-		<constant value="682:4-682:31"/>
-		<constant value="683:19-683:20"/>
-		<constant value="683:19-683:33"/>
-		<constant value="683:47-683:48"/>
-		<constant value="683:47-683:53"/>
-		<constant value="683:64-683:66"/>
-		<constant value="683:64-683:76"/>
-		<constant value="683:47-683:77"/>
-		<constant value="683:19-683:78"/>
-		<constant value="683:4-683:78"/>
-		<constant value="684:17-684:18"/>
-		<constant value="684:4-684:18"/>
-		<constant value="685:24-685:31"/>
-		<constant value="685:24-685:51"/>
-		<constant value="685:4-685:51"/>
-		<constant value="686:30-686:31"/>
-		<constant value="686:4-686:31"/>
-		<constant value="687:14-687:22"/>
-		<constant value="687:4-687:22"/>
-		<constant value="688:24-688:34"/>
-		<constant value="688:46-688:53"/>
-		<constant value="688:24-688:54"/>
-		<constant value="688:4-688:54"/>
-		<constant value="689:36-689:39"/>
-		<constant value="689:36-689:56"/>
-		<constant value="689:36-689:67"/>
-		<constant value="689:4-689:67"/>
-		<constant value="680:3-690:4"/>
-		<constant value="692:3-692:6"/>
-		<constant value="692:3-692:7"/>
-		<constant value="691:2-693:3"/>
+		<constant value="679:22-679:32"/>
+		<constant value="679:53-679:57"/>
+		<constant value="679:22-679:58"/>
+		<constant value="680:24-680:34"/>
+		<constant value="680:24-680:49"/>
+		<constant value="680:63-680:64"/>
+		<constant value="680:63-680:80"/>
+		<constant value="680:63-680:87"/>
+		<constant value="680:61-680:87"/>
+		<constant value="680:92-680:93"/>
+		<constant value="680:89-680:93"/>
+		<constant value="680:55-680:94"/>
+		<constant value="680:24-680:95"/>
+		<constant value="681:25-681:26"/>
+		<constant value="681:25-681:32"/>
+		<constant value="681:25-681:49"/>
+		<constant value="681:69-681:70"/>
+		<constant value="681:69-681:76"/>
+		<constant value="681:55-681:63"/>
+		<constant value="681:22-681:82"/>
+		<constant value="682:24-682:25"/>
+		<constant value="682:24-682:32"/>
+		<constant value="682:24-682:49"/>
+		<constant value="682:62-682:63"/>
+		<constant value="682:62-682:70"/>
+		<constant value="682:62-682:79"/>
+		<constant value="682:55-682:56"/>
+		<constant value="682:21-682:85"/>
+		<constant value="686:12-686:13"/>
+		<constant value="686:12-686:18"/>
+		<constant value="686:21-686:28"/>
+		<constant value="686:12-686:28"/>
+		<constant value="686:32-686:33"/>
+		<constant value="686:32-686:57"/>
+		<constant value="686:32-686:65"/>
+		<constant value="686:66-686:67"/>
+		<constant value="686:32-686:67"/>
+		<constant value="686:12-686:68"/>
+		<constant value="686:4-686:68"/>
+		<constant value="687:23-687:30"/>
+		<constant value="687:14-687:31"/>
+		<constant value="687:4-687:31"/>
+		<constant value="688:19-688:20"/>
+		<constant value="688:19-688:33"/>
+		<constant value="688:47-688:48"/>
+		<constant value="688:47-688:53"/>
+		<constant value="688:64-688:66"/>
+		<constant value="688:64-688:76"/>
+		<constant value="688:47-688:77"/>
+		<constant value="688:19-688:78"/>
+		<constant value="688:4-688:78"/>
+		<constant value="689:17-689:18"/>
+		<constant value="689:4-689:18"/>
+		<constant value="690:24-690:31"/>
+		<constant value="690:24-690:51"/>
+		<constant value="690:4-690:51"/>
+		<constant value="691:30-691:31"/>
+		<constant value="691:4-691:31"/>
+		<constant value="692:14-692:22"/>
+		<constant value="692:4-692:22"/>
+		<constant value="693:24-693:34"/>
+		<constant value="693:46-693:53"/>
+		<constant value="693:24-693:54"/>
+		<constant value="693:4-693:54"/>
+		<constant value="694:36-694:39"/>
+		<constant value="694:36-694:56"/>
+		<constant value="694:36-694:67"/>
+		<constant value="694:4-694:67"/>
+		<constant value="685:3-695:4"/>
+		<constant value="697:3-697:6"/>
+		<constant value="697:3-697:7"/>
+		<constant value="696:2-698:3"/>
 		<constant value="eSource"/>
 		<constant value="AddFLARuleEPF"/>
 		<constant value="_epf"/>
-		<constant value="699:12-699:13"/>
-		<constant value="699:12-699:18"/>
-		<constant value="699:21-699:27"/>
-		<constant value="699:12-699:27"/>
-		<constant value="699:4-699:27"/>
-		<constant value="700:23-700:24"/>
-		<constant value="700:14-700:25"/>
-		<constant value="700:4-700:25"/>
-		<constant value="701:19-701:29"/>
-		<constant value="701:4-701:29"/>
-		<constant value="702:17-702:18"/>
-		<constant value="702:17-702:28"/>
-		<constant value="702:4-702:28"/>
-		<constant value="703:24-703:34"/>
-		<constant value="703:49-703:50"/>
-		<constant value="703:24-703:51"/>
-		<constant value="703:4-703:51"/>
-		<constant value="704:30-704:31"/>
-		<constant value="704:4-704:31"/>
-		<constant value="705:14-705:15"/>
-		<constant value="705:4-705:15"/>
-		<constant value="706:24-706:34"/>
-		<constant value="706:46-706:47"/>
-		<constant value="706:24-706:48"/>
-		<constant value="706:4-706:48"/>
-		<constant value="707:36-707:39"/>
-		<constant value="707:36-707:56"/>
-		<constant value="707:36-707:67"/>
-		<constant value="707:4-707:67"/>
-		<constant value="710:3-710:6"/>
-		<constant value="710:3-710:7"/>
-		<constant value="709:2-711:3"/>
+		<constant value="704:12-704:13"/>
+		<constant value="704:12-704:18"/>
+		<constant value="704:21-704:27"/>
+		<constant value="704:12-704:27"/>
+		<constant value="704:4-704:27"/>
+		<constant value="705:23-705:24"/>
+		<constant value="705:14-705:25"/>
+		<constant value="705:4-705:25"/>
+		<constant value="706:19-706:29"/>
+		<constant value="706:4-706:29"/>
+		<constant value="707:17-707:18"/>
+		<constant value="707:17-707:28"/>
+		<constant value="707:4-707:28"/>
+		<constant value="708:24-708:34"/>
+		<constant value="708:49-708:50"/>
+		<constant value="708:24-708:51"/>
+		<constant value="708:4-708:51"/>
+		<constant value="709:30-709:31"/>
+		<constant value="709:4-709:31"/>
+		<constant value="710:14-710:15"/>
+		<constant value="710:4-710:15"/>
+		<constant value="711:24-711:34"/>
+		<constant value="711:46-711:47"/>
+		<constant value="711:24-711:48"/>
+		<constant value="711:4-711:48"/>
+		<constant value="712:36-712:39"/>
+		<constant value="712:36-712:56"/>
+		<constant value="712:36-712:67"/>
+		<constant value="712:4-712:67"/>
+		<constant value="715:3-715:6"/>
+		<constant value="715:3-715:7"/>
+		<constant value="714:2-716:3"/>
 		<constant value="AddFGE"/>
-		<constant value="716:22-716:23"/>
-		<constant value="716:22-716:32"/>
-		<constant value="716:22-716:42"/>
-		<constant value="720:12-720:13"/>
-		<constant value="720:12-720:18"/>
-		<constant value="720:21-720:28"/>
-		<constant value="720:12-720:28"/>
-		<constant value="720:32-720:33"/>
-		<constant value="720:32-720:55"/>
-		<constant value="720:32-720:63"/>
-		<constant value="720:64-720:65"/>
-		<constant value="720:32-720:65"/>
-		<constant value="720:12-720:66"/>
-		<constant value="720:4-720:66"/>
-		<constant value="721:17-721:18"/>
-		<constant value="721:4-721:18"/>
-		<constant value="722:14-722:15"/>
-		<constant value="722:4-722:15"/>
-		<constant value="723:19-723:20"/>
-		<constant value="723:4-723:20"/>
-		<constant value="724:23-724:28"/>
-		<constant value="724:4-724:28"/>
-		<constant value="725:30-725:31"/>
-		<constant value="725:4-725:31"/>
-		<constant value="726:14-726:20"/>
-		<constant value="726:4-726:20"/>
-		<constant value="729:3-729:6"/>
-		<constant value="729:3-729:7"/>
-		<constant value="728:2-730:3"/>
+		<constant value="721:22-721:23"/>
+		<constant value="721:22-721:32"/>
+		<constant value="721:22-721:42"/>
+		<constant value="725:12-725:13"/>
+		<constant value="725:12-725:18"/>
+		<constant value="725:21-725:28"/>
+		<constant value="725:12-725:28"/>
+		<constant value="725:32-725:33"/>
+		<constant value="725:32-725:55"/>
+		<constant value="725:32-725:63"/>
+		<constant value="725:64-725:65"/>
+		<constant value="725:32-725:65"/>
+		<constant value="725:12-725:66"/>
+		<constant value="725:4-725:66"/>
+		<constant value="726:17-726:18"/>
+		<constant value="726:4-726:18"/>
+		<constant value="727:14-727:15"/>
+		<constant value="727:4-727:15"/>
+		<constant value="728:19-728:20"/>
+		<constant value="728:4-728:20"/>
+		<constant value="729:23-729:28"/>
+		<constant value="729:4-729:28"/>
+		<constant value="730:30-730:31"/>
+		<constant value="730:4-730:31"/>
+		<constant value="731:14-731:20"/>
+		<constant value="731:4-731:20"/>
+		<constant value="734:3-734:6"/>
+		<constant value="734:3-734:7"/>
+		<constant value="733:2-735:3"/>
 		<constant value="AddEPF"/>
-		<constant value="735:22-735:24"/>
-		<constant value="735:22-735:34"/>
-		<constant value="739:12-739:13"/>
-		<constant value="739:12-739:18"/>
-		<constant value="739:21-739:28"/>
-		<constant value="739:12-739:28"/>
-		<constant value="739:32-739:33"/>
-		<constant value="739:32-739:57"/>
-		<constant value="739:32-739:65"/>
-		<constant value="739:66-739:67"/>
-		<constant value="739:32-739:67"/>
-		<constant value="739:12-739:68"/>
-		<constant value="739:4-739:68"/>
-		<constant value="740:17-740:18"/>
-		<constant value="740:4-740:18"/>
-		<constant value="741:18-741:19"/>
-		<constant value="741:14-741:20"/>
-		<constant value="741:4-741:20"/>
-		<constant value="742:23-742:25"/>
-		<constant value="742:19-742:26"/>
-		<constant value="742:4-742:26"/>
-		<constant value="743:24-743:29"/>
-		<constant value="743:4-743:29"/>
-		<constant value="744:30-744:31"/>
-		<constant value="744:4-744:31"/>
-		<constant value="745:14-745:20"/>
-		<constant value="745:4-745:20"/>
-		<constant value="746:24-746:34"/>
-		<constant value="746:46-746:47"/>
-		<constant value="746:24-746:48"/>
-		<constant value="746:4-746:48"/>
-		<constant value="747:36-747:39"/>
-		<constant value="747:36-747:56"/>
-		<constant value="747:36-747:67"/>
-		<constant value="747:4-747:67"/>
+		<constant value="740:22-740:24"/>
+		<constant value="740:22-740:34"/>
+		<constant value="744:12-744:13"/>
+		<constant value="744:12-744:18"/>
+		<constant value="744:21-744:28"/>
+		<constant value="744:12-744:28"/>
+		<constant value="744:32-744:33"/>
+		<constant value="744:32-744:57"/>
+		<constant value="744:32-744:65"/>
+		<constant value="744:66-744:67"/>
+		<constant value="744:32-744:67"/>
+		<constant value="744:12-744:68"/>
+		<constant value="744:4-744:68"/>
+		<constant value="745:17-745:18"/>
+		<constant value="745:4-745:18"/>
+		<constant value="746:18-746:19"/>
+		<constant value="746:14-746:20"/>
+		<constant value="746:4-746:20"/>
+		<constant value="747:23-747:25"/>
+		<constant value="747:19-747:26"/>
+		<constant value="747:4-747:26"/>
+		<constant value="748:24-748:29"/>
+		<constant value="748:4-748:29"/>
+		<constant value="749:30-749:31"/>
+		<constant value="749:4-749:31"/>
+		<constant value="750:14-750:20"/>
+		<constant value="750:4-750:20"/>
+		<constant value="751:24-751:34"/>
+		<constant value="751:46-751:47"/>
+		<constant value="751:24-751:48"/>
+		<constant value="751:4-751:48"/>
+		<constant value="752:36-752:39"/>
+		<constant value="752:36-752:56"/>
+		<constant value="752:36-752:67"/>
+		<constant value="752:4-752:67"/>
 		<constant value="AddSourceError"/>
 		<constant value="_e_"/>
-		<constant value="753:22-753:24"/>
-		<constant value="753:22-753:34"/>
-		<constant value="757:12-757:13"/>
-		<constant value="757:12-757:18"/>
-		<constant value="757:21-757:26"/>
-		<constant value="757:12-757:26"/>
-		<constant value="757:29-757:31"/>
-		<constant value="757:29-757:36"/>
-		<constant value="757:12-757:36"/>
-		<constant value="757:4-757:36"/>
-		<constant value="758:17-758:18"/>
-		<constant value="758:4-758:18"/>
-		<constant value="761:18-761:19"/>
-		<constant value="761:14-761:20"/>
-		<constant value="761:4-761:20"/>
-		<constant value="762:23-762:25"/>
-		<constant value="762:19-762:26"/>
-		<constant value="762:4-762:26"/>
+		<constant value="758:22-758:24"/>
+		<constant value="758:22-758:34"/>
+		<constant value="762:12-762:13"/>
+		<constant value="762:12-762:18"/>
+		<constant value="762:21-762:26"/>
+		<constant value="762:12-762:26"/>
+		<constant value="762:29-762:31"/>
+		<constant value="762:29-762:36"/>
+		<constant value="762:12-762:36"/>
+		<constant value="762:4-762:36"/>
 		<constant value="763:17-763:18"/>
 		<constant value="763:4-763:18"/>
-		<constant value="764:24-764:34"/>
-		<constant value="764:46-764:47"/>
-		<constant value="764:24-764:48"/>
-		<constant value="764:4-764:48"/>
-		<constant value="765:36-765:39"/>
-		<constant value="765:36-765:56"/>
-		<constant value="765:36-765:67"/>
-		<constant value="765:4-765:67"/>
+		<constant value="766:18-766:19"/>
+		<constant value="766:14-766:20"/>
+		<constant value="766:4-766:20"/>
+		<constant value="767:23-767:25"/>
+		<constant value="767:19-767:26"/>
+		<constant value="767:4-767:26"/>
+		<constant value="768:17-768:18"/>
+		<constant value="768:4-768:18"/>
+		<constant value="769:24-769:34"/>
+		<constant value="769:46-769:47"/>
+		<constant value="769:24-769:48"/>
+		<constant value="769:4-769:48"/>
+		<constant value="770:36-770:39"/>
+		<constant value="770:36-770:56"/>
+		<constant value="770:36-770:67"/>
+		<constant value="770:4-770:67"/>
 		<constant value="newEvalIntervalOfTime"/>
 		<constant value="D"/>
 		<constant value="t"/>
@@ -1952,18 +1976,18 @@
 		<constant value="IntervalOfTimeAveraged"/>
 		<constant value="begin"/>
 		<constant value="end"/>
-		<constant value="779:13-779:14"/>
-		<constant value="779:4-779:14"/>
-		<constant value="780:11-780:12"/>
-		<constant value="780:4-780:12"/>
-		<constant value="777:3-781:4"/>
+		<constant value="784:13-784:14"/>
+		<constant value="784:4-784:14"/>
+		<constant value="785:11-785:12"/>
+		<constant value="785:4-785:12"/>
+		<constant value="782:3-786:4"/>
 		<constant value="newEvalInstantOfTime"/>
 		<constant value="instant"/>
 		<constant value="InstantOfTime"/>
 		<constant value="timePoint"/>
-		<constant value="787:45-787:46"/>
-		<constant value="787:32-787:46"/>
-		<constant value="787:3-787:48"/>
+		<constant value="792:45-792:46"/>
+		<constant value="792:32-792:46"/>
+		<constant value="792:3-792:48"/>
 		<constant value="FindTargetFailureModes"/>
 		<constant value="targetDepComponent"/>
 		<constant value="20"/>
@@ -1980,84 +2004,83 @@
 		<constant value="137"/>
 		<constant value="J.getModeName():J"/>
 		<constant value="J.contains(J):J"/>
-		<constant value="794:46-794:51"/>
-		<constant value="795:33-795:38"/>
-		<constant value="796:38-796:43"/>
-		<constant value="802:6-802:9"/>
-		<constant value="802:6-802:28"/>
-		<constant value="802:6-802:38"/>
-		<constant value="805:15-805:18"/>
-		<constant value="805:15-805:37"/>
-		<constant value="805:4-805:38"/>
-		<constant value="803:15-803:18"/>
-		<constant value="803:15-803:27"/>
-		<constant value="803:41-803:42"/>
-		<constant value="803:41-803:55"/>
-		<constant value="803:41-803:67"/>
-		<constant value="803:41-803:76"/>
-		<constant value="803:15-803:77"/>
-		<constant value="803:15-803:88"/>
-		<constant value="803:4-803:89"/>
-		<constant value="802:3-806:4"/>
-		<constant value="810:18-810:25"/>
-		<constant value="810:39-810:40"/>
-		<constant value="810:39-810:55"/>
-		<constant value="810:18-810:56"/>
-		<constant value="810:18-811:20"/>
-		<constant value="812:23-812:25"/>
-		<constant value="812:23-812:41"/>
-		<constant value="810:18-812:42"/>
-		<constant value="810:3-812:43"/>
-		<constant value="815:10-815:13"/>
-		<constant value="815:10-815:24"/>
-		<constant value="815:10-815:34"/>
-		<constant value="815:6-815:34"/>
-		<constant value="816:19-816:22"/>
-		<constant value="816:19-816:33"/>
-		<constant value="816:19-816:41"/>
-		<constant value="816:56-816:67"/>
-		<constant value="816:19-816:68"/>
-		<constant value="816:4-816:69"/>
-		<constant value="815:3-817:4"/>
-		<constant value="820:18-820:29"/>
-		<constant value="820:44-820:46"/>
-		<constant value="820:44-820:75"/>
-		<constant value="820:18-820:76"/>
-		<constant value="820:18-820:87"/>
-		<constant value="820:3-820:88"/>
-		<constant value="824:5-824:16"/>
-		<constant value="824:31-824:41"/>
-		<constant value="824:62-824:64"/>
-		<constant value="824:62-824:88"/>
-		<constant value="824:31-824:89"/>
-		<constant value="824:31-824:102"/>
-		<constant value="824:116-824:118"/>
-		<constant value="824:116-824:132"/>
-		<constant value="824:135-824:137"/>
-		<constant value="824:135-824:142"/>
-		<constant value="824:116-824:142"/>
-		<constant value="824:31-824:143"/>
-		<constant value="824:5-824:144"/>
-		<constant value="824:5-825:18"/>
-		<constant value="824:5-825:27"/>
-		<constant value="823:3-825:28"/>
-		<constant value="828:10-828:13"/>
-		<constant value="828:10-828:31"/>
-		<constant value="828:10-828:42"/>
-		<constant value="828:6-828:42"/>
-		<constant value="830:5-830:15"/>
-		<constant value="830:29-830:32"/>
-		<constant value="830:29-830:50"/>
-		<constant value="830:61-830:63"/>
-		<constant value="830:61-830:77"/>
-		<constant value="830:29-830:78"/>
-		<constant value="830:5-830:79"/>
-		<constant value="829:4-830:80"/>
-		<constant value="828:3-831:4"/>
-		<constant value="833:3-833:13"/>
-		<constant value="833:3-833:14"/>
-		<constant value="798:2-834:3"/>
-		<constant value="sl"/>
+		<constant value="799:46-799:51"/>
+		<constant value="800:33-800:38"/>
+		<constant value="801:38-801:43"/>
+		<constant value="807:6-807:9"/>
+		<constant value="807:6-807:28"/>
+		<constant value="807:6-807:38"/>
+		<constant value="810:15-810:18"/>
+		<constant value="810:15-810:37"/>
+		<constant value="810:4-810:38"/>
+		<constant value="808:15-808:18"/>
+		<constant value="808:15-808:27"/>
+		<constant value="808:41-808:42"/>
+		<constant value="808:41-808:55"/>
+		<constant value="808:41-808:67"/>
+		<constant value="808:41-808:76"/>
+		<constant value="808:15-808:77"/>
+		<constant value="808:15-808:88"/>
+		<constant value="808:4-808:89"/>
+		<constant value="807:3-811:4"/>
+		<constant value="815:18-815:25"/>
+		<constant value="815:39-815:40"/>
+		<constant value="815:39-815:55"/>
+		<constant value="815:18-815:56"/>
+		<constant value="815:18-816:20"/>
+		<constant value="817:23-817:25"/>
+		<constant value="817:23-817:41"/>
+		<constant value="815:18-817:42"/>
+		<constant value="815:3-817:43"/>
+		<constant value="820:10-820:13"/>
+		<constant value="820:10-820:24"/>
+		<constant value="820:10-820:34"/>
+		<constant value="820:6-820:34"/>
+		<constant value="821:19-821:22"/>
+		<constant value="821:19-821:33"/>
+		<constant value="821:19-821:41"/>
+		<constant value="821:56-821:67"/>
+		<constant value="821:19-821:68"/>
+		<constant value="821:4-821:69"/>
+		<constant value="820:3-822:4"/>
+		<constant value="825:18-825:29"/>
+		<constant value="825:44-825:46"/>
+		<constant value="825:44-825:75"/>
+		<constant value="825:18-825:76"/>
+		<constant value="825:18-825:87"/>
+		<constant value="825:3-825:88"/>
+		<constant value="829:5-829:16"/>
+		<constant value="829:31-829:41"/>
+		<constant value="829:62-829:64"/>
+		<constant value="829:62-829:88"/>
+		<constant value="829:31-829:89"/>
+		<constant value="829:31-829:102"/>
+		<constant value="829:116-829:118"/>
+		<constant value="829:116-829:132"/>
+		<constant value="829:135-829:137"/>
+		<constant value="829:135-829:142"/>
+		<constant value="829:116-829:142"/>
+		<constant value="829:31-829:143"/>
+		<constant value="829:5-829:144"/>
+		<constant value="829:5-830:18"/>
+		<constant value="829:5-830:27"/>
+		<constant value="828:3-830:28"/>
+		<constant value="833:10-833:13"/>
+		<constant value="833:10-833:31"/>
+		<constant value="833:10-833:42"/>
+		<constant value="833:6-833:42"/>
+		<constant value="835:5-835:15"/>
+		<constant value="835:29-835:32"/>
+		<constant value="835:29-835:50"/>
+		<constant value="835:61-835:63"/>
+		<constant value="835:61-835:77"/>
+		<constant value="835:29-835:78"/>
+		<constant value="835:5-835:79"/>
+		<constant value="834:4-835:80"/>
+		<constant value="833:3-836:4"/>
+		<constant value="838:3-838:13"/>
+		<constant value="838:3-838:14"/>
+		<constant value="803:2-839:3"/>
 		<constant value="targets"/>
 		<constant value="targetSlots"/>
 		<constant value="fmSelected"/>
@@ -2073,51 +2096,51 @@
 		<constant value="evaluations"/>
 		<constant value="J.substring(JJ):J"/>
 		<constant value="J.newEvalInstantOfTime(J):J"/>
-		<constant value="840:23-840:26"/>
-		<constant value="840:23-840:34"/>
-		<constant value="840:51-840:60"/>
-		<constant value="840:62-840:65"/>
-		<constant value="840:23-840:66"/>
-		<constant value="840:23-840:73"/>
-		<constant value="841:24-841:32"/>
-		<constant value="841:41-841:56"/>
-		<constant value="841:24-841:57"/>
-		<constant value="844:28-844:38"/>
-		<constant value="844:28-844:53"/>
-		<constant value="844:28-844:62"/>
-		<constant value="848:12-848:15"/>
-		<constant value="848:12-848:33"/>
-		<constant value="848:12-848:38"/>
-		<constant value="848:4-848:38"/>
-		<constant value="849:14-849:24"/>
-		<constant value="849:48-849:51"/>
-		<constant value="849:14-849:52"/>
-		<constant value="849:4-849:52"/>
-		<constant value="853:3-853:12"/>
-		<constant value="853:3-853:21"/>
-		<constant value="853:26-853:28"/>
-		<constant value="853:3-853:30"/>
-		<constant value="854:7-854:15"/>
-		<constant value="854:18-854:19"/>
-		<constant value="854:7-854:19"/>
-		<constant value="855:4-855:6"/>
-		<constant value="855:4-855:18"/>
-		<constant value="856:5-856:15"/>
-		<constant value="857:6-857:14"/>
-		<constant value="857:25-857:33"/>
-		<constant value="857:36-857:37"/>
-		<constant value="857:25-857:37"/>
-		<constant value="857:40-857:55"/>
-		<constant value="857:40-857:62"/>
-		<constant value="857:25-857:62"/>
-		<constant value="857:64-857:72"/>
-		<constant value="857:64-857:79"/>
-		<constant value="857:6-857:80"/>
-		<constant value="857:6-857:89"/>
-		<constant value="856:5-858:6"/>
-		<constant value="855:4-859:6"/>
-		<constant value="854:3-863:4"/>
-		<constant value="852:2-864:3"/>
+		<constant value="845:23-845:26"/>
+		<constant value="845:23-845:34"/>
+		<constant value="845:51-845:60"/>
+		<constant value="845:62-845:65"/>
+		<constant value="845:23-845:66"/>
+		<constant value="845:23-845:73"/>
+		<constant value="846:24-846:32"/>
+		<constant value="846:41-846:56"/>
+		<constant value="846:24-846:57"/>
+		<constant value="849:28-849:38"/>
+		<constant value="849:28-849:53"/>
+		<constant value="849:28-849:62"/>
+		<constant value="853:12-853:15"/>
+		<constant value="853:12-853:33"/>
+		<constant value="853:12-853:38"/>
+		<constant value="853:4-853:38"/>
+		<constant value="854:14-854:24"/>
+		<constant value="854:48-854:51"/>
+		<constant value="854:14-854:52"/>
+		<constant value="854:4-854:52"/>
+		<constant value="858:3-858:12"/>
+		<constant value="858:3-858:21"/>
+		<constant value="858:26-858:28"/>
+		<constant value="858:3-858:30"/>
+		<constant value="859:7-859:15"/>
+		<constant value="859:18-859:19"/>
+		<constant value="859:7-859:19"/>
+		<constant value="860:4-860:6"/>
+		<constant value="860:4-860:18"/>
+		<constant value="861:5-861:15"/>
+		<constant value="862:6-862:14"/>
+		<constant value="862:25-862:33"/>
+		<constant value="862:36-862:37"/>
+		<constant value="862:25-862:37"/>
+		<constant value="862:40-862:55"/>
+		<constant value="862:40-862:62"/>
+		<constant value="862:25-862:62"/>
+		<constant value="862:64-862:72"/>
+		<constant value="862:64-862:79"/>
+		<constant value="862:6-862:80"/>
+		<constant value="862:6-862:89"/>
+		<constant value="861:5-863:6"/>
+		<constant value="860:4-864:6"/>
+		<constant value="859:3-868:4"/>
+		<constant value="857:2-869:3"/>
 		<constant value="re"/>
 		<constant value="strClean"/>
 		<constant value="iInstant"/>
@@ -2128,306 +2151,306 @@
 		<constant value="70"/>
 		<constant value="87"/>
 		<constant value="J.newEvalIntervalOfTime(J):J"/>
-		<constant value="869:23-869:26"/>
-		<constant value="869:23-869:34"/>
-		<constant value="869:51-869:60"/>
-		<constant value="869:62-869:65"/>
-		<constant value="869:23-869:66"/>
-		<constant value="869:23-869:73"/>
-		<constant value="870:25-870:33"/>
-		<constant value="870:42-870:55"/>
-		<constant value="870:25-870:56"/>
-		<constant value="871:24-871:32"/>
-		<constant value="871:41-871:56"/>
-		<constant value="871:24-871:57"/>
-		<constant value="873:28-873:38"/>
-		<constant value="873:28-873:53"/>
-		<constant value="873:28-873:62"/>
-		<constant value="877:12-877:15"/>
-		<constant value="877:12-877:33"/>
-		<constant value="877:12-877:38"/>
-		<constant value="877:4-877:38"/>
-		<constant value="878:14-878:24"/>
-		<constant value="878:48-878:51"/>
-		<constant value="878:14-878:52"/>
-		<constant value="878:4-878:52"/>
-		<constant value="881:3-881:12"/>
-		<constant value="881:3-881:21"/>
-		<constant value="881:26-881:28"/>
-		<constant value="881:3-881:30"/>
-		<constant value="883:7-883:16"/>
-		<constant value="883:19-883:20"/>
-		<constant value="883:7-883:20"/>
-		<constant value="890:12-890:20"/>
-		<constant value="890:23-890:24"/>
-		<constant value="890:12-890:24"/>
-		<constant value="891:4-891:6"/>
-		<constant value="891:4-891:18"/>
-		<constant value="892:5-892:15"/>
-		<constant value="893:6-893:14"/>
-		<constant value="893:25-893:33"/>
-		<constant value="893:36-893:37"/>
-		<constant value="893:25-893:37"/>
-		<constant value="893:40-893:55"/>
-		<constant value="893:40-893:62"/>
-		<constant value="893:25-893:62"/>
-		<constant value="893:64-893:72"/>
-		<constant value="893:64-893:79"/>
-		<constant value="893:6-893:80"/>
-		<constant value="893:6-893:89"/>
-		<constant value="892:5-894:6"/>
-		<constant value="891:4-895:6"/>
-		<constant value="890:8-899:4"/>
-		<constant value="884:4-884:6"/>
-		<constant value="884:4-884:18"/>
-		<constant value="885:5-885:15"/>
-		<constant value="886:6-886:14"/>
-		<constant value="886:25-886:34"/>
-		<constant value="886:37-886:38"/>
-		<constant value="886:25-886:38"/>
-		<constant value="886:41-886:54"/>
-		<constant value="886:41-886:61"/>
-		<constant value="886:25-886:61"/>
-		<constant value="886:63-886:71"/>
-		<constant value="886:63-886:78"/>
-		<constant value="886:6-886:79"/>
-		<constant value="886:6-886:88"/>
-		<constant value="885:5-887:6"/>
-		<constant value="884:4-888:6"/>
-		<constant value="883:3-899:4"/>
-		<constant value="880:2-900:3"/>
+		<constant value="874:23-874:26"/>
+		<constant value="874:23-874:34"/>
+		<constant value="874:51-874:60"/>
+		<constant value="874:62-874:65"/>
+		<constant value="874:23-874:66"/>
+		<constant value="874:23-874:73"/>
+		<constant value="875:25-875:33"/>
+		<constant value="875:42-875:55"/>
+		<constant value="875:25-875:56"/>
+		<constant value="876:24-876:32"/>
+		<constant value="876:41-876:56"/>
+		<constant value="876:24-876:57"/>
+		<constant value="878:28-878:38"/>
+		<constant value="878:28-878:53"/>
+		<constant value="878:28-878:62"/>
+		<constant value="882:12-882:15"/>
+		<constant value="882:12-882:33"/>
+		<constant value="882:12-882:38"/>
+		<constant value="882:4-882:38"/>
+		<constant value="883:14-883:24"/>
+		<constant value="883:48-883:51"/>
+		<constant value="883:14-883:52"/>
+		<constant value="883:4-883:52"/>
+		<constant value="886:3-886:12"/>
+		<constant value="886:3-886:21"/>
+		<constant value="886:26-886:28"/>
+		<constant value="886:3-886:30"/>
+		<constant value="888:7-888:16"/>
+		<constant value="888:19-888:20"/>
+		<constant value="888:7-888:20"/>
+		<constant value="895:12-895:20"/>
+		<constant value="895:23-895:24"/>
+		<constant value="895:12-895:24"/>
+		<constant value="896:4-896:6"/>
+		<constant value="896:4-896:18"/>
+		<constant value="897:5-897:15"/>
+		<constant value="898:6-898:14"/>
+		<constant value="898:25-898:33"/>
+		<constant value="898:36-898:37"/>
+		<constant value="898:25-898:37"/>
+		<constant value="898:40-898:55"/>
+		<constant value="898:40-898:62"/>
+		<constant value="898:25-898:62"/>
+		<constant value="898:64-898:72"/>
+		<constant value="898:64-898:79"/>
+		<constant value="898:6-898:80"/>
+		<constant value="898:6-898:89"/>
+		<constant value="897:5-899:6"/>
+		<constant value="896:4-900:6"/>
+		<constant value="895:8-904:4"/>
+		<constant value="889:4-889:6"/>
+		<constant value="889:4-889:18"/>
+		<constant value="890:5-890:15"/>
+		<constant value="891:6-891:14"/>
+		<constant value="891:25-891:34"/>
+		<constant value="891:37-891:38"/>
+		<constant value="891:25-891:38"/>
+		<constant value="891:41-891:54"/>
+		<constant value="891:41-891:61"/>
+		<constant value="891:25-891:61"/>
+		<constant value="891:63-891:71"/>
+		<constant value="891:63-891:78"/>
+		<constant value="891:6-891:79"/>
+		<constant value="891:6-891:88"/>
+		<constant value="890:5-892:6"/>
+		<constant value="889:4-893:6"/>
+		<constant value="888:3-904:4"/>
+		<constant value="885:2-905:3"/>
 		<constant value="iInterval"/>
 		<constant value="FailureProbability"/>
-		<constant value="905:23-905:26"/>
-		<constant value="905:23-905:34"/>
-		<constant value="905:51-905:60"/>
-		<constant value="905:62-905:65"/>
-		<constant value="905:23-905:66"/>
-		<constant value="905:23-905:73"/>
-		<constant value="907:28-907:38"/>
-		<constant value="907:28-907:53"/>
-		<constant value="907:28-907:62"/>
-		<constant value="911:12-911:15"/>
-		<constant value="911:12-911:33"/>
-		<constant value="911:12-911:38"/>
-		<constant value="911:4-911:38"/>
-		<constant value="912:14-912:24"/>
-		<constant value="912:48-912:51"/>
-		<constant value="912:14-912:52"/>
-		<constant value="912:4-912:52"/>
-		<constant value="916:3-916:12"/>
-		<constant value="916:3-916:21"/>
-		<constant value="916:26-916:29"/>
-		<constant value="916:3-916:31"/>
-		<constant value="918:3-918:6"/>
-		<constant value="918:3-918:18"/>
-		<constant value="919:4-919:14"/>
-		<constant value="920:5-920:13"/>
-		<constant value="920:30-920:35"/>
-		<constant value="920:37-920:40"/>
-		<constant value="920:5-920:41"/>
-		<constant value="920:5-920:48"/>
-		<constant value="920:5-920:57"/>
-		<constant value="919:4-921:5"/>
-		<constant value="918:3-922:5"/>
-		<constant value="915:2-923:3"/>
+		<constant value="910:23-910:26"/>
+		<constant value="910:23-910:34"/>
+		<constant value="910:51-910:60"/>
+		<constant value="910:62-910:65"/>
+		<constant value="910:23-910:66"/>
+		<constant value="910:23-910:73"/>
+		<constant value="912:28-912:38"/>
+		<constant value="912:28-912:53"/>
+		<constant value="912:28-912:62"/>
+		<constant value="916:12-916:15"/>
+		<constant value="916:12-916:33"/>
+		<constant value="916:12-916:38"/>
+		<constant value="916:4-916:38"/>
+		<constant value="917:14-917:24"/>
+		<constant value="917:48-917:51"/>
+		<constant value="917:14-917:52"/>
+		<constant value="917:4-917:52"/>
+		<constant value="921:3-921:12"/>
+		<constant value="921:3-921:21"/>
+		<constant value="921:26-921:29"/>
+		<constant value="921:3-921:31"/>
+		<constant value="923:3-923:6"/>
+		<constant value="923:3-923:18"/>
+		<constant value="924:4-924:14"/>
+		<constant value="925:5-925:13"/>
+		<constant value="925:30-925:35"/>
+		<constant value="925:37-925:40"/>
+		<constant value="925:5-925:41"/>
+		<constant value="925:5-925:48"/>
+		<constant value="925:5-925:57"/>
+		<constant value="924:4-926:5"/>
+		<constant value="923:3-927:5"/>
+		<constant value="920:2-928:3"/>
 		<constant value="pfd"/>
 		<constant value="Exponential"/>
 		<constant value="lambda"/>
 		<constant value="Rate"/>
-		<constant value="933:32-933:38"/>
-		<constant value="933:24-933:38"/>
-		<constant value="933:3-933:40"/>
+		<constant value="938:32-938:38"/>
+		<constant value="938:24-938:38"/>
+		<constant value="938:3-938:40"/>
 		<constant value="d"/>
-		<constant value="940:35-940:40"/>
-		<constant value="940:26-940:40"/>
-		<constant value="940:3-940:42"/>
+		<constant value="945:35-945:40"/>
+		<constant value="945:26-945:40"/>
+		<constant value="945:3-945:42"/>
 		<constant value="Uniform"/>
 		<constant value="lower"/>
 		<constant value="upper"/>
 		<constant value="Lower"/>
 		<constant value="Upper"/>
-		<constant value="949:13-949:18"/>
-		<constant value="949:4-949:18"/>
-		<constant value="950:13-950:18"/>
-		<constant value="950:4-950:18"/>
-		<constant value="948:3-951:4"/>
+		<constant value="954:13-954:18"/>
+		<constant value="954:4-954:18"/>
+		<constant value="955:13-955:18"/>
+		<constant value="955:4-955:18"/>
+		<constant value="953:3-956:4"/>
 		<constant value="Gaussian"/>
 		<constant value="mean"/>
 		<constant value="variance"/>
 		<constant value="g"/>
 		<constant value="Mean"/>
 		<constant value="Variance"/>
-		<constant value="960:12-960:16"/>
-		<constant value="960:4-960:16"/>
-		<constant value="961:16-961:24"/>
-		<constant value="961:4-961:24"/>
-		<constant value="959:3-962:4"/>
+		<constant value="965:12-965:16"/>
+		<constant value="965:4-965:16"/>
+		<constant value="966:16-966:24"/>
+		<constant value="966:4-966:24"/>
+		<constant value="964:3-967:4"/>
 		<constant value="Gamma"/>
 		<constant value="b"/>
 		<constant value="Alpha"/>
 		<constant value="Beta"/>
-		<constant value="971:13-971:14"/>
-		<constant value="971:4-971:14"/>
-		<constant value="972:12-972:13"/>
-		<constant value="972:4-972:13"/>
-		<constant value="970:3-973:4"/>
+		<constant value="976:13-976:14"/>
+		<constant value="976:4-976:14"/>
+		<constant value="977:12-977:13"/>
+		<constant value="977:4-977:13"/>
+		<constant value="975:3-978:4"/>
 		<constant value="Weibull"/>
-		<constant value="982:13-982:14"/>
-		<constant value="982:4-982:14"/>
-		<constant value="983:12-983:13"/>
-		<constant value="983:4-983:13"/>
-		<constant value="981:3-984:4"/>
+		<constant value="987:13-987:14"/>
+		<constant value="987:4-987:14"/>
+		<constant value="988:12-988:13"/>
+		<constant value="988:4-988:13"/>
+		<constant value="986:3-989:4"/>
 		<constant value="FEXP_Fault"/>
 		<constant value="FaultsExpressionFaultNode"/>
-		<constant value="993:13-993:14"/>
-		<constant value="993:4-993:14"/>
-		<constant value="996:3-996:7"/>
-		<constant value="996:3-996:8"/>
-		<constant value="995:2-997:3"/>
+		<constant value="998:13-998:14"/>
+		<constant value="998:4-998:14"/>
+		<constant value="1001:3-1001:7"/>
+		<constant value="1001:3-1001:8"/>
+		<constant value="1000:2-1002:3"/>
 		<constant value="fefn"/>
 		<constant value="FEXP_Or"/>
 		<constant value="FaultsExpressionOrNode"/>
 		<constant value="FaultsExpression1"/>
 		<constant value="FaultsExpression2"/>
-		<constant value="1003:25-1003:27"/>
-		<constant value="1003:4-1003:27"/>
-		<constant value="1004:25-1004:27"/>
-		<constant value="1004:4-1004:27"/>
-		<constant value="1007:3-1007:7"/>
-		<constant value="1007:3-1007:8"/>
-		<constant value="1006:2-1008:3"/>
+		<constant value="1008:25-1008:27"/>
+		<constant value="1008:4-1008:27"/>
+		<constant value="1009:25-1009:27"/>
+		<constant value="1009:4-1009:27"/>
+		<constant value="1012:3-1012:7"/>
+		<constant value="1012:3-1012:8"/>
+		<constant value="1011:2-1013:3"/>
 		<constant value="feon"/>
 		<constant value="e1"/>
 		<constant value="e2"/>
 		<constant value="FEXP_And"/>
 		<constant value="FaultsExpressionAndNode"/>
-		<constant value="1014:25-1014:27"/>
-		<constant value="1014:4-1014:27"/>
-		<constant value="1015:25-1015:27"/>
-		<constant value="1015:4-1015:27"/>
-		<constant value="1018:3-1018:7"/>
-		<constant value="1018:3-1018:8"/>
-		<constant value="1017:2-1019:3"/>
+		<constant value="1019:25-1019:27"/>
+		<constant value="1019:4-1019:27"/>
+		<constant value="1020:25-1020:27"/>
+		<constant value="1020:4-1020:27"/>
+		<constant value="1023:3-1023:7"/>
+		<constant value="1023:3-1023:8"/>
+		<constant value="1022:2-1024:3"/>
 		<constant value="fean"/>
 		<constant value="FEXP_Not"/>
 		<constant value="FaultsExpressionNotNode"/>
 		<constant value="FaultsExpression"/>
-		<constant value="1025:24-1025:25"/>
-		<constant value="1025:4-1025:25"/>
-		<constant value="1028:3-1028:7"/>
-		<constant value="1028:3-1028:8"/>
-		<constant value="1027:2-1029:3"/>
+		<constant value="1030:24-1030:25"/>
+		<constant value="1030:4-1030:25"/>
+		<constant value="1033:3-1033:7"/>
+		<constant value="1033:3-1033:8"/>
+		<constant value="1032:2-1034:3"/>
 		<constant value="fenn"/>
 		<constant value="FEXP_MultiOr"/>
 		<constant value="J.subSequence(JJ):J"/>
 		<constant value="J.FEXP_Or(JJ):J"/>
 		<constant value="55"/>
-		<constant value="1034:46-1034:58"/>
-		<constant value="1035:46-1035:58"/>
-		<constant value="1036:38-1036:40"/>
-		<constant value="1039:6-1039:8"/>
-		<constant value="1039:6-1039:16"/>
-		<constant value="1039:19-1039:20"/>
-		<constant value="1039:6-1039:20"/>
-		<constant value="1042:22-1042:33"/>
-		<constant value="1042:22-1042:42"/>
-		<constant value="1042:4-1042:43"/>
-		<constant value="1043:19-1043:30"/>
-		<constant value="1043:43-1043:44"/>
-		<constant value="1043:46-1043:57"/>
-		<constant value="1043:46-1043:64"/>
-		<constant value="1043:19-1043:65"/>
-		<constant value="1043:4-1043:66"/>
-		<constant value="1044:22-1044:33"/>
-		<constant value="1044:22-1044:42"/>
-		<constant value="1044:4-1044:43"/>
-		<constant value="1045:19-1045:30"/>
-		<constant value="1045:43-1045:44"/>
-		<constant value="1045:46-1045:57"/>
-		<constant value="1045:46-1045:64"/>
-		<constant value="1045:19-1045:65"/>
-		<constant value="1045:4-1045:66"/>
-		<constant value="1047:22-1047:32"/>
-		<constant value="1047:41-1047:55"/>
-		<constant value="1047:56-1047:70"/>
-		<constant value="1047:22-1047:71"/>
-		<constant value="1047:4-1047:72"/>
-		<constant value="1048:14-1048:25"/>
-		<constant value="1049:24-1049:34"/>
-		<constant value="1050:11-1050:25"/>
-		<constant value="1051:11-1051:13"/>
-		<constant value="1049:24-1052:12"/>
-		<constant value="1049:5-1052:13"/>
-		<constant value="1053:23-1053:37"/>
-		<constant value="1053:5-1053:38"/>
-		<constant value="1048:4-1054:5"/>
-		<constant value="1040:22-1040:24"/>
-		<constant value="1040:22-1040:33"/>
-		<constant value="1040:4-1040:34"/>
-		<constant value="1039:3-1055:4"/>
-		<constant value="1057:3-1057:17"/>
-		<constant value="1057:3-1057:18"/>
-		<constant value="1038:2-1058:3"/>
+		<constant value="1039:46-1039:58"/>
+		<constant value="1040:46-1040:58"/>
+		<constant value="1041:38-1041:40"/>
+		<constant value="1044:6-1044:8"/>
+		<constant value="1044:6-1044:16"/>
+		<constant value="1044:19-1044:20"/>
+		<constant value="1044:6-1044:20"/>
+		<constant value="1047:22-1047:33"/>
+		<constant value="1047:22-1047:42"/>
+		<constant value="1047:4-1047:43"/>
+		<constant value="1048:19-1048:30"/>
+		<constant value="1048:43-1048:44"/>
+		<constant value="1048:46-1048:57"/>
+		<constant value="1048:46-1048:64"/>
+		<constant value="1048:19-1048:65"/>
+		<constant value="1048:4-1048:66"/>
+		<constant value="1049:22-1049:33"/>
+		<constant value="1049:22-1049:42"/>
+		<constant value="1049:4-1049:43"/>
+		<constant value="1050:19-1050:30"/>
+		<constant value="1050:43-1050:44"/>
+		<constant value="1050:46-1050:57"/>
+		<constant value="1050:46-1050:64"/>
+		<constant value="1050:19-1050:65"/>
+		<constant value="1050:4-1050:66"/>
+		<constant value="1052:22-1052:32"/>
+		<constant value="1052:41-1052:55"/>
+		<constant value="1052:56-1052:70"/>
+		<constant value="1052:22-1052:71"/>
+		<constant value="1052:4-1052:72"/>
+		<constant value="1053:14-1053:25"/>
+		<constant value="1054:24-1054:34"/>
+		<constant value="1055:11-1055:25"/>
+		<constant value="1056:11-1056:13"/>
+		<constant value="1054:24-1057:12"/>
+		<constant value="1054:5-1057:13"/>
+		<constant value="1058:23-1058:37"/>
+		<constant value="1058:5-1058:38"/>
+		<constant value="1053:4-1059:5"/>
+		<constant value="1045:22-1045:24"/>
+		<constant value="1045:22-1045:33"/>
+		<constant value="1045:4-1045:34"/>
+		<constant value="1044:3-1060:4"/>
+		<constant value="1062:3-1062:17"/>
+		<constant value="1062:3-1062:18"/>
+		<constant value="1043:2-1063:3"/>
 		<constant value="tmpExpression1"/>
 		<constant value="tmpExpression2"/>
 		<constant value="tmpSequence"/>
 		<constant value="fe"/>
 		<constant value="FEXP_MultiAnd"/>
 		<constant value="J.FEXP_And(JJ):J"/>
-		<constant value="1063:46-1063:58"/>
-		<constant value="1064:46-1064:58"/>
-		<constant value="1065:38-1065:40"/>
-		<constant value="1068:6-1068:8"/>
-		<constant value="1068:6-1068:16"/>
-		<constant value="1068:19-1068:20"/>
-		<constant value="1068:6-1068:20"/>
-		<constant value="1071:22-1071:33"/>
-		<constant value="1071:22-1071:42"/>
-		<constant value="1071:4-1071:43"/>
-		<constant value="1072:19-1072:30"/>
-		<constant value="1072:43-1072:44"/>
-		<constant value="1072:46-1072:57"/>
-		<constant value="1072:46-1072:64"/>
-		<constant value="1072:19-1072:65"/>
-		<constant value="1072:4-1072:66"/>
-		<constant value="1073:22-1073:33"/>
-		<constant value="1073:22-1073:42"/>
-		<constant value="1073:4-1073:43"/>
-		<constant value="1074:19-1074:30"/>
-		<constant value="1074:43-1074:44"/>
-		<constant value="1074:46-1074:57"/>
-		<constant value="1074:46-1074:64"/>
-		<constant value="1074:19-1074:65"/>
-		<constant value="1074:4-1074:66"/>
-		<constant value="1076:22-1076:32"/>
-		<constant value="1076:42-1076:56"/>
-		<constant value="1076:57-1076:71"/>
-		<constant value="1076:22-1076:72"/>
-		<constant value="1076:4-1076:73"/>
-		<constant value="1077:14-1077:25"/>
-		<constant value="1078:24-1078:34"/>
-		<constant value="1079:11-1079:25"/>
-		<constant value="1080:11-1080:13"/>
-		<constant value="1078:24-1081:12"/>
-		<constant value="1078:5-1081:13"/>
-		<constant value="1082:23-1082:37"/>
-		<constant value="1082:5-1082:38"/>
-		<constant value="1077:4-1083:5"/>
-		<constant value="1069:22-1069:24"/>
-		<constant value="1069:22-1069:33"/>
-		<constant value="1069:4-1069:34"/>
-		<constant value="1068:3-1084:4"/>
-		<constant value="1086:3-1086:17"/>
-		<constant value="1086:3-1086:18"/>
-		<constant value="1067:2-1087:3"/>
+		<constant value="1068:46-1068:58"/>
+		<constant value="1069:46-1069:58"/>
+		<constant value="1070:38-1070:40"/>
+		<constant value="1073:6-1073:8"/>
+		<constant value="1073:6-1073:16"/>
+		<constant value="1073:19-1073:20"/>
+		<constant value="1073:6-1073:20"/>
+		<constant value="1076:22-1076:33"/>
+		<constant value="1076:22-1076:42"/>
+		<constant value="1076:4-1076:43"/>
+		<constant value="1077:19-1077:30"/>
+		<constant value="1077:43-1077:44"/>
+		<constant value="1077:46-1077:57"/>
+		<constant value="1077:46-1077:64"/>
+		<constant value="1077:19-1077:65"/>
+		<constant value="1077:4-1077:66"/>
+		<constant value="1078:22-1078:33"/>
+		<constant value="1078:22-1078:42"/>
+		<constant value="1078:4-1078:43"/>
+		<constant value="1079:19-1079:30"/>
+		<constant value="1079:43-1079:44"/>
+		<constant value="1079:46-1079:57"/>
+		<constant value="1079:46-1079:64"/>
+		<constant value="1079:19-1079:65"/>
+		<constant value="1079:4-1079:66"/>
+		<constant value="1081:22-1081:32"/>
+		<constant value="1081:42-1081:56"/>
+		<constant value="1081:57-1081:71"/>
+		<constant value="1081:22-1081:72"/>
+		<constant value="1081:4-1081:73"/>
+		<constant value="1082:14-1082:25"/>
+		<constant value="1083:24-1083:34"/>
+		<constant value="1084:11-1084:25"/>
+		<constant value="1085:11-1085:13"/>
+		<constant value="1083:24-1086:12"/>
+		<constant value="1083:5-1086:13"/>
+		<constant value="1087:23-1087:37"/>
+		<constant value="1087:5-1087:38"/>
+		<constant value="1082:4-1088:5"/>
+		<constant value="1074:22-1074:24"/>
+		<constant value="1074:22-1074:33"/>
+		<constant value="1074:4-1074:34"/>
+		<constant value="1073:3-1089:4"/>
+		<constant value="1091:3-1091:17"/>
+		<constant value="1091:3-1091:18"/>
+		<constant value="1072:2-1092:3"/>
 		<constant value="EEXP_Error"/>
 		<constant value="ErrorsExpressionErrorNode"/>
-		<constant value="1093:13-1093:14"/>
-		<constant value="1093:4-1093:14"/>
-		<constant value="1096:3-1096:7"/>
-		<constant value="1096:3-1096:8"/>
-		<constant value="1095:2-1097:3"/>
+		<constant value="1098:13-1098:14"/>
+		<constant value="1098:4-1098:14"/>
+		<constant value="1101:3-1101:7"/>
+		<constant value="1101:3-1101:8"/>
+		<constant value="1100:2-1102:3"/>
 		<constant value="eeen"/>
 		<constant value="FEXP_ParseString"/>
 		<constant value="123"/>
@@ -2437,78 +2460,78 @@
 		<constant value="82"/>
 		<constant value="69"/>
 		<constant value="109"/>
-		<constant value="1104:22-1104:32"/>
-		<constant value="1104:53-1104:57"/>
-		<constant value="1104:22-1104:58"/>
-		<constant value="1105:33-1105:45"/>
-		<constant value="1106:38-1106:50"/>
-		<constant value="1109:10-1109:13"/>
-		<constant value="1109:10-1109:30"/>
-		<constant value="1109:6-1109:30"/>
-		<constant value="1110:16-1110:19"/>
-		<constant value="1110:26-1110:39"/>
-		<constant value="1110:16-1110:40"/>
-		<constant value="1110:4-1110:41"/>
-		<constant value="1111:7-1111:15"/>
-		<constant value="1111:7-1111:22"/>
-		<constant value="1111:25-1111:26"/>
-		<constant value="1111:7-1111:26"/>
-		<constant value="1121:17-1121:20"/>
-		<constant value="1121:27-1121:38"/>
-		<constant value="1121:17-1121:39"/>
-		<constant value="1121:5-1121:40"/>
-		<constant value="1122:8-1122:16"/>
-		<constant value="1122:8-1122:23"/>
-		<constant value="1122:26-1122:27"/>
-		<constant value="1122:8-1122:27"/>
-		<constant value="1132:16-1132:26"/>
-		<constant value="1132:38-1132:46"/>
-		<constant value="1132:38-1132:55"/>
-		<constant value="1132:16-1132:56"/>
-		<constant value="1132:6-1132:57"/>
-		<constant value="1124:6-1124:16"/>
-		<constant value="1125:7-1125:15"/>
-		<constant value="1126:12-1126:13"/>
-		<constant value="1126:12-1126:20"/>
-		<constant value="1126:34-1126:36"/>
-		<constant value="1126:34-1126:46"/>
-		<constant value="1126:49-1126:50"/>
-		<constant value="1126:49-1126:57"/>
-		<constant value="1126:34-1126:57"/>
-		<constant value="1126:12-1126:58"/>
-		<constant value="1125:7-1127:8"/>
-		<constant value="1125:7-1128:16"/>
-		<constant value="1129:20-1129:30"/>
-		<constant value="1129:42-1129:44"/>
-		<constant value="1129:20-1129:45"/>
-		<constant value="1125:7-1129:46"/>
-		<constant value="1124:6-1130:7"/>
-		<constant value="1123:6-1130:8"/>
-		<constant value="1122:5-1133:6"/>
-		<constant value="1113:5-1113:15"/>
-		<constant value="1114:6-1114:14"/>
-		<constant value="1115:12-1115:13"/>
-		<constant value="1115:12-1115:20"/>
-		<constant value="1115:34-1115:36"/>
-		<constant value="1115:34-1115:46"/>
-		<constant value="1115:49-1115:51"/>
-		<constant value="1115:49-1115:58"/>
-		<constant value="1115:34-1115:58"/>
-		<constant value="1115:12-1115:59"/>
-		<constant value="1115:12-1115:68"/>
-		<constant value="1114:6-1116:7"/>
-		<constant value="1114:6-1117:15"/>
-		<constant value="1118:19-1118:29"/>
-		<constant value="1118:41-1118:43"/>
-		<constant value="1118:19-1118:44"/>
-		<constant value="1114:6-1118:45"/>
-		<constant value="1113:5-1119:6"/>
-		<constant value="1112:5-1119:7"/>
-		<constant value="1111:4-1134:5"/>
-		<constant value="1109:3-1135:4"/>
-		<constant value="1137:3-1137:9"/>
-		<constant value="1137:3-1137:10"/>
-		<constant value="1108:2-1138:3"/>
+		<constant value="1109:22-1109:32"/>
+		<constant value="1109:53-1109:57"/>
+		<constant value="1109:22-1109:58"/>
+		<constant value="1110:33-1110:45"/>
+		<constant value="1111:38-1111:50"/>
+		<constant value="1114:10-1114:13"/>
+		<constant value="1114:10-1114:30"/>
+		<constant value="1114:6-1114:30"/>
+		<constant value="1115:16-1115:19"/>
+		<constant value="1115:26-1115:39"/>
+		<constant value="1115:16-1115:40"/>
+		<constant value="1115:4-1115:41"/>
+		<constant value="1116:7-1116:15"/>
+		<constant value="1116:7-1116:22"/>
+		<constant value="1116:25-1116:26"/>
+		<constant value="1116:7-1116:26"/>
+		<constant value="1126:17-1126:20"/>
+		<constant value="1126:27-1126:38"/>
+		<constant value="1126:17-1126:39"/>
+		<constant value="1126:5-1126:40"/>
+		<constant value="1127:8-1127:16"/>
+		<constant value="1127:8-1127:23"/>
+		<constant value="1127:26-1127:27"/>
+		<constant value="1127:8-1127:27"/>
+		<constant value="1137:16-1137:26"/>
+		<constant value="1137:38-1137:46"/>
+		<constant value="1137:38-1137:55"/>
+		<constant value="1137:16-1137:56"/>
+		<constant value="1137:6-1137:57"/>
+		<constant value="1129:6-1129:16"/>
+		<constant value="1130:7-1130:15"/>
+		<constant value="1131:12-1131:13"/>
+		<constant value="1131:12-1131:20"/>
+		<constant value="1131:34-1131:36"/>
+		<constant value="1131:34-1131:46"/>
+		<constant value="1131:49-1131:50"/>
+		<constant value="1131:49-1131:57"/>
+		<constant value="1131:34-1131:57"/>
+		<constant value="1131:12-1131:58"/>
+		<constant value="1130:7-1132:8"/>
+		<constant value="1130:7-1133:16"/>
+		<constant value="1134:20-1134:30"/>
+		<constant value="1134:42-1134:44"/>
+		<constant value="1134:20-1134:45"/>
+		<constant value="1130:7-1134:46"/>
+		<constant value="1129:6-1135:7"/>
+		<constant value="1128:6-1135:8"/>
+		<constant value="1127:5-1138:6"/>
+		<constant value="1118:5-1118:15"/>
+		<constant value="1119:6-1119:14"/>
+		<constant value="1120:12-1120:13"/>
+		<constant value="1120:12-1120:20"/>
+		<constant value="1120:34-1120:36"/>
+		<constant value="1120:34-1120:46"/>
+		<constant value="1120:49-1120:51"/>
+		<constant value="1120:49-1120:58"/>
+		<constant value="1120:34-1120:58"/>
+		<constant value="1120:12-1120:59"/>
+		<constant value="1120:12-1120:68"/>
+		<constant value="1119:6-1121:7"/>
+		<constant value="1119:6-1122:15"/>
+		<constant value="1123:19-1123:29"/>
+		<constant value="1123:41-1123:43"/>
+		<constant value="1123:19-1123:44"/>
+		<constant value="1119:6-1123:45"/>
+		<constant value="1118:5-1124:6"/>
+		<constant value="1117:5-1124:7"/>
+		<constant value="1116:4-1139:5"/>
+		<constant value="1114:3-1140:4"/>
+		<constant value="1142:3-1142:9"/>
+		<constant value="1142:3-1142:10"/>
+		<constant value="1113:2-1143:3"/>
 		<constant value="ff"/>
 		<constant value="tmpSplit"/>
 		<constant value="expRet"/>
@@ -2517,60 +2540,60 @@
 		<constant value="39"/>
 		<constant value="22"/>
 		<constant value="49"/>
-		<constant value="1143:3-1143:6"/>
-		<constant value="1143:31-1143:34"/>
-		<constant value="1143:3-1143:35"/>
-		<constant value="1144:7-1144:10"/>
-		<constant value="1144:23-1144:48"/>
-		<constant value="1144:7-1144:49"/>
-		<constant value="1147:13-1147:16"/>
-		<constant value="1147:29-1147:55"/>
-		<constant value="1147:13-1147:56"/>
-		<constant value="1150:13-1150:16"/>
-		<constant value="1150:29-1150:55"/>
-		<constant value="1150:13-1150:56"/>
+		<constant value="1148:3-1148:6"/>
+		<constant value="1148:31-1148:34"/>
+		<constant value="1148:3-1148:35"/>
+		<constant value="1149:7-1149:10"/>
+		<constant value="1149:23-1149:48"/>
+		<constant value="1149:7-1149:49"/>
+		<constant value="1152:13-1152:16"/>
+		<constant value="1152:29-1152:55"/>
+		<constant value="1152:13-1152:56"/>
+		<constant value="1155:13-1155:16"/>
+		<constant value="1155:29-1155:55"/>
+		<constant value="1155:13-1155:56"/>
+		<constant value="1156:4-1156:14"/>
+		<constant value="1156:31-1156:34"/>
+		<constant value="1156:31-1156:51"/>
+		<constant value="1156:53-1156:56"/>
+		<constant value="1156:4-1156:58"/>
+		<constant value="1155:9-1157:4"/>
+		<constant value="1153:4-1153:14"/>
+		<constant value="1153:31-1153:34"/>
+		<constant value="1153:31-1153:52"/>
+		<constant value="1153:54-1153:57"/>
+		<constant value="1153:4-1153:59"/>
+		<constant value="1154:4-1154:14"/>
+		<constant value="1154:31-1154:34"/>
+		<constant value="1154:31-1154:52"/>
+		<constant value="1154:54-1154:57"/>
+		<constant value="1154:4-1154:59"/>
+		<constant value="1152:9-1157:4"/>
+		<constant value="1150:4-1150:14"/>
+		<constant value="1150:31-1150:34"/>
+		<constant value="1150:31-1150:52"/>
+		<constant value="1150:54-1150:57"/>
+		<constant value="1150:4-1150:59"/>
 		<constant value="1151:4-1151:14"/>
 		<constant value="1151:31-1151:34"/>
-		<constant value="1151:31-1151:51"/>
-		<constant value="1151:53-1151:56"/>
-		<constant value="1151:4-1151:58"/>
-		<constant value="1150:9-1152:4"/>
-		<constant value="1148:4-1148:14"/>
-		<constant value="1148:31-1148:34"/>
-		<constant value="1148:31-1148:52"/>
-		<constant value="1148:54-1148:57"/>
-		<constant value="1148:4-1148:59"/>
-		<constant value="1149:4-1149:14"/>
-		<constant value="1149:31-1149:34"/>
-		<constant value="1149:31-1149:52"/>
-		<constant value="1149:54-1149:57"/>
-		<constant value="1149:4-1149:59"/>
-		<constant value="1147:9-1152:4"/>
-		<constant value="1145:4-1145:14"/>
-		<constant value="1145:31-1145:34"/>
-		<constant value="1145:31-1145:52"/>
-		<constant value="1145:54-1145:57"/>
-		<constant value="1145:4-1145:59"/>
-		<constant value="1146:4-1146:14"/>
-		<constant value="1146:31-1146:34"/>
-		<constant value="1146:31-1146:52"/>
-		<constant value="1146:54-1146:57"/>
-		<constant value="1146:4-1146:59"/>
-		<constant value="1144:3-1152:4"/>
-		<constant value="1142:2-1153:3"/>
+		<constant value="1151:31-1151:52"/>
+		<constant value="1151:54-1151:57"/>
+		<constant value="1151:4-1151:59"/>
+		<constant value="1149:3-1157:4"/>
+		<constant value="1147:2-1158:3"/>
 		<constant value="fen"/>
 		<constant value="setEPFBackLinks"/>
 		<constant value="errorPropagation"/>
-		<constant value="1158:3-1158:6"/>
-		<constant value="1158:27-1158:30"/>
-		<constant value="1158:3-1158:31"/>
-		<constant value="1157:2-1159:3"/>
+		<constant value="1163:3-1163:6"/>
+		<constant value="1163:27-1163:30"/>
+		<constant value="1163:3-1163:31"/>
+		<constant value="1162:2-1164:3"/>
 		<constant value="een"/>
 		<constant value="setIPBackLinks"/>
-		<constant value="1164:3-1164:6"/>
-		<constant value="1164:27-1164:29"/>
-		<constant value="1164:3-1164:30"/>
-		<constant value="1163:2-1165:3"/>
+		<constant value="1169:3-1169:6"/>
+		<constant value="1169:27-1169:29"/>
+		<constant value="1169:3-1169:30"/>
+		<constant value="1168:2-1170:3"/>
 		<constant value="MCHESS!Repair;"/>
 		<constant value="act"/>
 		<constant value="timeexp"/>
@@ -2587,470 +2610,469 @@
 		<constant value="97"/>
 		<constant value="J.SCHEXP_AtTime(J):J"/>
 		<constant value="J.SCHEXP_Periodic(J):J"/>
-		<constant value="definingFeature"/>
 		<constant value="144"/>
 		<constant value="instance"/>
-		<constant value="1176:12-1176:13"/>
-		<constant value="1176:12-1176:27"/>
-		<constant value="1176:12-1176:32"/>
-		<constant value="1176:4-1176:32"/>
-		<constant value="1177:26-1177:27"/>
-		<constant value="1177:26-1177:39"/>
-		<constant value="1177:26-1177:48"/>
-		<constant value="1177:4-1177:48"/>
-		<constant value="1178:16-1178:17"/>
-		<constant value="1178:16-1178:26"/>
-		<constant value="1178:16-1178:46"/>
-		<constant value="1178:4-1178:46"/>
-		<constant value="1179:12-1179:19"/>
-		<constant value="1179:4-1179:19"/>
-		<constant value="1174:3-1180:4"/>
-		<constant value="1184:8-1184:9"/>
-		<constant value="1184:8-1184:14"/>
-		<constant value="1184:8-1184:21"/>
-		<constant value="1184:33-1184:43"/>
-		<constant value="1184:8-1184:44"/>
-		<constant value="1187:9-1187:10"/>
-		<constant value="1187:9-1187:15"/>
-		<constant value="1187:9-1187:22"/>
-		<constant value="1187:34-1187:42"/>
-		<constant value="1187:9-1187:43"/>
-		<constant value="1190:7-1190:19"/>
-		<constant value="1188:7-1188:17"/>
-		<constant value="1188:32-1188:33"/>
-		<constant value="1188:32-1188:38"/>
-		<constant value="1188:7-1188:39"/>
-		<constant value="1187:6-1191:11"/>
-		<constant value="1185:6-1185:16"/>
-		<constant value="1185:33-1185:34"/>
-		<constant value="1185:33-1185:39"/>
-		<constant value="1185:6-1185:40"/>
-		<constant value="1184:5-1192:10"/>
-		<constant value="1183:5-1192:10"/>
-		<constant value="1193:11-1193:21"/>
-		<constant value="1193:5-1193:21"/>
-		<constant value="1181:3-1194:4"/>
-		<constant value="1195:3-1195:41"/>
-		<constant value="1197:3-1197:6"/>
-		<constant value="1197:17-1197:25"/>
-		<constant value="1197:17-1197:40"/>
-		<constant value="1198:21-1198:22"/>
-		<constant value="1198:21-1198:30"/>
-		<constant value="1198:41-1198:43"/>
-		<constant value="1198:41-1198:59"/>
-		<constant value="1198:21-1198:60"/>
-		<constant value="1197:17-1198:61"/>
-		<constant value="1199:22-1199:24"/>
-		<constant value="1199:22-1199:30"/>
-		<constant value="1199:22-1199:39"/>
-		<constant value="1199:22-1199:48"/>
-		<constant value="1197:17-1199:49"/>
-		<constant value="1200:20-1200:30"/>
-		<constant value="1200:20-1200:51"/>
-		<constant value="1200:62-1200:63"/>
-		<constant value="1200:20-1200:64"/>
-		<constant value="1197:17-1200:65"/>
-		<constant value="1201:21-1201:31"/>
-		<constant value="1201:52-1201:53"/>
-		<constant value="1201:21-1201:54"/>
-		<constant value="1197:17-1201:55"/>
-		<constant value="1197:3-1201:56"/>
-		<constant value="1196:2-1202:3"/>
+		<constant value="1181:12-1181:13"/>
+		<constant value="1181:12-1181:27"/>
+		<constant value="1181:12-1181:32"/>
+		<constant value="1181:4-1181:32"/>
+		<constant value="1182:26-1182:27"/>
+		<constant value="1182:26-1182:39"/>
+		<constant value="1182:26-1182:48"/>
+		<constant value="1182:4-1182:48"/>
+		<constant value="1183:16-1183:17"/>
+		<constant value="1183:16-1183:26"/>
+		<constant value="1183:16-1183:46"/>
+		<constant value="1183:4-1183:46"/>
+		<constant value="1184:12-1184:19"/>
+		<constant value="1184:4-1184:19"/>
+		<constant value="1179:3-1185:4"/>
+		<constant value="1189:8-1189:9"/>
+		<constant value="1189:8-1189:14"/>
+		<constant value="1189:8-1189:21"/>
+		<constant value="1189:33-1189:43"/>
+		<constant value="1189:8-1189:44"/>
+		<constant value="1192:9-1192:10"/>
+		<constant value="1192:9-1192:15"/>
+		<constant value="1192:9-1192:22"/>
+		<constant value="1192:34-1192:42"/>
+		<constant value="1192:9-1192:43"/>
+		<constant value="1195:7-1195:19"/>
+		<constant value="1193:7-1193:17"/>
+		<constant value="1193:32-1193:33"/>
+		<constant value="1193:32-1193:38"/>
+		<constant value="1193:7-1193:39"/>
+		<constant value="1192:6-1196:11"/>
+		<constant value="1190:6-1190:16"/>
+		<constant value="1190:33-1190:34"/>
+		<constant value="1190:33-1190:39"/>
+		<constant value="1190:6-1190:40"/>
+		<constant value="1189:5-1197:10"/>
+		<constant value="1188:5-1197:10"/>
+		<constant value="1198:11-1198:21"/>
+		<constant value="1198:5-1198:21"/>
+		<constant value="1186:3-1199:4"/>
+		<constant value="1200:3-1200:41"/>
+		<constant value="1202:3-1202:6"/>
+		<constant value="1202:17-1202:25"/>
+		<constant value="1202:17-1202:40"/>
+		<constant value="1203:21-1203:22"/>
+		<constant value="1203:21-1203:30"/>
+		<constant value="1203:41-1203:43"/>
+		<constant value="1203:41-1203:59"/>
+		<constant value="1203:21-1203:60"/>
+		<constant value="1202:17-1203:61"/>
+		<constant value="1204:22-1204:24"/>
+		<constant value="1204:22-1204:30"/>
+		<constant value="1204:22-1204:39"/>
+		<constant value="1204:22-1204:48"/>
+		<constant value="1202:17-1204:49"/>
+		<constant value="1205:20-1205:30"/>
+		<constant value="1205:20-1205:51"/>
+		<constant value="1205:62-1205:63"/>
+		<constant value="1205:20-1205:64"/>
+		<constant value="1202:17-1205:65"/>
+		<constant value="1206:21-1206:31"/>
+		<constant value="1206:52-1206:53"/>
+		<constant value="1206:21-1206:54"/>
+		<constant value="1202:17-1206:55"/>
+		<constant value="1202:3-1206:56"/>
+		<constant value="1201:2-1207:3"/>
 		<constant value="ErrorDetectionActivity"/>
 		<constant value="MCHESS!ErrorDetection;"/>
 		<constant value="159"/>
 		<constant value="DetectionActivity"/>
 		<constant value="Coverage"/>
 		<constant value="141"/>
-		<constant value="1212:12-1212:13"/>
-		<constant value="1212:12-1212:27"/>
-		<constant value="1212:12-1212:32"/>
-		<constant value="1212:4-1212:32"/>
-		<constant value="1213:16-1213:17"/>
-		<constant value="1213:16-1213:29"/>
-		<constant value="1213:16-1213:38"/>
-		<constant value="1213:4-1213:38"/>
-		<constant value="1214:16-1214:17"/>
-		<constant value="1214:16-1214:26"/>
-		<constant value="1214:16-1214:46"/>
-		<constant value="1214:4-1214:46"/>
-		<constant value="1215:12-1215:19"/>
-		<constant value="1215:4-1215:19"/>
-		<constant value="1210:3-1216:4"/>
-		<constant value="1220:8-1220:9"/>
-		<constant value="1220:8-1220:14"/>
-		<constant value="1220:8-1220:21"/>
-		<constant value="1220:33-1220:43"/>
-		<constant value="1220:8-1220:44"/>
-		<constant value="1223:9-1223:10"/>
-		<constant value="1223:9-1223:15"/>
-		<constant value="1223:9-1223:22"/>
-		<constant value="1223:34-1223:42"/>
-		<constant value="1223:9-1223:43"/>
-		<constant value="1226:7-1226:19"/>
-		<constant value="1224:7-1224:17"/>
-		<constant value="1224:32-1224:33"/>
-		<constant value="1224:32-1224:38"/>
-		<constant value="1224:7-1224:39"/>
-		<constant value="1223:6-1227:11"/>
-		<constant value="1221:6-1221:16"/>
-		<constant value="1221:33-1221:34"/>
-		<constant value="1221:33-1221:39"/>
-		<constant value="1221:6-1221:40"/>
-		<constant value="1220:5-1228:10"/>
-		<constant value="1219:5-1228:10"/>
-		<constant value="1229:11-1229:21"/>
-		<constant value="1229:5-1229:21"/>
-		<constant value="1217:3-1230:4"/>
-		<constant value="1231:3-1231:41"/>
-		<constant value="1233:3-1233:6"/>
-		<constant value="1233:17-1233:25"/>
-		<constant value="1233:17-1233:40"/>
-		<constant value="1234:21-1234:22"/>
-		<constant value="1234:21-1234:30"/>
-		<constant value="1234:41-1234:43"/>
-		<constant value="1234:41-1234:59"/>
-		<constant value="1234:21-1234:60"/>
-		<constant value="1233:17-1234:61"/>
-		<constant value="1235:22-1235:24"/>
-		<constant value="1235:22-1235:30"/>
-		<constant value="1235:22-1235:39"/>
-		<constant value="1235:22-1235:48"/>
-		<constant value="1233:17-1235:49"/>
-		<constant value="1236:21-1236:31"/>
-		<constant value="1236:52-1236:53"/>
-		<constant value="1236:21-1236:54"/>
-		<constant value="1233:17-1236:55"/>
-		<constant value="1233:3-1236:56"/>
-		<constant value="1232:2-1237:3"/>
+		<constant value="1217:12-1217:13"/>
+		<constant value="1217:12-1217:27"/>
+		<constant value="1217:12-1217:32"/>
+		<constant value="1217:4-1217:32"/>
+		<constant value="1218:16-1218:17"/>
+		<constant value="1218:16-1218:29"/>
+		<constant value="1218:16-1218:38"/>
+		<constant value="1218:4-1218:38"/>
+		<constant value="1219:16-1219:17"/>
+		<constant value="1219:16-1219:26"/>
+		<constant value="1219:16-1219:46"/>
+		<constant value="1219:4-1219:46"/>
+		<constant value="1220:12-1220:19"/>
+		<constant value="1220:4-1220:19"/>
+		<constant value="1215:3-1221:4"/>
+		<constant value="1225:8-1225:9"/>
+		<constant value="1225:8-1225:14"/>
+		<constant value="1225:8-1225:21"/>
+		<constant value="1225:33-1225:43"/>
+		<constant value="1225:8-1225:44"/>
+		<constant value="1228:9-1228:10"/>
+		<constant value="1228:9-1228:15"/>
+		<constant value="1228:9-1228:22"/>
+		<constant value="1228:34-1228:42"/>
+		<constant value="1228:9-1228:43"/>
+		<constant value="1231:7-1231:19"/>
+		<constant value="1229:7-1229:17"/>
+		<constant value="1229:32-1229:33"/>
+		<constant value="1229:32-1229:38"/>
+		<constant value="1229:7-1229:39"/>
+		<constant value="1228:6-1232:11"/>
+		<constant value="1226:6-1226:16"/>
+		<constant value="1226:33-1226:34"/>
+		<constant value="1226:33-1226:39"/>
+		<constant value="1226:6-1226:40"/>
+		<constant value="1225:5-1233:10"/>
+		<constant value="1224:5-1233:10"/>
+		<constant value="1234:11-1234:21"/>
+		<constant value="1234:5-1234:21"/>
+		<constant value="1222:3-1235:4"/>
+		<constant value="1236:3-1236:41"/>
+		<constant value="1238:3-1238:6"/>
+		<constant value="1238:17-1238:25"/>
+		<constant value="1238:17-1238:40"/>
+		<constant value="1239:21-1239:22"/>
+		<constant value="1239:21-1239:30"/>
+		<constant value="1239:41-1239:43"/>
+		<constant value="1239:41-1239:59"/>
+		<constant value="1239:21-1239:60"/>
+		<constant value="1238:17-1239:61"/>
+		<constant value="1240:22-1240:24"/>
+		<constant value="1240:22-1240:30"/>
+		<constant value="1240:22-1240:39"/>
+		<constant value="1240:22-1240:48"/>
+		<constant value="1238:17-1240:49"/>
+		<constant value="1241:21-1241:31"/>
+		<constant value="1241:52-1241:53"/>
+		<constant value="1241:21-1241:54"/>
+		<constant value="1238:17-1241:55"/>
+		<constant value="1238:3-1241:56"/>
+		<constant value="1237:2-1242:3"/>
 		<constant value="SchedCond"/>
 		<constant value="ScheduleExpressionFailed"/>
 		<constant value="failureMode"/>
 		<constant value="TempScen"/>
-		<constant value="1286:19-1286:21"/>
-		<constant value="1286:4-1286:21"/>
-		<constant value="1290:3-1290:13"/>
-		<constant value="1290:3-1290:22"/>
-		<constant value="1290:27-1290:32"/>
-		<constant value="1290:3-1290:34"/>
-		<constant value="1289:2-1291:3"/>
+		<constant value="1291:19-1291:21"/>
+		<constant value="1291:4-1291:21"/>
+		<constant value="1295:3-1295:13"/>
+		<constant value="1295:3-1295:22"/>
+		<constant value="1295:27-1295:32"/>
+		<constant value="1295:3-1295:34"/>
+		<constant value="1294:2-1296:3"/>
 		<constant value="scefn"/>
 		<constant value="CreateScenOrExpr"/>
 		<constant value="ScheduleExpressionOr"/>
 		<constant value="TempScenSeq"/>
-		<constant value="1300:3-1300:13"/>
-		<constant value="1300:3-1300:25"/>
-		<constant value="1300:30-1300:35"/>
-		<constant value="1300:3-1300:37"/>
-		<constant value="1299:2-1301:3"/>
+		<constant value="1305:3-1305:13"/>
+		<constant value="1305:3-1305:25"/>
+		<constant value="1305:30-1305:35"/>
+		<constant value="1305:3-1305:37"/>
+		<constant value="1304:2-1306:3"/>
 		<constant value="sceon"/>
 		<constant value="SCHEXP_Periodic"/>
 		<constant value="ScheduleExpressionPeriodic"/>
 		<constant value="PeriodDuration"/>
-		<constant value="1313:21-1313:22"/>
-		<constant value="1313:39-1313:48"/>
-		<constant value="1313:50-1313:53"/>
-		<constant value="1313:21-1313:54"/>
-		<constant value="1313:21-1313:61"/>
-		<constant value="1318:22-1318:23"/>
-		<constant value="1318:4-1318:23"/>
-		<constant value="1316:3-1319:4"/>
-		<constant value="1322:13-1322:19"/>
-		<constant value="1322:30-1322:40"/>
-		<constant value="1322:30-1322:47"/>
-		<constant value="1322:48-1322:49"/>
-		<constant value="1322:30-1322:49"/>
-		<constant value="1322:51-1322:57"/>
-		<constant value="1322:51-1322:64"/>
-		<constant value="1322:13-1322:65"/>
-		<constant value="1322:13-1322:74"/>
-		<constant value="1322:4-1322:74"/>
-		<constant value="1320:3-1323:4"/>
+		<constant value="1318:21-1318:22"/>
+		<constant value="1318:39-1318:48"/>
+		<constant value="1318:50-1318:53"/>
+		<constant value="1318:21-1318:54"/>
+		<constant value="1318:21-1318:61"/>
+		<constant value="1323:22-1323:23"/>
+		<constant value="1323:4-1323:23"/>
+		<constant value="1321:3-1324:4"/>
+		<constant value="1327:13-1327:19"/>
+		<constant value="1327:30-1327:40"/>
+		<constant value="1327:30-1327:47"/>
+		<constant value="1327:48-1327:49"/>
+		<constant value="1327:30-1327:49"/>
+		<constant value="1327:51-1327:57"/>
+		<constant value="1327:51-1327:64"/>
+		<constant value="1327:13-1327:65"/>
+		<constant value="1327:13-1327:74"/>
+		<constant value="1327:4-1327:74"/>
+		<constant value="1325:3-1328:4"/>
 		<constant value="sClean"/>
 		<constant value="SCHEXP_AtTime"/>
 		<constant value="ScheduleExpressionAtTime"/>
-		<constant value="1329:21-1329:22"/>
-		<constant value="1329:39-1329:48"/>
-		<constant value="1329:50-1329:53"/>
-		<constant value="1329:21-1329:54"/>
-		<constant value="1329:21-1329:61"/>
-		<constant value="1334:9-1334:15"/>
-		<constant value="1334:26-1334:34"/>
-		<constant value="1334:26-1334:41"/>
-		<constant value="1334:42-1334:43"/>
-		<constant value="1334:26-1334:43"/>
-		<constant value="1334:45-1334:51"/>
-		<constant value="1334:45-1334:58"/>
-		<constant value="1334:9-1334:59"/>
-		<constant value="1334:9-1334:68"/>
-		<constant value="1334:4-1334:68"/>
-		<constant value="1332:3-1335:4"/>
+		<constant value="1334:21-1334:22"/>
+		<constant value="1334:39-1334:48"/>
+		<constant value="1334:50-1334:53"/>
+		<constant value="1334:21-1334:54"/>
+		<constant value="1334:21-1334:61"/>
+		<constant value="1339:9-1339:15"/>
+		<constant value="1339:26-1339:34"/>
+		<constant value="1339:26-1339:41"/>
+		<constant value="1339:42-1339:43"/>
+		<constant value="1339:26-1339:43"/>
+		<constant value="1339:45-1339:51"/>
+		<constant value="1339:45-1339:58"/>
+		<constant value="1339:9-1339:59"/>
+		<constant value="1339:9-1339:68"/>
+		<constant value="1339:4-1339:68"/>
+		<constant value="1337:3-1340:4"/>
 		<constant value="SCHEXP_Or"/>
-		<constant value="1342:10-1342:14"/>
-		<constant value="1342:4-1342:14"/>
-		<constant value="1343:10-1343:14"/>
-		<constant value="1343:4-1343:14"/>
-		<constant value="1346:3-1346:4"/>
-		<constant value="1346:3-1346:5"/>
-		<constant value="1345:2-1347:3"/>
+		<constant value="1347:10-1347:14"/>
+		<constant value="1347:4-1347:14"/>
+		<constant value="1348:10-1348:14"/>
+		<constant value="1348:4-1348:14"/>
+		<constant value="1351:3-1351:4"/>
+		<constant value="1351:3-1351:5"/>
+		<constant value="1350:2-1352:3"/>
 		<constant value="exp1"/>
 		<constant value="exp2"/>
 		<constant value="SCHEXP_And"/>
 		<constant value="ScheduleExpressionAnd"/>
-		<constant value="1354:10-1354:14"/>
-		<constant value="1354:4-1354:14"/>
-		<constant value="1355:10-1355:14"/>
-		<constant value="1355:4-1355:14"/>
-		<constant value="1358:3-1358:4"/>
-		<constant value="1358:3-1358:5"/>
-		<constant value="1357:2-1359:3"/>
+		<constant value="1359:10-1359:14"/>
+		<constant value="1359:4-1359:14"/>
+		<constant value="1360:10-1360:14"/>
+		<constant value="1360:4-1360:14"/>
+		<constant value="1363:3-1363:4"/>
+		<constant value="1363:3-1363:5"/>
+		<constant value="1362:2-1364:3"/>
 		<constant value="SCHEXP_FailureMode"/>
-		<constant value="1366:19-1366:21"/>
-		<constant value="1366:4-1366:21"/>
-		<constant value="1369:3-1369:4"/>
-		<constant value="1369:3-1369:5"/>
-		<constant value="1368:2-1370:3"/>
+		<constant value="1371:19-1371:21"/>
+		<constant value="1371:4-1371:21"/>
+		<constant value="1374:3-1374:4"/>
+		<constant value="1374:3-1374:5"/>
+		<constant value="1373:2-1375:3"/>
 		<constant value="SCHEXP_MultiOr"/>
 		<constant value="J.SCHEXP_Or(JJ):J"/>
 		<constant value="41"/>
-		<constant value="1375:48-1375:60"/>
-		<constant value="1376:48-1376:60"/>
-		<constant value="1377:55-1377:61"/>
-		<constant value="1380:6-1380:12"/>
-		<constant value="1380:6-1380:20"/>
-		<constant value="1380:23-1380:24"/>
-		<constant value="1380:6-1380:24"/>
-		<constant value="1383:22-1383:33"/>
-		<constant value="1383:22-1383:42"/>
-		<constant value="1383:4-1383:43"/>
-		<constant value="1384:19-1384:30"/>
-		<constant value="1384:43-1384:44"/>
-		<constant value="1384:46-1384:57"/>
-		<constant value="1384:46-1384:64"/>
-		<constant value="1384:19-1384:65"/>
-		<constant value="1384:4-1384:66"/>
-		<constant value="1390:14-1390:25"/>
-		<constant value="1391:24-1391:34"/>
-		<constant value="1392:11-1392:25"/>
-		<constant value="1393:11-1393:13"/>
-		<constant value="1391:24-1394:12"/>
-		<constant value="1391:5-1394:13"/>
-		<constant value="1395:23-1395:37"/>
-		<constant value="1395:5-1395:38"/>
-		<constant value="1390:4-1396:5"/>
-		<constant value="1381:22-1381:28"/>
-		<constant value="1381:22-1381:37"/>
-		<constant value="1381:4-1381:38"/>
-		<constant value="1380:3-1397:4"/>
-		<constant value="1399:3-1399:17"/>
-		<constant value="1399:3-1399:18"/>
-		<constant value="1379:2-1400:3"/>
+		<constant value="1380:48-1380:60"/>
+		<constant value="1381:48-1381:60"/>
+		<constant value="1382:55-1382:61"/>
+		<constant value="1385:6-1385:12"/>
+		<constant value="1385:6-1385:20"/>
+		<constant value="1385:23-1385:24"/>
+		<constant value="1385:6-1385:24"/>
+		<constant value="1388:22-1388:33"/>
+		<constant value="1388:22-1388:42"/>
+		<constant value="1388:4-1388:43"/>
+		<constant value="1389:19-1389:30"/>
+		<constant value="1389:43-1389:44"/>
+		<constant value="1389:46-1389:57"/>
+		<constant value="1389:46-1389:64"/>
+		<constant value="1389:19-1389:65"/>
+		<constant value="1389:4-1389:66"/>
+		<constant value="1395:14-1395:25"/>
+		<constant value="1396:24-1396:34"/>
+		<constant value="1397:11-1397:25"/>
+		<constant value="1398:11-1398:13"/>
+		<constant value="1396:24-1399:12"/>
+		<constant value="1396:5-1399:13"/>
+		<constant value="1400:23-1400:37"/>
+		<constant value="1400:5-1400:38"/>
+		<constant value="1395:4-1401:5"/>
+		<constant value="1386:22-1386:28"/>
+		<constant value="1386:22-1386:37"/>
+		<constant value="1386:4-1386:38"/>
+		<constant value="1385:3-1402:4"/>
+		<constant value="1404:3-1404:17"/>
+		<constant value="1404:3-1404:18"/>
+		<constant value="1384:2-1405:3"/>
 		<constant value="ee"/>
 		<constant value="schSeq"/>
 		<constant value="SCHEXP_FailureModesCollection"/>
 		<constant value="J.SCHEXP_FailureMode(J):J"/>
 		<constant value="J.SCHEXP_MultiOr(J):J"/>
-		<constant value="1405:42-1405:54"/>
-		<constant value="1409:4-1409:14"/>
-		<constant value="1410:5-1410:8"/>
-		<constant value="1410:23-1410:33"/>
-		<constant value="1410:53-1410:55"/>
-		<constant value="1410:23-1410:56"/>
-		<constant value="1410:5-1410:57"/>
-		<constant value="1409:4-1411:5"/>
-		<constant value="1408:3-1411:6"/>
-		<constant value="1413:3-1413:6"/>
-		<constant value="1413:3-1413:7"/>
-		<constant value="1407:2-1414:3"/>
+		<constant value="1410:42-1410:54"/>
+		<constant value="1414:4-1414:14"/>
+		<constant value="1415:5-1415:8"/>
+		<constant value="1415:23-1415:33"/>
+		<constant value="1415:53-1415:55"/>
+		<constant value="1415:23-1415:56"/>
+		<constant value="1415:5-1415:57"/>
+		<constant value="1414:4-1416:5"/>
+		<constant value="1413:3-1416:6"/>
+		<constant value="1418:3-1418:6"/>
+		<constant value="1418:3-1418:7"/>
+		<constant value="1412:2-1419:3"/>
 		<constant value="tmp"/>
 		<constant value="fms"/>
 		<constant value="Allocation"/>
 		<constant value="from"/>
 		<constant value="to"/>
 		<constant value="_allocation_"/>
-		<constant value="1422:31-1422:43"/>
-		<constant value="1425:19-1425:20"/>
-		<constant value="1425:19-1425:25"/>
-		<constant value="1426:18-1426:19"/>
-		<constant value="1426:18-1426:22"/>
-		<constant value="1427:15-1427:25"/>
-		<constant value="1427:46-1427:52"/>
-		<constant value="1427:15-1427:53"/>
-		<constant value="1427:15-1427:66"/>
-		<constant value="1428:16-1428:26"/>
-		<constant value="1428:44-1428:46"/>
-		<constant value="1428:44-1428:60"/>
-		<constant value="1428:62-1428:70"/>
-		<constant value="1428:16-1428:71"/>
-		<constant value="1428:6-1428:72"/>
-		<constant value="1429:6-1429:12"/>
-		<constant value="1429:23-1429:25"/>
-		<constant value="1429:6-1429:26"/>
-		<constant value="1430:6-1430:12"/>
-		<constant value="1430:21-1430:29"/>
-		<constant value="1430:21-1430:34"/>
-		<constant value="1430:37-1430:51"/>
-		<constant value="1430:21-1430:51"/>
-		<constant value="1430:54-1430:56"/>
-		<constant value="1430:54-1430:61"/>
-		<constant value="1430:21-1430:61"/>
-		<constant value="1430:6-1430:62"/>
-		<constant value="1427:5-1431:6"/>
-		<constant value="1426:4-1432:5"/>
-		<constant value="1425:3-1433:4"/>
-		<constant value="1424:2-1434:3"/>
+		<constant value="1427:31-1427:43"/>
+		<constant value="1430:19-1430:20"/>
+		<constant value="1430:19-1430:25"/>
+		<constant value="1431:18-1431:19"/>
+		<constant value="1431:18-1431:22"/>
+		<constant value="1432:15-1432:25"/>
+		<constant value="1432:46-1432:52"/>
+		<constant value="1432:15-1432:53"/>
+		<constant value="1432:15-1432:66"/>
+		<constant value="1433:16-1433:26"/>
+		<constant value="1433:44-1433:46"/>
+		<constant value="1433:44-1433:60"/>
+		<constant value="1433:62-1433:70"/>
+		<constant value="1433:16-1433:71"/>
+		<constant value="1433:6-1433:72"/>
+		<constant value="1434:6-1434:12"/>
+		<constant value="1434:23-1434:25"/>
+		<constant value="1434:6-1434:26"/>
+		<constant value="1435:6-1435:12"/>
+		<constant value="1435:21-1435:29"/>
+		<constant value="1435:21-1435:34"/>
+		<constant value="1435:37-1435:51"/>
+		<constant value="1435:21-1435:51"/>
+		<constant value="1435:54-1435:56"/>
+		<constant value="1435:54-1435:61"/>
+		<constant value="1435:21-1435:61"/>
+		<constant value="1435:6-1435:62"/>
+		<constant value="1432:5-1436:6"/>
+		<constant value="1431:4-1437:5"/>
+		<constant value="1430:3-1438:4"/>
+		<constant value="1429:2-1439:3"/>
 		<constant value="instTo"/>
 		<constant value="instFrom"/>
 		<constant value="tmpXFT"/>
 		<constant value="getAllocations"/>
 		<constant value="owner"/>
-		<constant value="1467:2-1467:14"/>
-		<constant value="1467:2-1467:29"/>
-		<constant value="1467:42-1467:43"/>
-		<constant value="1467:42-1467:56"/>
-		<constant value="1467:42-1467:62"/>
-		<constant value="1467:65-1467:69"/>
-		<constant value="1467:65-1467:82"/>
-		<constant value="1467:65-1467:91"/>
-		<constant value="1467:65-1467:102"/>
-		<constant value="1467:65-1467:111"/>
-		<constant value="1467:42-1467:111"/>
-		<constant value="1467:2-1467:112"/>
+		<constant value="1472:2-1472:14"/>
+		<constant value="1472:2-1472:29"/>
+		<constant value="1472:42-1472:43"/>
+		<constant value="1472:42-1472:56"/>
+		<constant value="1472:42-1472:62"/>
+		<constant value="1472:65-1472:69"/>
+		<constant value="1472:65-1472:82"/>
+		<constant value="1472:65-1472:91"/>
+		<constant value="1472:65-1472:102"/>
+		<constant value="1472:65-1472:111"/>
+		<constant value="1472:42-1472:111"/>
+		<constant value="1472:2-1472:112"/>
 		<constant value="getAllocationsInstances"/>
-		<constant value="1471:2-1471:6"/>
-		<constant value="1471:2-1471:23"/>
-		<constant value="1471:37-1471:38"/>
-		<constant value="1471:37-1471:43"/>
-		<constant value="1471:51-1471:52"/>
-		<constant value="1471:51-1471:55"/>
-		<constant value="1471:37-1471:56"/>
-		<constant value="1471:2-1471:57"/>
-		<constant value="1471:2-1471:68"/>
+		<constant value="1476:2-1476:6"/>
+		<constant value="1476:2-1476:23"/>
+		<constant value="1476:37-1476:38"/>
+		<constant value="1476:37-1476:43"/>
+		<constant value="1476:51-1476:52"/>
+		<constant value="1476:51-1476:55"/>
+		<constant value="1476:37-1476:56"/>
+		<constant value="1476:2-1476:57"/>
+		<constant value="1476:2-1476:68"/>
 		<constant value="hasFailureMode"/>
 		<constant value="MIM!Component;"/>
-		<constant value="1475:6-1475:10"/>
-		<constant value="1475:6-1475:23"/>
-		<constant value="1475:36-1475:37"/>
-		<constant value="1475:36-1475:47"/>
-		<constant value="1475:36-1475:54"/>
-		<constant value="1475:57-1475:59"/>
-		<constant value="1475:57-1475:66"/>
-		<constant value="1475:36-1475:66"/>
-		<constant value="1475:6-1475:67"/>
-		<constant value="1475:6-1475:78"/>
-		<constant value="1475:2-1475:78"/>
+		<constant value="1480:6-1480:10"/>
+		<constant value="1480:6-1480:23"/>
+		<constant value="1480:36-1480:37"/>
+		<constant value="1480:36-1480:47"/>
+		<constant value="1480:36-1480:54"/>
+		<constant value="1480:57-1480:59"/>
+		<constant value="1480:57-1480:66"/>
+		<constant value="1480:36-1480:66"/>
+		<constant value="1480:6-1480:67"/>
+		<constant value="1480:6-1480:78"/>
+		<constant value="1480:2-1480:78"/>
 		<constant value="hasFault"/>
-		<constant value="1479:6-1479:10"/>
-		<constant value="1479:6-1479:17"/>
-		<constant value="1479:30-1479:31"/>
-		<constant value="1479:30-1479:41"/>
-		<constant value="1479:30-1479:48"/>
-		<constant value="1479:51-1479:53"/>
-		<constant value="1479:51-1479:60"/>
-		<constant value="1479:30-1479:60"/>
-		<constant value="1479:6-1479:61"/>
-		<constant value="1479:6-1479:72"/>
-		<constant value="1479:2-1479:72"/>
+		<constant value="1484:6-1484:10"/>
+		<constant value="1484:6-1484:17"/>
+		<constant value="1484:30-1484:31"/>
+		<constant value="1484:30-1484:41"/>
+		<constant value="1484:30-1484:48"/>
+		<constant value="1484:51-1484:53"/>
+		<constant value="1484:51-1484:60"/>
+		<constant value="1484:30-1484:60"/>
+		<constant value="1484:6-1484:61"/>
+		<constant value="1484:6-1484:72"/>
+		<constant value="1484:2-1484:72"/>
 		<constant value="getFailureStereotype"/>
 		<constant value="MUML!Transition;"/>
-		<constant value="1483:2-1483:15"/>
-		<constant value="1483:2-1483:30"/>
-		<constant value="1483:43-1483:44"/>
-		<constant value="1483:43-1483:60"/>
-		<constant value="1483:63-1483:67"/>
-		<constant value="1483:43-1483:67"/>
-		<constant value="1483:2-1483:68"/>
-		<constant value="1483:2-1483:77"/>
+		<constant value="1488:2-1488:15"/>
+		<constant value="1488:2-1488:30"/>
+		<constant value="1488:43-1488:44"/>
+		<constant value="1488:43-1488:60"/>
+		<constant value="1488:63-1488:67"/>
+		<constant value="1488:43-1488:67"/>
+		<constant value="1488:2-1488:68"/>
+		<constant value="1488:2-1488:77"/>
 		<constant value="getErrorStateStereotype"/>
 		<constant value="MUML!State;"/>
 		<constant value="ErrorState"/>
 		<constant value="base_State"/>
-		<constant value="1487:2-1487:18"/>
-		<constant value="1487:2-1487:33"/>
-		<constant value="1487:46-1487:47"/>
-		<constant value="1487:46-1487:58"/>
-		<constant value="1487:61-1487:65"/>
-		<constant value="1487:46-1487:65"/>
-		<constant value="1487:2-1487:66"/>
-		<constant value="1487:2-1487:75"/>
+		<constant value="1492:2-1492:18"/>
+		<constant value="1492:2-1492:33"/>
+		<constant value="1492:46-1492:47"/>
+		<constant value="1492:46-1492:58"/>
+		<constant value="1492:61-1492:65"/>
+		<constant value="1492:46-1492:65"/>
+		<constant value="1492:2-1492:66"/>
+		<constant value="1492:2-1492:75"/>
 		<constant value="isInitialState"/>
 		<constant value="initial"/>
-		<constant value="1491:5-1491:9"/>
-		<constant value="1491:22-1491:39"/>
-		<constant value="1491:5-1491:40"/>
-		<constant value="1494:3-1494:8"/>
-		<constant value="1492:3-1492:7"/>
-		<constant value="1492:3-1492:12"/>
-		<constant value="1492:15-1492:23"/>
-		<constant value="1492:3-1492:23"/>
-		<constant value="1491:2-1495:7"/>
+		<constant value="1496:5-1496:9"/>
+		<constant value="1496:22-1496:39"/>
+		<constant value="1496:5-1496:40"/>
+		<constant value="1499:3-1499:8"/>
+		<constant value="1497:3-1497:7"/>
+		<constant value="1497:3-1497:12"/>
+		<constant value="1497:15-1497:23"/>
+		<constant value="1497:3-1497:23"/>
+		<constant value="1496:2-1500:7"/>
 		<constant value="noNamespace"/>
-		<constant value="1499:2-1499:6"/>
-		<constant value="1499:23-1499:24"/>
-		<constant value="1499:27-1499:30"/>
-		<constant value="1499:23-1499:30"/>
-		<constant value="1499:32-1499:34"/>
-		<constant value="1499:2-1499:35"/>
+		<constant value="1504:2-1504:6"/>
+		<constant value="1504:23-1504:24"/>
+		<constant value="1504:27-1504:30"/>
+		<constant value="1504:23-1504:30"/>
+		<constant value="1504:32-1504:34"/>
+		<constant value="1504:2-1504:35"/>
 		<constant value="n"/>
 		<constant value="MIM!Fault;"/>
 		<constant value="J.noNamespace(J):J"/>
-		<constant value="1501:24-1501:28"/>
-		<constant value="1501:24-1501:33"/>
-		<constant value="1501:46-1501:50"/>
-		<constant value="1501:46-1501:60"/>
-		<constant value="1501:46-1501:65"/>
-		<constant value="1501:24-1501:66"/>
-		<constant value="1502:5-1502:11"/>
-		<constant value="1502:22-1502:23"/>
-		<constant value="1502:25-1502:31"/>
-		<constant value="1502:25-1502:38"/>
-		<constant value="1502:5-1502:39"/>
-		<constant value="1501:2-1502:39"/>
+		<constant value="1506:24-1506:28"/>
+		<constant value="1506:24-1506:33"/>
+		<constant value="1506:46-1506:50"/>
+		<constant value="1506:46-1506:60"/>
+		<constant value="1506:46-1506:65"/>
+		<constant value="1506:24-1506:66"/>
+		<constant value="1507:5-1507:11"/>
+		<constant value="1507:22-1507:23"/>
+		<constant value="1507:25-1507:31"/>
+		<constant value="1507:25-1507:38"/>
+		<constant value="1507:5-1507:39"/>
+		<constant value="1506:2-1507:39"/>
 		<constant value="fClean"/>
 		<constant value="MIM!Error;"/>
-		<constant value="1504:2-1504:6"/>
-		<constant value="1504:2-1504:11"/>
-		<constant value="1504:24-1504:28"/>
-		<constant value="1504:24-1504:38"/>
-		<constant value="1504:24-1504:43"/>
-		<constant value="1504:2-1504:44"/>
+		<constant value="1509:2-1509:6"/>
+		<constant value="1509:2-1509:11"/>
+		<constant value="1509:24-1509:28"/>
+		<constant value="1509:24-1509:38"/>
+		<constant value="1509:24-1509:43"/>
+		<constant value="1509:2-1509:44"/>
 		<constant value="MIM!FailureMode;"/>
-		<constant value="1506:2-1506:6"/>
-		<constant value="1506:2-1506:11"/>
-		<constant value="1506:24-1506:28"/>
-		<constant value="1506:24-1506:38"/>
-		<constant value="1506:24-1506:43"/>
-		<constant value="1506:2-1506:44"/>
+		<constant value="1511:2-1511:6"/>
+		<constant value="1511:2-1511:11"/>
+		<constant value="1511:24-1511:28"/>
+		<constant value="1511:24-1511:38"/>
+		<constant value="1511:24-1511:43"/>
+		<constant value="1511:2-1511:44"/>
 		<constant value="MIM!Threat;"/>
-		<constant value="1507:51-1507:55"/>
-		<constant value="1507:51-1507:60"/>
+		<constant value="1512:51-1512:55"/>
+		<constant value="1512:51-1512:60"/>
 		<constant value="getPortName"/>
 		<constant value="J.at(J):J"/>
-		<constant value="1511:2-1511:6"/>
-		<constant value="1511:2-1511:16"/>
-		<constant value="1511:23-1511:28"/>
-		<constant value="1511:2-1511:29"/>
-		<constant value="1511:33-1511:34"/>
-		<constant value="1511:2-1511:35"/>
+		<constant value="1516:2-1516:6"/>
+		<constant value="1516:2-1516:16"/>
+		<constant value="1516:23-1516:28"/>
+		<constant value="1516:2-1516:29"/>
+		<constant value="1516:33-1516:34"/>
+		<constant value="1516:2-1516:35"/>
 		<constant value="getModeName"/>
-		<constant value="1513:2-1513:6"/>
-		<constant value="1513:2-1513:16"/>
-		<constant value="1513:23-1513:28"/>
-		<constant value="1513:2-1513:29"/>
-		<constant value="1513:33-1513:34"/>
-		<constant value="1513:2-1513:35"/>
-		<constant value="1515:2-1515:6"/>
-		<constant value="1515:2-1515:16"/>
-		<constant value="1515:24-1515:29"/>
-		<constant value="1515:2-1515:30"/>
-		<constant value="1515:35-1515:36"/>
-		<constant value="1515:2-1515:37"/>
-		<constant value="1517:2-1517:6"/>
-		<constant value="1517:2-1517:16"/>
-		<constant value="1517:23-1517:28"/>
-		<constant value="1517:2-1517:29"/>
-		<constant value="1517:33-1517:34"/>
-		<constant value="1517:2-1517:35"/>
+		<constant value="1518:2-1518:6"/>
+		<constant value="1518:2-1518:16"/>
+		<constant value="1518:23-1518:28"/>
+		<constant value="1518:2-1518:29"/>
+		<constant value="1518:33-1518:34"/>
+		<constant value="1518:2-1518:35"/>
+		<constant value="1520:2-1520:6"/>
+		<constant value="1520:2-1520:16"/>
+		<constant value="1520:24-1520:29"/>
+		<constant value="1520:2-1520:30"/>
+		<constant value="1520:35-1520:36"/>
+		<constant value="1520:2-1520:37"/>
+		<constant value="1522:2-1522:6"/>
+		<constant value="1522:2-1522:16"/>
+		<constant value="1522:23-1522:28"/>
+		<constant value="1522:2-1522:29"/>
+		<constant value="1522:33-1522:34"/>
+		<constant value="1522:2-1522:35"/>
 		<constant value="parseDistribution"/>
 		<constant value="J.toLower():J"/>
 		<constant value="det"/>
@@ -3073,582 +3095,600 @@
 		<constant value="50"/>
 		<constant value="J.parseDeterministic():J"/>
 		<constant value="J.parseExponential():J"/>
-		<constant value="1524:22-1524:26"/>
-		<constant value="1524:22-1524:33"/>
-		<constant value="1524:22-1524:43"/>
-		<constant value="1525:5-1525:9"/>
-		<constant value="1525:21-1525:26"/>
-		<constant value="1525:5-1525:27"/>
-		<constant value="1527:10-1527:14"/>
-		<constant value="1527:26-1527:31"/>
-		<constant value="1527:10-1527:32"/>
-		<constant value="1529:10-1529:14"/>
-		<constant value="1529:26-1529:31"/>
-		<constant value="1529:10-1529:32"/>
-		<constant value="1531:10-1531:14"/>
-		<constant value="1531:26-1531:32"/>
-		<constant value="1531:10-1531:33"/>
-		<constant value="1531:37-1531:41"/>
-		<constant value="1531:53-1531:60"/>
-		<constant value="1531:37-1531:61"/>
-		<constant value="1531:10-1531:61"/>
-		<constant value="1533:10-1533:14"/>
-		<constant value="1533:26-1533:31"/>
-		<constant value="1533:10-1533:32"/>
-		<constant value="1535:10-1535:14"/>
-		<constant value="1535:26-1535:31"/>
-		<constant value="1535:10-1535:32"/>
-		<constant value="1538:3-1538:13"/>
-		<constant value="1538:26-1538:27"/>
-		<constant value="1538:3-1538:28"/>
-		<constant value="1536:3-1536:7"/>
-		<constant value="1536:3-1536:22"/>
-		<constant value="1535:7-1539:7"/>
-		<constant value="1534:3-1534:7"/>
-		<constant value="1534:3-1534:20"/>
-		<constant value="1533:7-1539:13"/>
-		<constant value="1532:3-1532:7"/>
-		<constant value="1532:3-1532:23"/>
-		<constant value="1531:7-1539:19"/>
-		<constant value="1530:3-1530:7"/>
-		<constant value="1530:3-1530:22"/>
-		<constant value="1529:7-1539:25"/>
-		<constant value="1528:3-1528:7"/>
-		<constant value="1528:3-1528:28"/>
-		<constant value="1527:7-1539:31"/>
-		<constant value="1526:3-1526:7"/>
-		<constant value="1526:3-1526:26"/>
-		<constant value="1525:2-1539:37"/>
-		<constant value="1524:2-1539:37"/>
+		<constant value="1529:22-1529:26"/>
+		<constant value="1529:22-1529:33"/>
+		<constant value="1529:22-1529:43"/>
+		<constant value="1530:5-1530:9"/>
+		<constant value="1530:21-1530:26"/>
+		<constant value="1530:5-1530:27"/>
+		<constant value="1532:10-1532:14"/>
+		<constant value="1532:26-1532:31"/>
+		<constant value="1532:10-1532:32"/>
+		<constant value="1534:10-1534:14"/>
+		<constant value="1534:26-1534:31"/>
+		<constant value="1534:10-1534:32"/>
+		<constant value="1536:10-1536:14"/>
+		<constant value="1536:26-1536:32"/>
+		<constant value="1536:10-1536:33"/>
+		<constant value="1536:37-1536:41"/>
+		<constant value="1536:53-1536:60"/>
+		<constant value="1536:37-1536:61"/>
+		<constant value="1536:10-1536:61"/>
+		<constant value="1538:10-1538:14"/>
+		<constant value="1538:26-1538:31"/>
+		<constant value="1538:10-1538:32"/>
+		<constant value="1540:10-1540:14"/>
+		<constant value="1540:26-1540:31"/>
+		<constant value="1540:10-1540:32"/>
+		<constant value="1543:3-1543:13"/>
+		<constant value="1543:26-1543:27"/>
+		<constant value="1543:3-1543:28"/>
+		<constant value="1541:3-1541:7"/>
+		<constant value="1541:3-1541:22"/>
+		<constant value="1540:7-1544:7"/>
+		<constant value="1539:3-1539:7"/>
+		<constant value="1539:3-1539:20"/>
+		<constant value="1538:7-1544:13"/>
+		<constant value="1537:3-1537:7"/>
+		<constant value="1537:3-1537:23"/>
+		<constant value="1536:7-1544:19"/>
+		<constant value="1535:3-1535:7"/>
+		<constant value="1535:3-1535:22"/>
+		<constant value="1534:7-1544:25"/>
+		<constant value="1533:3-1533:7"/>
+		<constant value="1533:3-1533:28"/>
+		<constant value="1532:7-1544:31"/>
+		<constant value="1531:3-1531:7"/>
+		<constant value="1531:3-1531:26"/>
+		<constant value="1530:2-1544:37"/>
+		<constant value="1529:2-1544:37"/>
 		<constant value="dist"/>
 		<constant value="parseExponential"/>
 		<constant value="("/>
 		<constant value=")"/>
-		<constant value="1542:2-1542:12"/>
-		<constant value="1542:25-1542:29"/>
-		<constant value="1542:40-1542:44"/>
-		<constant value="1542:53-1542:56"/>
-		<constant value="1542:40-1542:57"/>
-		<constant value="1542:58-1542:59"/>
-		<constant value="1542:40-1542:59"/>
-		<constant value="1542:61-1542:65"/>
-		<constant value="1542:74-1542:77"/>
-		<constant value="1542:61-1542:78"/>
-		<constant value="1542:25-1542:79"/>
-		<constant value="1542:25-1542:88"/>
-		<constant value="1542:2-1542:89"/>
+		<constant value="1547:2-1547:12"/>
+		<constant value="1547:25-1547:29"/>
+		<constant value="1547:40-1547:44"/>
+		<constant value="1547:53-1547:56"/>
+		<constant value="1547:40-1547:57"/>
+		<constant value="1547:58-1547:59"/>
+		<constant value="1547:40-1547:59"/>
+		<constant value="1547:61-1547:65"/>
+		<constant value="1547:74-1547:77"/>
+		<constant value="1547:61-1547:78"/>
+		<constant value="1547:25-1547:79"/>
+		<constant value="1547:25-1547:88"/>
+		<constant value="1547:2-1547:89"/>
 		<constant value="parseDeterministic"/>
-		<constant value="1545:2-1545:12"/>
-		<constant value="1545:27-1545:31"/>
-		<constant value="1545:42-1545:46"/>
-		<constant value="1545:55-1545:58"/>
-		<constant value="1545:42-1545:59"/>
-		<constant value="1545:60-1545:61"/>
-		<constant value="1545:42-1545:61"/>
-		<constant value="1545:63-1545:67"/>
-		<constant value="1545:76-1545:79"/>
-		<constant value="1545:63-1545:80"/>
-		<constant value="1545:27-1545:81"/>
-		<constant value="1545:27-1545:90"/>
-		<constant value="1545:2-1545:91"/>
+		<constant value="1550:2-1550:12"/>
+		<constant value="1550:27-1550:31"/>
+		<constant value="1550:42-1550:46"/>
+		<constant value="1550:55-1550:58"/>
+		<constant value="1550:42-1550:59"/>
+		<constant value="1550:60-1550:61"/>
+		<constant value="1550:42-1550:61"/>
+		<constant value="1550:63-1550:67"/>
+		<constant value="1550:76-1550:79"/>
+		<constant value="1550:63-1550:80"/>
+		<constant value="1550:27-1550:81"/>
+		<constant value="1550:27-1550:90"/>
+		<constant value="1550:2-1550:91"/>
 		<constant value="parseUniform"/>
 		<constant value="J.Uniform(JJ):J"/>
-		<constant value="1548:25-1548:29"/>
-		<constant value="1548:38-1548:41"/>
-		<constant value="1548:25-1548:42"/>
-		<constant value="1549:2-1549:12"/>
-		<constant value="1550:3-1550:7"/>
-		<constant value="1550:18-1550:22"/>
-		<constant value="1550:31-1550:34"/>
-		<constant value="1550:18-1550:35"/>
-		<constant value="1550:36-1550:37"/>
-		<constant value="1550:18-1550:37"/>
-		<constant value="1550:39-1550:45"/>
-		<constant value="1550:3-1550:46"/>
-		<constant value="1550:3-1550:55"/>
-		<constant value="1551:3-1551:7"/>
-		<constant value="1551:18-1551:24"/>
-		<constant value="1551:25-1551:26"/>
-		<constant value="1551:18-1551:26"/>
-		<constant value="1551:28-1551:32"/>
-		<constant value="1551:41-1551:44"/>
-		<constant value="1551:28-1551:45"/>
-		<constant value="1551:3-1551:46"/>
-		<constant value="1551:3-1551:55"/>
-		<constant value="1549:2-1552:3"/>
-		<constant value="1548:2-1552:3"/>
+		<constant value="1553:25-1553:29"/>
+		<constant value="1553:38-1553:41"/>
+		<constant value="1553:25-1553:42"/>
+		<constant value="1554:2-1554:12"/>
+		<constant value="1555:3-1555:7"/>
+		<constant value="1555:18-1555:22"/>
+		<constant value="1555:31-1555:34"/>
+		<constant value="1555:18-1555:35"/>
+		<constant value="1555:36-1555:37"/>
+		<constant value="1555:18-1555:37"/>
+		<constant value="1555:39-1555:45"/>
+		<constant value="1555:3-1555:46"/>
+		<constant value="1555:3-1555:55"/>
+		<constant value="1556:3-1556:7"/>
+		<constant value="1556:18-1556:24"/>
+		<constant value="1556:25-1556:26"/>
+		<constant value="1556:18-1556:26"/>
+		<constant value="1556:28-1556:32"/>
+		<constant value="1556:41-1556:44"/>
+		<constant value="1556:28-1556:45"/>
+		<constant value="1556:3-1556:46"/>
+		<constant value="1556:3-1556:55"/>
+		<constant value="1554:2-1557:3"/>
+		<constant value="1553:2-1557:3"/>
 		<constant value="iComma"/>
 		<constant value="parseGaussian"/>
 		<constant value="J.Gaussian(JJ):J"/>
-		<constant value="1555:25-1555:29"/>
-		<constant value="1555:38-1555:41"/>
-		<constant value="1555:25-1555:42"/>
-		<constant value="1556:2-1556:12"/>
-		<constant value="1557:3-1557:7"/>
-		<constant value="1557:18-1557:22"/>
-		<constant value="1557:31-1557:34"/>
-		<constant value="1557:18-1557:35"/>
-		<constant value="1557:36-1557:37"/>
-		<constant value="1557:18-1557:37"/>
-		<constant value="1557:39-1557:45"/>
-		<constant value="1557:3-1557:46"/>
-		<constant value="1557:3-1557:55"/>
-		<constant value="1558:3-1558:7"/>
-		<constant value="1558:18-1558:24"/>
-		<constant value="1558:25-1558:26"/>
-		<constant value="1558:18-1558:26"/>
-		<constant value="1558:28-1558:32"/>
-		<constant value="1558:41-1558:44"/>
-		<constant value="1558:28-1558:45"/>
-		<constant value="1558:3-1558:46"/>
-		<constant value="1558:3-1558:55"/>
-		<constant value="1556:2-1559:3"/>
-		<constant value="1555:2-1559:3"/>
+		<constant value="1560:25-1560:29"/>
+		<constant value="1560:38-1560:41"/>
+		<constant value="1560:25-1560:42"/>
+		<constant value="1561:2-1561:12"/>
+		<constant value="1562:3-1562:7"/>
+		<constant value="1562:18-1562:22"/>
+		<constant value="1562:31-1562:34"/>
+		<constant value="1562:18-1562:35"/>
+		<constant value="1562:36-1562:37"/>
+		<constant value="1562:18-1562:37"/>
+		<constant value="1562:39-1562:45"/>
+		<constant value="1562:3-1562:46"/>
+		<constant value="1562:3-1562:55"/>
+		<constant value="1563:3-1563:7"/>
+		<constant value="1563:18-1563:24"/>
+		<constant value="1563:25-1563:26"/>
+		<constant value="1563:18-1563:26"/>
+		<constant value="1563:28-1563:32"/>
+		<constant value="1563:41-1563:44"/>
+		<constant value="1563:28-1563:45"/>
+		<constant value="1563:3-1563:46"/>
+		<constant value="1563:3-1563:55"/>
+		<constant value="1561:2-1564:3"/>
+		<constant value="1560:2-1564:3"/>
 		<constant value="parseGamma"/>
 		<constant value="J.Gamma(JJ):J"/>
-		<constant value="1562:25-1562:29"/>
-		<constant value="1562:38-1562:41"/>
-		<constant value="1562:25-1562:42"/>
-		<constant value="1563:2-1563:12"/>
-		<constant value="1564:3-1564:7"/>
-		<constant value="1564:18-1564:22"/>
-		<constant value="1564:31-1564:34"/>
-		<constant value="1564:18-1564:35"/>
-		<constant value="1564:36-1564:37"/>
-		<constant value="1564:18-1564:37"/>
-		<constant value="1564:39-1564:45"/>
-		<constant value="1564:3-1564:46"/>
-		<constant value="1564:3-1564:55"/>
-		<constant value="1565:3-1565:7"/>
-		<constant value="1565:18-1565:24"/>
-		<constant value="1565:25-1565:26"/>
-		<constant value="1565:18-1565:26"/>
-		<constant value="1565:28-1565:32"/>
-		<constant value="1565:41-1565:44"/>
-		<constant value="1565:28-1565:45"/>
-		<constant value="1565:3-1565:46"/>
-		<constant value="1565:3-1565:55"/>
-		<constant value="1563:2-1566:3"/>
-		<constant value="1562:2-1566:3"/>
+		<constant value="1567:25-1567:29"/>
+		<constant value="1567:38-1567:41"/>
+		<constant value="1567:25-1567:42"/>
+		<constant value="1568:2-1568:12"/>
+		<constant value="1569:3-1569:7"/>
+		<constant value="1569:18-1569:22"/>
+		<constant value="1569:31-1569:34"/>
+		<constant value="1569:18-1569:35"/>
+		<constant value="1569:36-1569:37"/>
+		<constant value="1569:18-1569:37"/>
+		<constant value="1569:39-1569:45"/>
+		<constant value="1569:3-1569:46"/>
+		<constant value="1569:3-1569:55"/>
+		<constant value="1570:3-1570:7"/>
+		<constant value="1570:18-1570:24"/>
+		<constant value="1570:25-1570:26"/>
+		<constant value="1570:18-1570:26"/>
+		<constant value="1570:28-1570:32"/>
+		<constant value="1570:41-1570:44"/>
+		<constant value="1570:28-1570:45"/>
+		<constant value="1570:3-1570:46"/>
+		<constant value="1570:3-1570:55"/>
+		<constant value="1568:2-1571:3"/>
+		<constant value="1567:2-1571:3"/>
 		<constant value="parseWeibull"/>
 		<constant value="J.Weibull(JJ):J"/>
-		<constant value="1569:25-1569:29"/>
-		<constant value="1569:38-1569:41"/>
-		<constant value="1569:25-1569:42"/>
-		<constant value="1570:2-1570:12"/>
-		<constant value="1571:3-1571:7"/>
-		<constant value="1571:18-1571:22"/>
-		<constant value="1571:31-1571:34"/>
-		<constant value="1571:18-1571:35"/>
-		<constant value="1571:36-1571:37"/>
-		<constant value="1571:18-1571:37"/>
-		<constant value="1571:39-1571:45"/>
-		<constant value="1571:3-1571:46"/>
-		<constant value="1571:3-1571:55"/>
-		<constant value="1572:3-1572:7"/>
-		<constant value="1572:18-1572:24"/>
-		<constant value="1572:25-1572:26"/>
-		<constant value="1572:18-1572:26"/>
-		<constant value="1572:28-1572:32"/>
-		<constant value="1572:41-1572:44"/>
-		<constant value="1572:28-1572:45"/>
-		<constant value="1572:3-1572:46"/>
-		<constant value="1572:3-1572:55"/>
-		<constant value="1570:2-1573:3"/>
-		<constant value="1569:2-1573:3"/>
+		<constant value="1574:25-1574:29"/>
+		<constant value="1574:38-1574:41"/>
+		<constant value="1574:25-1574:42"/>
+		<constant value="1575:2-1575:12"/>
+		<constant value="1576:3-1576:7"/>
+		<constant value="1576:18-1576:22"/>
+		<constant value="1576:31-1576:34"/>
+		<constant value="1576:18-1576:35"/>
+		<constant value="1576:36-1576:37"/>
+		<constant value="1576:18-1576:37"/>
+		<constant value="1576:39-1576:45"/>
+		<constant value="1576:3-1576:46"/>
+		<constant value="1576:3-1576:55"/>
+		<constant value="1577:3-1577:7"/>
+		<constant value="1577:18-1577:24"/>
+		<constant value="1577:25-1577:26"/>
+		<constant value="1577:18-1577:26"/>
+		<constant value="1577:28-1577:32"/>
+		<constant value="1577:41-1577:44"/>
+		<constant value="1577:28-1577:45"/>
+		<constant value="1577:3-1577:46"/>
+		<constant value="1577:3-1577:55"/>
+		<constant value="1575:2-1578:3"/>
+		<constant value="1574:2-1578:3"/>
 		<constant value="getBaseItem"/>
-		<constant value="1585:80-1585:84"/>
-		<constant value="1585:80-1585:95"/>
-		<constant value="1585:80-1585:104"/>
+		<constant value="1590:80-1590:84"/>
+		<constant value="1590:80-1590:95"/>
+		<constant value="1590:80-1590:104"/>
 		<constant value="getSimpleStochasticBehavior"/>
 		<constant value="MUML!Classifier;"/>
 		<constant value="base_Class"/>
-		<constant value="1590:2-1590:32"/>
-		<constant value="1590:2-1590:48"/>
-		<constant value="1590:63-1590:66"/>
-		<constant value="1590:63-1590:77"/>
-		<constant value="1590:80-1590:84"/>
-		<constant value="1590:63-1590:84"/>
-		<constant value="1590:2-1590:85"/>
-		<constant value="1590:2-1590:94"/>
+		<constant value="1595:2-1595:32"/>
+		<constant value="1595:2-1595:48"/>
+		<constant value="1595:63-1595:66"/>
+		<constant value="1595:63-1595:77"/>
+		<constant value="1595:80-1595:84"/>
+		<constant value="1595:63-1595:84"/>
+		<constant value="1595:2-1595:85"/>
+		<constant value="1595:2-1595:94"/>
 		<constant value="ssb"/>
 		<constant value="base_InstanceSpecification"/>
 		<constant value="J.getBaseItem():J"/>
 		<constant value="J.getSimpleStochasticBehavior():J"/>
-		<constant value="1594:3-1594:33"/>
-		<constant value="1594:3-1594:49"/>
-		<constant value="1594:64-1594:67"/>
-		<constant value="1594:64-1594:94"/>
-		<constant value="1594:97-1594:101"/>
-		<constant value="1594:64-1594:101"/>
-		<constant value="1594:3-1594:102"/>
-		<constant value="1594:3-1594:111"/>
-		<constant value="1595:5-1595:12"/>
-		<constant value="1595:16-1595:28"/>
-		<constant value="1595:5-1595:28"/>
-		<constant value="1596:26-1596:30"/>
-		<constant value="1596:26-1596:44"/>
-		<constant value="1597:7-1597:11"/>
-		<constant value="1597:14-1597:26"/>
-		<constant value="1597:7-1597:26"/>
-		<constant value="1597:42-1597:46"/>
-		<constant value="1597:42-1597:76"/>
-		<constant value="1597:32-1597:36"/>
-		<constant value="1597:4-1597:82"/>
-		<constant value="1596:3-1597:82"/>
-		<constant value="1595:34-1595:41"/>
-		<constant value="1595:2-1598:7"/>
-		<constant value="1593:2-1598:7"/>
+		<constant value="1599:3-1599:33"/>
+		<constant value="1599:3-1599:49"/>
+		<constant value="1599:64-1599:67"/>
+		<constant value="1599:64-1599:94"/>
+		<constant value="1599:97-1599:101"/>
+		<constant value="1599:64-1599:101"/>
+		<constant value="1599:3-1599:102"/>
+		<constant value="1599:3-1599:111"/>
+		<constant value="1600:5-1600:12"/>
+		<constant value="1600:16-1600:28"/>
+		<constant value="1600:5-1600:28"/>
+		<constant value="1601:26-1601:30"/>
+		<constant value="1601:26-1601:44"/>
+		<constant value="1602:7-1602:11"/>
+		<constant value="1602:14-1602:26"/>
+		<constant value="1602:7-1602:26"/>
+		<constant value="1602:42-1602:46"/>
+		<constant value="1602:42-1602:76"/>
+		<constant value="1602:32-1602:36"/>
+		<constant value="1602:4-1602:82"/>
+		<constant value="1601:3-1602:82"/>
+		<constant value="1600:34-1600:41"/>
+		<constant value="1600:2-1603:7"/>
+		<constant value="1598:2-1603:7"/>
 		<constant value="base"/>
 		<constant value="instssb"/>
 		<constant value="hasSBAInformation"/>
-		<constant value="1605:79-1605:83"/>
-		<constant value="1605:79-1605:102"/>
-		<constant value="1605:106-1605:118"/>
-		<constant value="1605:79-1605:118"/>
+		<constant value="1610:79-1610:83"/>
+		<constant value="1610:79-1610:102"/>
+		<constant value="1610:106-1610:118"/>
+		<constant value="1610:79-1610:118"/>
 		<constant value="getSBAStereotype"/>
 		<constant value="J.getSBAStereotypeInstance():J"/>
 		<constant value="J.getSBAStereotypeClassifier():J"/>
-		<constant value="1610:19-1610:23"/>
-		<constant value="1610:19-1610:50"/>
-		<constant value="1611:5-1611:6"/>
-		<constant value="1611:9-1611:21"/>
-		<constant value="1611:5-1611:21"/>
-		<constant value="1611:86-1611:87"/>
-		<constant value="1611:27-1611:31"/>
-		<constant value="1611:27-1611:42"/>
-		<constant value="1611:27-1611:51"/>
-		<constant value="1611:27-1611:80"/>
-		<constant value="1611:2-1611:93"/>
-		<constant value="1610:2-1611:93"/>
+		<constant value="1615:19-1615:23"/>
+		<constant value="1615:19-1615:50"/>
+		<constant value="1616:5-1616:6"/>
+		<constant value="1616:9-1616:21"/>
+		<constant value="1616:5-1616:21"/>
+		<constant value="1616:86-1616:87"/>
+		<constant value="1616:27-1616:31"/>
+		<constant value="1616:27-1616:42"/>
+		<constant value="1616:27-1616:51"/>
+		<constant value="1616:27-1616:80"/>
+		<constant value="1616:2-1616:93"/>
+		<constant value="1615:2-1616:93"/>
 		<constant value="getSBAStereotypeInstance"/>
-		<constant value="1615:2-1615:12"/>
-		<constant value="1615:2-1615:27"/>
-		<constant value="1615:41-1615:42"/>
-		<constant value="1615:41-1615:57"/>
-		<constant value="1615:2-1615:58"/>
-		<constant value="1615:2-1615:69"/>
-		<constant value="1615:83-1615:85"/>
-		<constant value="1615:83-1615:112"/>
-		<constant value="1615:115-1615:119"/>
-		<constant value="1615:83-1615:119"/>
-		<constant value="1615:2-1615:120"/>
-		<constant value="1615:2-1615:129"/>
+		<constant value="1620:2-1620:12"/>
+		<constant value="1620:2-1620:27"/>
+		<constant value="1620:41-1620:42"/>
+		<constant value="1620:41-1620:57"/>
+		<constant value="1620:2-1620:58"/>
+		<constant value="1620:2-1620:69"/>
+		<constant value="1620:83-1620:85"/>
+		<constant value="1620:83-1620:112"/>
+		<constant value="1620:115-1620:119"/>
+		<constant value="1620:83-1620:119"/>
+		<constant value="1620:2-1620:120"/>
+		<constant value="1620:2-1620:129"/>
 		<constant value="getSBAStereotypeClassifier"/>
 		<constant value="MUML!Class;"/>
-		<constant value="1619:2-1619:12"/>
-		<constant value="1619:2-1619:27"/>
-		<constant value="1619:41-1619:42"/>
-		<constant value="1619:41-1619:57"/>
-		<constant value="1619:2-1619:58"/>
-		<constant value="1619:2-1619:69"/>
-		<constant value="1619:83-1619:85"/>
-		<constant value="1619:83-1619:96"/>
-		<constant value="1619:99-1619:103"/>
-		<constant value="1619:83-1619:103"/>
-		<constant value="1619:2-1619:104"/>
-		<constant value="1619:2-1619:113"/>
+		<constant value="1624:2-1624:12"/>
+		<constant value="1624:2-1624:27"/>
+		<constant value="1624:41-1624:42"/>
+		<constant value="1624:41-1624:57"/>
+		<constant value="1624:2-1624:58"/>
+		<constant value="1624:2-1624:69"/>
+		<constant value="1624:83-1624:85"/>
+		<constant value="1624:83-1624:96"/>
+		<constant value="1624:99-1624:103"/>
+		<constant value="1624:83-1624:103"/>
+		<constant value="1624:2-1624:104"/>
+		<constant value="1624:2-1624:113"/>
 		<constant value="findSBAConstituents"/>
 		<constant value="J.hasSBAInformation():J"/>
 		<constant value="J.getSubInstances():J"/>
-		<constant value="1625:5-1625:9"/>
-		<constant value="1625:5-1625:29"/>
-		<constant value="1625:33-1625:37"/>
-		<constant value="1625:33-1625:55"/>
-		<constant value="1625:33-1625:65"/>
-		<constant value="1625:5-1625:65"/>
-		<constant value="1628:3-1628:7"/>
-		<constant value="1628:3-1628:25"/>
-		<constant value="1628:39-1628:40"/>
-		<constant value="1628:39-1628:62"/>
-		<constant value="1628:3-1628:63"/>
-		<constant value="1628:3-1628:74"/>
-		<constant value="1626:7-1626:11"/>
-		<constant value="1626:3-1626:12"/>
-		<constant value="1625:2-1629:7"/>
-		<constant value="1633:2-1633:12"/>
-		<constant value="1633:2-1633:27"/>
-		<constant value="1633:41-1633:42"/>
-		<constant value="1633:41-1633:57"/>
-		<constant value="1633:2-1633:58"/>
-		<constant value="1633:2-1634:18"/>
-		<constant value="1634:31-1634:32"/>
-		<constant value="1634:31-1634:48"/>
-		<constant value="1634:51-1634:55"/>
-		<constant value="1634:31-1634:55"/>
-		<constant value="1633:2-1634:56"/>
-		<constant value="1633:2-1635:16"/>
-		<constant value="1638:72-1638:76"/>
-		<constant value="1638:72-1638:95"/>
-		<constant value="1638:72-1638:112"/>
-		<constant value="1638:68-1638:112"/>
+		<constant value="1630:5-1630:9"/>
+		<constant value="1630:5-1630:29"/>
+		<constant value="1630:33-1630:37"/>
+		<constant value="1630:33-1630:55"/>
+		<constant value="1630:33-1630:65"/>
+		<constant value="1630:5-1630:65"/>
+		<constant value="1633:3-1633:7"/>
+		<constant value="1633:3-1633:25"/>
+		<constant value="1633:39-1633:40"/>
+		<constant value="1633:39-1633:62"/>
+		<constant value="1633:3-1633:63"/>
+		<constant value="1633:3-1633:74"/>
+		<constant value="1631:7-1631:11"/>
+		<constant value="1631:3-1631:12"/>
+		<constant value="1630:2-1634:7"/>
+		<constant value="1638:2-1638:12"/>
+		<constant value="1638:2-1638:27"/>
+		<constant value="1638:41-1638:42"/>
+		<constant value="1638:41-1638:57"/>
+		<constant value="1638:2-1638:58"/>
+		<constant value="1638:2-1639:18"/>
+		<constant value="1639:31-1639:32"/>
+		<constant value="1639:31-1639:48"/>
+		<constant value="1639:51-1639:55"/>
+		<constant value="1639:31-1639:55"/>
+		<constant value="1638:2-1639:56"/>
+		<constant value="1638:2-1640:16"/>
+		<constant value="1643:72-1643:76"/>
+		<constant value="1643:72-1643:95"/>
+		<constant value="1643:72-1643:112"/>
+		<constant value="1643:68-1643:112"/>
 		<constant value="getPortSlots"/>
-		<constant value="Port"/>
-		<constant value="1645:2-1645:6"/>
-		<constant value="1645:2-1645:11"/>
-		<constant value="1645:24-1645:25"/>
-		<constant value="1645:24-1645:41"/>
-		<constant value="1645:54-1645:62"/>
-		<constant value="1645:24-1645:63"/>
-		<constant value="1645:2-1645:64"/>
+		<constant value="slot"/>
+		<constant value="1650:2-1650:6"/>
+		<constant value="1650:2-1650:11"/>
+		<constant value="1650:24-1650:25"/>
+		<constant value="1650:24-1650:41"/>
+		<constant value="1650:54-1650:62"/>
+		<constant value="1650:24-1650:63"/>
+		<constant value="1650:2-1650:64"/>
 		<constant value="getSubInstanceSlots"/>
-		<constant value="1648:2-1648:6"/>
-		<constant value="1648:2-1648:11"/>
-		<constant value="1648:28-1648:29"/>
-		<constant value="1648:28-1648:45"/>
-		<constant value="1648:58-1648:66"/>
-		<constant value="1648:28-1648:67"/>
-		<constant value="1648:24-1648:67"/>
-		<constant value="1648:2-1648:68"/>
+		<constant value="1653:2-1653:6"/>
+		<constant value="1653:2-1653:11"/>
+		<constant value="1653:28-1653:29"/>
+		<constant value="1653:28-1653:45"/>
+		<constant value="1653:58-1653:66"/>
+		<constant value="1653:28-1653:67"/>
+		<constant value="1653:24-1653:67"/>
+		<constant value="1653:2-1653:68"/>
 		<constant value="getSubInstances"/>
 		<constant value="J.getSubInstanceSlots():J"/>
-		<constant value="1651:2-1651:6"/>
-		<constant value="1651:2-1651:28"/>
-		<constant value="1651:42-1651:43"/>
-		<constant value="1651:42-1651:49"/>
-		<constant value="1651:42-1651:58"/>
-		<constant value="1651:42-1651:67"/>
-		<constant value="1651:2-1651:68"/>
+		<constant value="1656:2-1656:6"/>
+		<constant value="1656:2-1656:28"/>
+		<constant value="1656:42-1656:43"/>
+		<constant value="1656:42-1656:49"/>
+		<constant value="1656:42-1656:58"/>
+		<constant value="1656:42-1656:67"/>
+		<constant value="1656:2-1656:68"/>
 		<constant value="isSubInstanceOf"/>
-		<constant value="1654:2-1654:8"/>
-		<constant value="1654:2-1654:26"/>
-		<constant value="1654:37-1654:41"/>
-		<constant value="1654:2-1654:42"/>
+		<constant value="1659:2-1659:8"/>
+		<constant value="1659:2-1659:26"/>
+		<constant value="1659:37-1659:41"/>
+		<constant value="1659:2-1659:42"/>
 		<constant value="parent"/>
 		<constant value="MUML!Slot;"/>
-		<constant value="1657:46-1657:50"/>
-		<constant value="1657:46-1657:66"/>
-		<constant value="1657:46-1657:71"/>
+		<constant value="1662:46-1662:50"/>
+		<constant value="1662:46-1662:66"/>
+		<constant value="1662:46-1662:71"/>
 		<constant value="hasInputFlow"/>
-		<constant value="1669:57-1669:61"/>
-		<constant value="1669:57-1669:77"/>
-		<constant value="1669:57-1669:92"/>
+		<constant value="1674:57-1674:61"/>
+		<constant value="1674:57-1674:77"/>
+		<constant value="1674:57-1674:92"/>
 		<constant value="hasOutputFlow"/>
-		<constant value="1670:58-1670:62"/>
-		<constant value="1670:58-1670:78"/>
-		<constant value="1670:58-1670:94"/>
+		<constant value="1675:58-1675:62"/>
+		<constant value="1675:58-1675:78"/>
+		<constant value="1675:58-1675:94"/>
 		<constant value="MUML!Port;"/>
 		<constant value="ClientServerPort"/>
 		<constant value="base_Port"/>
 		<constant value="FlowPort"/>
 		<constant value="SYSML"/>
-		<constant value="59"/>
-		<constant value="56"/>
-		<constant value="58"/>
-		<constant value="1672:50-1672:72"/>
-		<constant value="1672:50-1672:87"/>
-		<constant value="1672:100-1672:101"/>
-		<constant value="1672:100-1672:111"/>
-		<constant value="1672:114-1672:118"/>
-		<constant value="1672:100-1672:118"/>
-		<constant value="1672:50-1672:119"/>
-		<constant value="1672:50-1672:128"/>
-		<constant value="1673:34-1673:48"/>
-		<constant value="1673:34-1673:63"/>
-		<constant value="1673:76-1673:77"/>
-		<constant value="1673:76-1673:87"/>
-		<constant value="1673:90-1673:94"/>
-		<constant value="1673:76-1673:94"/>
-		<constant value="1673:34-1673:95"/>
-		<constant value="1673:34-1673:104"/>
-		<constant value="1674:5-1674:21"/>
-		<constant value="1674:25-1674:37"/>
-		<constant value="1674:5-1674:37"/>
-		<constant value="1675:6-1675:14"/>
-		<constant value="1675:18-1675:30"/>
-		<constant value="1675:6-1675:30"/>
-		<constant value="1676:4-1676:9"/>
-		<constant value="1675:36-1675:44"/>
-		<constant value="1675:36-1675:59"/>
-		<constant value="1675:3-1677:7"/>
-		<constant value="1674:43-1674:59"/>
-		<constant value="1674:43-1674:74"/>
-		<constant value="1674:2-1677:13"/>
-		<constant value="1673:2-1677:13"/>
-		<constant value="1672:2-1677:13"/>
+		<constant value="89"/>
+		<constant value="86"/>
+		<constant value="85"/>
+		<constant value="J.hasInputFlowMarte():J"/>
+		<constant value="88"/>
+		<constant value="91"/>
+		<constant value="1677:50-1677:72"/>
+		<constant value="1677:50-1677:87"/>
+		<constant value="1677:100-1677:101"/>
+		<constant value="1677:100-1677:111"/>
+		<constant value="1677:114-1677:118"/>
+		<constant value="1677:100-1677:118"/>
+		<constant value="1677:50-1677:119"/>
+		<constant value="1677:50-1677:128"/>
+		<constant value="1678:34-1678:48"/>
+		<constant value="1678:34-1678:63"/>
+		<constant value="1678:76-1678:77"/>
+		<constant value="1678:76-1678:87"/>
+		<constant value="1678:90-1678:94"/>
+		<constant value="1678:76-1678:94"/>
+		<constant value="1678:34-1678:95"/>
+		<constant value="1678:34-1678:104"/>
+		<constant value="1679:39-1679:53"/>
+		<constant value="1679:39-1679:68"/>
+		<constant value="1679:81-1679:82"/>
+		<constant value="1679:81-1679:92"/>
+		<constant value="1679:95-1679:99"/>
+		<constant value="1679:81-1679:99"/>
+		<constant value="1679:39-1679:100"/>
+		<constant value="1679:39-1679:109"/>
+		<constant value="1680:5-1680:21"/>
+		<constant value="1680:25-1680:37"/>
+		<constant value="1680:5-1680:37"/>
+		<constant value="1681:6-1681:14"/>
+		<constant value="1681:18-1681:30"/>
+		<constant value="1681:6-1681:30"/>
+		<constant value="1682:7-1682:20"/>
+		<constant value="1682:24-1682:36"/>
+		<constant value="1682:7-1682:36"/>
+		<constant value="1683:5-1683:10"/>
+		<constant value="1682:42-1682:55"/>
+		<constant value="1682:42-1682:75"/>
+		<constant value="1682:4-1684:7"/>
+		<constant value="1681:36-1681:44"/>
+		<constant value="1681:36-1681:59"/>
+		<constant value="1681:3-1684:13"/>
+		<constant value="1680:43-1680:59"/>
+		<constant value="1680:43-1680:74"/>
+		<constant value="1680:2-1684:19"/>
+		<constant value="1679:2-1684:19"/>
+		<constant value="1678:2-1684:19"/>
+		<constant value="1677:2-1684:19"/>
+		<constant value="flowportmarte"/>
 		<constant value="flowport"/>
 		<constant value="clientserverport"/>
-		<constant value="1679:50-1679:72"/>
-		<constant value="1679:50-1679:87"/>
-		<constant value="1679:100-1679:101"/>
-		<constant value="1679:100-1679:111"/>
-		<constant value="1679:114-1679:118"/>
-		<constant value="1679:100-1679:118"/>
-		<constant value="1679:50-1679:119"/>
-		<constant value="1679:50-1679:128"/>
-		<constant value="1680:34-1680:48"/>
-		<constant value="1680:34-1680:63"/>
-		<constant value="1680:76-1680:77"/>
-		<constant value="1680:76-1680:87"/>
-		<constant value="1680:90-1680:94"/>
-		<constant value="1680:76-1680:94"/>
-		<constant value="1680:34-1680:95"/>
-		<constant value="1680:34-1680:104"/>
-		<constant value="1681:5-1681:21"/>
-		<constant value="1681:25-1681:37"/>
-		<constant value="1681:5-1681:37"/>
-		<constant value="1682:6-1682:14"/>
-		<constant value="1682:18-1682:30"/>
-		<constant value="1682:6-1682:30"/>
-		<constant value="1683:4-1683:9"/>
-		<constant value="1682:36-1682:44"/>
-		<constant value="1682:36-1682:60"/>
-		<constant value="1682:3-1684:7"/>
-		<constant value="1681:43-1681:59"/>
-		<constant value="1681:43-1681:75"/>
-		<constant value="1681:2-1684:13"/>
-		<constant value="1680:2-1684:13"/>
-		<constant value="1679:2-1684:13"/>
+		<constant value="J.hasOutputFlowMarte():J"/>
+		<constant value="1686:50-1686:72"/>
+		<constant value="1686:50-1686:87"/>
+		<constant value="1686:100-1686:101"/>
+		<constant value="1686:100-1686:111"/>
+		<constant value="1686:114-1686:118"/>
+		<constant value="1686:100-1686:118"/>
+		<constant value="1686:50-1686:119"/>
+		<constant value="1686:50-1686:128"/>
+		<constant value="1687:34-1687:48"/>
+		<constant value="1687:34-1687:63"/>
+		<constant value="1687:76-1687:77"/>
+		<constant value="1687:76-1687:87"/>
+		<constant value="1687:90-1687:94"/>
+		<constant value="1687:76-1687:94"/>
+		<constant value="1687:34-1687:95"/>
+		<constant value="1687:34-1687:104"/>
+		<constant value="1688:39-1688:53"/>
+		<constant value="1688:39-1688:68"/>
+		<constant value="1688:81-1688:82"/>
+		<constant value="1688:81-1688:92"/>
+		<constant value="1688:95-1688:99"/>
+		<constant value="1688:81-1688:99"/>
+		<constant value="1688:39-1688:100"/>
+		<constant value="1688:39-1688:109"/>
+		<constant value="1689:5-1689:21"/>
+		<constant value="1689:25-1689:37"/>
+		<constant value="1689:5-1689:37"/>
+		<constant value="1690:6-1690:14"/>
+		<constant value="1690:18-1690:30"/>
+		<constant value="1690:6-1690:30"/>
+		<constant value="1691:7-1691:20"/>
+		<constant value="1691:24-1691:36"/>
+		<constant value="1691:7-1691:36"/>
+		<constant value="1692:5-1692:10"/>
+		<constant value="1691:42-1691:55"/>
+		<constant value="1691:42-1691:76"/>
+		<constant value="1691:4-1693:7"/>
+		<constant value="1690:36-1690:44"/>
+		<constant value="1690:36-1690:60"/>
+		<constant value="1690:3-1693:13"/>
+		<constant value="1689:43-1689:59"/>
+		<constant value="1689:43-1689:75"/>
+		<constant value="1689:2-1693:19"/>
+		<constant value="1688:2-1693:19"/>
+		<constant value="1687:2-1693:19"/>
+		<constant value="1686:2-1693:19"/>
 		<constant value="MSYSML!FlowPort;"/>
 		<constant value="direction"/>
 		<constant value="out"/>
-		<constant value="1685:63-1685:67"/>
-		<constant value="1685:63-1685:77"/>
-		<constant value="1685:81-1685:85"/>
-		<constant value="1685:63-1685:85"/>
+		<constant value="1694:63-1694:67"/>
+		<constant value="1694:63-1694:77"/>
+		<constant value="1694:81-1694:85"/>
+		<constant value="1694:63-1694:85"/>
 		<constant value="inout"/>
-		<constant value="1686:64-1686:68"/>
-		<constant value="1686:64-1686:78"/>
-		<constant value="1686:81-1686:85"/>
-		<constant value="1686:64-1686:85"/>
-		<constant value="1686:89-1686:93"/>
-		<constant value="1686:89-1686:103"/>
-		<constant value="1686:106-1686:112"/>
-		<constant value="1686:89-1686:112"/>
-		<constant value="1686:64-1686:112"/>
+		<constant value="1695:64-1695:68"/>
+		<constant value="1695:64-1695:78"/>
+		<constant value="1695:81-1695:85"/>
+		<constant value="1695:64-1695:85"/>
+		<constant value="1695:89-1695:93"/>
+		<constant value="1695:89-1695:103"/>
+		<constant value="1695:106-1695:112"/>
+		<constant value="1695:89-1695:112"/>
+		<constant value="1695:64-1695:112"/>
+		<constant value="hasInputFlowMarte"/>
+		<constant value="MMARTE!FlowPort;"/>
+		<constant value="1696:68-1696:72"/>
+		<constant value="1696:68-1696:82"/>
+		<constant value="1696:86-1696:90"/>
+		<constant value="1696:68-1696:90"/>
+		<constant value="hasOutputFlowMarte"/>
+		<constant value="1697:69-1697:73"/>
+		<constant value="1697:69-1697:83"/>
+		<constant value="1697:86-1697:90"/>
+		<constant value="1697:69-1697:90"/>
+		<constant value="1697:94-1697:98"/>
+		<constant value="1697:94-1697:108"/>
+		<constant value="1697:111-1697:117"/>
+		<constant value="1697:94-1697:117"/>
+		<constant value="1697:69-1697:117"/>
 		<constant value="MMARTE!ClientServerPort;"/>
 		<constant value="provided"/>
-		<constant value="1687:71-1687:75"/>
-		<constant value="1687:71-1687:80"/>
-		<constant value="1687:84-1687:93"/>
-		<constant value="1687:71-1687:93"/>
+		<constant value="1698:71-1698:75"/>
+		<constant value="1698:71-1698:80"/>
+		<constant value="1698:84-1698:93"/>
+		<constant value="1698:71-1698:93"/>
 		<constant value="required"/>
-		<constant value="1688:72-1688:76"/>
-		<constant value="1688:72-1688:81"/>
-		<constant value="1688:85-1688:94"/>
-		<constant value="1688:72-1688:94"/>
+		<constant value="1699:72-1699:76"/>
+		<constant value="1699:72-1699:81"/>
+		<constant value="1699:85-1699:94"/>
+		<constant value="1699:72-1699:94"/>
 		<constant value="getConnectors"/>
 		<constant value="J.and(J):J"/>
 		<constant value="31"/>
-		<constant value="1697:2-1697:12"/>
-		<constant value="1697:2-1697:35"/>
-		<constant value="1698:20-1698:21"/>
-		<constant value="1698:20-1698:26"/>
-		<constant value="1698:39-1698:40"/>
-		<constant value="1698:39-1698:56"/>
-		<constant value="1698:59-1698:63"/>
-		<constant value="1698:59-1698:79"/>
-		<constant value="1698:39-1698:79"/>
-		<constant value="1699:10-1699:11"/>
-		<constant value="1699:10-1699:17"/>
-		<constant value="1699:10-1699:26"/>
-		<constant value="1699:10-1699:35"/>
-		<constant value="1699:38-1699:42"/>
-		<constant value="1699:38-1699:66"/>
-		<constant value="1699:10-1699:66"/>
-		<constant value="1698:39-1699:66"/>
-		<constant value="1698:20-1699:67"/>
-		<constant value="1698:20-1699:78"/>
-		<constant value="1698:16-1699:78"/>
-		<constant value="1697:2-1699:79"/>
+		<constant value="1708:2-1708:12"/>
+		<constant value="1708:2-1708:35"/>
+		<constant value="1709:20-1709:21"/>
+		<constant value="1709:20-1709:26"/>
+		<constant value="1709:39-1709:40"/>
+		<constant value="1709:39-1709:56"/>
+		<constant value="1709:59-1709:63"/>
+		<constant value="1709:59-1709:79"/>
+		<constant value="1709:39-1709:79"/>
+		<constant value="1710:10-1710:11"/>
+		<constant value="1710:10-1710:17"/>
+		<constant value="1710:10-1710:26"/>
+		<constant value="1710:10-1710:35"/>
+		<constant value="1710:38-1710:42"/>
+		<constant value="1710:38-1710:66"/>
+		<constant value="1710:10-1710:66"/>
+		<constant value="1709:39-1710:66"/>
+		<constant value="1709:20-1710:67"/>
+		<constant value="1709:20-1710:78"/>
+		<constant value="1709:16-1710:78"/>
+		<constant value="1708:2-1710:79"/>
 		<constant value="isConnection"/>
 		<constant value="J.asOrderedSet():J"/>
 		<constant value="32"/>
 		<constant value="J.isSubInstanceOf(J):J"/>
-		<constant value="1704:34-1704:38"/>
-		<constant value="1704:34-1704:43"/>
-		<constant value="1704:34-1704:59"/>
-		<constant value="1705:39-1705:41"/>
-		<constant value="1705:39-1705:50"/>
-		<constant value="1705:39-1705:56"/>
-		<constant value="1705:39-1705:65"/>
-		<constant value="1705:39-1705:74"/>
-		<constant value="1706:39-1706:41"/>
-		<constant value="1706:39-1706:49"/>
-		<constant value="1706:39-1706:55"/>
-		<constant value="1706:39-1706:64"/>
-		<constant value="1706:39-1706:73"/>
-		<constant value="1707:5-1707:7"/>
-		<constant value="1707:5-1707:24"/>
-		<constant value="1707:28-1707:30"/>
-		<constant value="1707:28-1707:47"/>
-		<constant value="1707:5-1707:47"/>
-		<constant value="1708:7-1708:9"/>
-		<constant value="1708:26-1708:28"/>
-		<constant value="1708:7-1708:29"/>
-		<constant value="1708:3-1708:29"/>
-		<constant value="1708:38-1708:40"/>
-		<constant value="1708:57-1708:59"/>
-		<constant value="1708:38-1708:60"/>
-		<constant value="1708:34-1708:60"/>
-		<constant value="1708:3-1708:60"/>
-		<constant value="1707:53-1707:58"/>
-		<constant value="1707:2-1709:7"/>
-		<constant value="1706:2-1709:7"/>
-		<constant value="1705:2-1709:7"/>
-		<constant value="1704:2-1709:7"/>
+		<constant value="1715:34-1715:38"/>
+		<constant value="1715:34-1715:43"/>
+		<constant value="1715:34-1715:59"/>
+		<constant value="1716:39-1716:41"/>
+		<constant value="1716:39-1716:50"/>
+		<constant value="1716:39-1716:56"/>
+		<constant value="1716:39-1716:65"/>
+		<constant value="1716:39-1716:74"/>
+		<constant value="1717:39-1717:41"/>
+		<constant value="1717:39-1717:49"/>
+		<constant value="1717:39-1717:55"/>
+		<constant value="1717:39-1717:64"/>
+		<constant value="1717:39-1717:73"/>
+		<constant value="1718:5-1718:7"/>
+		<constant value="1718:5-1718:24"/>
+		<constant value="1718:28-1718:30"/>
+		<constant value="1718:28-1718:47"/>
+		<constant value="1718:5-1718:47"/>
+		<constant value="1719:7-1719:9"/>
+		<constant value="1719:26-1719:28"/>
+		<constant value="1719:7-1719:29"/>
+		<constant value="1719:3-1719:29"/>
+		<constant value="1719:38-1719:40"/>
+		<constant value="1719:57-1719:59"/>
+		<constant value="1719:38-1719:60"/>
+		<constant value="1719:34-1719:60"/>
+		<constant value="1719:3-1719:60"/>
+		<constant value="1718:53-1718:58"/>
+		<constant value="1718:2-1720:7"/>
+		<constant value="1717:2-1720:7"/>
+		<constant value="1716:2-1720:7"/>
+		<constant value="1715:2-1720:7"/>
 		<constant value="i2"/>
 		<constant value="i1"/>
 		<constant value="isDelegation"/>
-		<constant value="1713:34-1713:38"/>
-		<constant value="1713:34-1713:43"/>
-		<constant value="1713:34-1713:59"/>
-		<constant value="1714:39-1714:41"/>
-		<constant value="1714:39-1714:50"/>
-		<constant value="1714:39-1714:56"/>
-		<constant value="1714:39-1714:65"/>
-		<constant value="1714:39-1714:74"/>
-		<constant value="1715:39-1715:41"/>
-		<constant value="1715:39-1715:49"/>
-		<constant value="1715:39-1715:55"/>
-		<constant value="1715:39-1715:64"/>
-		<constant value="1715:39-1715:73"/>
-		<constant value="1716:2-1716:4"/>
-		<constant value="1716:21-1716:23"/>
-		<constant value="1716:2-1716:24"/>
-		<constant value="1716:28-1716:30"/>
-		<constant value="1716:47-1716:49"/>
-		<constant value="1716:28-1716:50"/>
-		<constant value="1716:2-1716:50"/>
-		<constant value="1715:2-1716:50"/>
-		<constant value="1714:2-1716:50"/>
-		<constant value="1713:2-1716:50"/>
+		<constant value="1724:34-1724:38"/>
+		<constant value="1724:34-1724:43"/>
+		<constant value="1724:34-1724:59"/>
+		<constant value="1725:39-1725:41"/>
+		<constant value="1725:39-1725:50"/>
+		<constant value="1725:39-1725:56"/>
+		<constant value="1725:39-1725:65"/>
+		<constant value="1725:39-1725:74"/>
+		<constant value="1726:39-1726:41"/>
+		<constant value="1726:39-1726:49"/>
+		<constant value="1726:39-1726:55"/>
+		<constant value="1726:39-1726:64"/>
+		<constant value="1726:39-1726:73"/>
+		<constant value="1727:2-1727:4"/>
+		<constant value="1727:21-1727:23"/>
+		<constant value="1727:2-1727:24"/>
+		<constant value="1727:28-1727:30"/>
+		<constant value="1727:47-1727:49"/>
+		<constant value="1727:28-1727:50"/>
+		<constant value="1727:2-1727:50"/>
+		<constant value="1726:2-1727:50"/>
+		<constant value="1725:2-1727:50"/>
+		<constant value="1724:2-1727:50"/>
 		<constant value="getConnectedImmediate"/>
 		<constant value="J.getConnectors():J"/>
 		<constant value="J.isConnection():J"/>
-		<constant value="1721:2-1721:6"/>
-		<constant value="1721:2-1721:22"/>
-		<constant value="1721:35-1721:36"/>
-		<constant value="1721:35-1721:51"/>
-		<constant value="1721:2-1721:52"/>
-		<constant value="1722:20-1722:21"/>
-		<constant value="1722:20-1722:26"/>
-		<constant value="1721:2-1722:27"/>
-		<constant value="1721:2-1723:17"/>
-		<constant value="1724:19-1724:20"/>
-		<constant value="1724:19-1724:36"/>
-		<constant value="1724:40-1724:44"/>
-		<constant value="1724:40-1724:60"/>
-		<constant value="1724:19-1724:60"/>
-		<constant value="1721:2-1724:61"/>
-		<constant value="1726:2-1726:17"/>
-		<constant value="1726:31-1726:32"/>
-		<constant value="1726:31-1726:38"/>
-		<constant value="1726:31-1726:47"/>
-		<constant value="1726:31-1726:56"/>
-		<constant value="1726:31-1726:61"/>
-		<constant value="1727:22-1727:24"/>
-		<constant value="1727:22-1727:40"/>
-		<constant value="1727:43-1727:44"/>
-		<constant value="1727:43-1727:60"/>
-		<constant value="1727:22-1727:60"/>
-		<constant value="1726:31-1727:61"/>
-		<constant value="1726:2-1727:62"/>
-		<constant value="1726:2-1727:73"/>
-		<constant value="1720:2-1727:73"/>
-		<constant value="connectorsSlots"/>
-		<constant value="getDelegationEnds"/>
-		<constant value="J.isDelegation():J"/>
 		<constant value="1732:2-1732:6"/>
 		<constant value="1732:2-1732:22"/>
 		<constant value="1732:35-1732:36"/>
@@ -3679,107 +3719,140 @@
 		<constant value="1737:2-1738:62"/>
 		<constant value="1737:2-1738:73"/>
 		<constant value="1731:2-1738:73"/>
+		<constant value="connectorsSlots"/>
+		<constant value="getDelegationEnds"/>
+		<constant value="J.isDelegation():J"/>
+		<constant value="1743:2-1743:6"/>
+		<constant value="1743:2-1743:22"/>
+		<constant value="1743:35-1743:36"/>
+		<constant value="1743:35-1743:51"/>
+		<constant value="1743:2-1743:52"/>
+		<constant value="1744:20-1744:21"/>
+		<constant value="1744:20-1744:26"/>
+		<constant value="1743:2-1744:27"/>
+		<constant value="1743:2-1745:17"/>
+		<constant value="1746:19-1746:20"/>
+		<constant value="1746:19-1746:36"/>
+		<constant value="1746:40-1746:44"/>
+		<constant value="1746:40-1746:60"/>
+		<constant value="1746:19-1746:60"/>
+		<constant value="1743:2-1746:61"/>
+		<constant value="1748:2-1748:17"/>
+		<constant value="1748:31-1748:32"/>
+		<constant value="1748:31-1748:38"/>
+		<constant value="1748:31-1748:47"/>
+		<constant value="1748:31-1748:56"/>
+		<constant value="1748:31-1748:61"/>
+		<constant value="1749:22-1749:24"/>
+		<constant value="1749:22-1749:40"/>
+		<constant value="1749:43-1749:44"/>
+		<constant value="1749:43-1749:60"/>
+		<constant value="1749:22-1749:60"/>
+		<constant value="1748:31-1749:61"/>
+		<constant value="1748:2-1749:62"/>
+		<constant value="1748:2-1749:73"/>
+		<constant value="1742:2-1749:73"/>
 		<constant value="getDelegationEndsDownwards"/>
 		<constant value="J.getDelegationEnds():J"/>
-		<constant value="1742:2-1742:6"/>
-		<constant value="1742:2-1742:26"/>
-		<constant value="1742:39-1742:40"/>
-		<constant value="1742:39-1742:64"/>
-		<constant value="1742:81-1742:85"/>
-		<constant value="1742:81-1742:109"/>
-		<constant value="1742:39-1742:110"/>
-		<constant value="1742:2-1742:111"/>
+		<constant value="1753:2-1753:6"/>
+		<constant value="1753:2-1753:26"/>
+		<constant value="1753:39-1753:40"/>
+		<constant value="1753:39-1753:64"/>
+		<constant value="1753:81-1753:85"/>
+		<constant value="1753:81-1753:109"/>
+		<constant value="1753:39-1753:110"/>
+		<constant value="1753:2-1753:111"/>
 		<constant value="getDelegationEndsUpwards"/>
-		<constant value="1746:2-1746:6"/>
-		<constant value="1746:2-1746:26"/>
-		<constant value="1746:39-1746:43"/>
-		<constant value="1746:39-1746:67"/>
-		<constant value="1746:84-1746:85"/>
-		<constant value="1746:84-1746:109"/>
-		<constant value="1746:39-1746:110"/>
-		<constant value="1746:2-1746:111"/>
+		<constant value="1757:2-1757:6"/>
+		<constant value="1757:2-1757:26"/>
+		<constant value="1757:39-1757:43"/>
+		<constant value="1757:39-1757:67"/>
+		<constant value="1757:84-1757:85"/>
+		<constant value="1757:84-1757:109"/>
+		<constant value="1757:39-1757:110"/>
+		<constant value="1757:2-1757:111"/>
 		<constant value="getSBADelegationsDownwards"/>
 		<constant value="J.getDelegationEndsDownwards():J"/>
-		<constant value="1752:41-1752:45"/>
-		<constant value="1752:41-1752:69"/>
-		<constant value="1753:30-1753:34"/>
-		<constant value="1753:30-1753:63"/>
-		<constant value="1754:5-1754:10"/>
-		<constant value="1754:5-1754:20"/>
-		<constant value="1755:3-1755:7"/>
-		<constant value="1755:3-1755:27"/>
-		<constant value="1754:5-1755:27"/>
-		<constant value="1756:3-1756:7"/>
-		<constant value="1756:3-1756:25"/>
-		<constant value="1756:3-1756:35"/>
-		<constant value="1754:5-1756:35"/>
-		<constant value="1760:3-1760:8"/>
-		<constant value="1760:22-1760:23"/>
-		<constant value="1760:22-1760:52"/>
-		<constant value="1760:3-1760:53"/>
-		<constant value="1760:3-1760:64"/>
-		<constant value="1758:7-1758:11"/>
-		<constant value="1758:3-1758:12"/>
-		<constant value="1754:2-1761:7"/>
-		<constant value="1753:2-1761:7"/>
-		<constant value="1752:2-1761:7"/>
+		<constant value="1763:41-1763:45"/>
+		<constant value="1763:41-1763:69"/>
+		<constant value="1764:30-1764:34"/>
+		<constant value="1764:30-1764:63"/>
+		<constant value="1765:5-1765:10"/>
+		<constant value="1765:5-1765:20"/>
+		<constant value="1766:3-1766:7"/>
+		<constant value="1766:3-1766:27"/>
+		<constant value="1765:5-1766:27"/>
+		<constant value="1767:3-1767:7"/>
+		<constant value="1767:3-1767:25"/>
+		<constant value="1767:3-1767:35"/>
+		<constant value="1765:5-1767:35"/>
+		<constant value="1771:3-1771:8"/>
+		<constant value="1771:22-1771:23"/>
+		<constant value="1771:22-1771:52"/>
+		<constant value="1771:3-1771:53"/>
+		<constant value="1771:3-1771:64"/>
+		<constant value="1769:7-1769:11"/>
+		<constant value="1769:3-1769:12"/>
+		<constant value="1765:2-1772:7"/>
+		<constant value="1764:2-1772:7"/>
+		<constant value="1763:2-1772:7"/>
 		<constant value="deleg"/>
 		<constant value="getSBADelegationsUpwards"/>
 		<constant value="J.getDelegationEndsUpwards():J"/>
 		<constant value="21"/>
 		<constant value="J.getSBADelegationsUpwards():J"/>
-		<constant value="1763:41-1763:45"/>
-		<constant value="1763:41-1763:69"/>
-		<constant value="1764:30-1764:34"/>
-		<constant value="1764:30-1764:61"/>
-		<constant value="1765:5-1765:10"/>
-		<constant value="1765:5-1765:20"/>
-		<constant value="1768:3-1768:8"/>
-		<constant value="1768:22-1768:23"/>
-		<constant value="1768:22-1768:50"/>
-		<constant value="1768:3-1768:51"/>
-		<constant value="1768:3-1768:62"/>
-		<constant value="1766:7-1766:11"/>
-		<constant value="1766:3-1766:12"/>
-		<constant value="1765:2-1769:7"/>
-		<constant value="1764:2-1769:7"/>
-		<constant value="1763:2-1769:7"/>
+		<constant value="1774:41-1774:45"/>
+		<constant value="1774:41-1774:69"/>
+		<constant value="1775:30-1775:34"/>
+		<constant value="1775:30-1775:61"/>
+		<constant value="1776:5-1776:10"/>
+		<constant value="1776:5-1776:20"/>
+		<constant value="1779:3-1779:8"/>
+		<constant value="1779:22-1779:23"/>
+		<constant value="1779:22-1779:50"/>
+		<constant value="1779:3-1779:51"/>
+		<constant value="1779:3-1779:62"/>
+		<constant value="1777:7-1777:11"/>
+		<constant value="1777:3-1777:12"/>
+		<constant value="1776:2-1780:7"/>
+		<constant value="1775:2-1780:7"/>
+		<constant value="1774:2-1780:7"/>
 		<constant value="getSBAConnections"/>
 		<constant value="J.getConnectedImmediate():J"/>
-		<constant value="1775:2-1775:6"/>
-		<constant value="1775:2-1775:33"/>
-		<constant value="1776:15-1776:16"/>
-		<constant value="1776:15-1776:40"/>
-		<constant value="1775:2-1776:41"/>
-		<constant value="1775:2-1776:52"/>
-		<constant value="1777:16-1777:18"/>
-		<constant value="1777:16-1777:47"/>
-		<constant value="1775:2-1777:48"/>
-		<constant value="1775:2-1777:59"/>
+		<constant value="1786:2-1786:6"/>
+		<constant value="1786:2-1786:33"/>
+		<constant value="1787:15-1787:16"/>
+		<constant value="1787:15-1787:40"/>
+		<constant value="1786:2-1787:41"/>
+		<constant value="1786:2-1787:52"/>
+		<constant value="1788:16-1788:18"/>
+		<constant value="1788:16-1788:47"/>
+		<constant value="1786:2-1788:48"/>
+		<constant value="1786:2-1788:59"/>
 		<constant value="parseFailureModesForPort"/>
 		<constant value="J.parseFailureModes():J"/>
-		<constant value="1786:34-1786:38"/>
-		<constant value="1786:34-1786:45"/>
-		<constant value="1786:53-1786:56"/>
-		<constant value="1786:34-1786:57"/>
-		<constant value="1787:29-1787:35"/>
-		<constant value="1787:48-1787:49"/>
-		<constant value="1787:48-1787:56"/>
-		<constant value="1787:68-1787:72"/>
-		<constant value="1787:48-1787:73"/>
-		<constant value="1787:29-1787:74"/>
-		<constant value="1787:29-1787:83"/>
-		<constant value="1788:5-1788:16"/>
-		<constant value="1788:19-1788:31"/>
-		<constant value="1788:5-1788:31"/>
-		<constant value="1791:3-1791:14"/>
-		<constant value="1791:3-1791:34"/>
-		<constant value="1789:3-1789:9"/>
-		<constant value="1789:3-1789:18"/>
-		<constant value="1789:3-1789:38"/>
-		<constant value="1788:2-1792:7"/>
-		<constant value="1787:2-1792:7"/>
-		<constant value="1786:2-1792:7"/>
+		<constant value="1797:34-1797:38"/>
+		<constant value="1797:34-1797:45"/>
+		<constant value="1797:53-1797:56"/>
+		<constant value="1797:34-1797:57"/>
+		<constant value="1798:29-1798:35"/>
+		<constant value="1798:48-1798:49"/>
+		<constant value="1798:48-1798:56"/>
+		<constant value="1798:68-1798:72"/>
+		<constant value="1798:48-1798:73"/>
+		<constant value="1798:29-1798:74"/>
+		<constant value="1798:29-1798:83"/>
+		<constant value="1799:5-1799:16"/>
+		<constant value="1799:19-1799:31"/>
+		<constant value="1799:5-1799:31"/>
+		<constant value="1802:3-1802:14"/>
+		<constant value="1802:3-1802:34"/>
+		<constant value="1800:3-1800:9"/>
+		<constant value="1800:3-1800:18"/>
+		<constant value="1800:3-1800:38"/>
+		<constant value="1799:2-1803:7"/>
+		<constant value="1798:2-1803:7"/>
+		<constant value="1797:2-1803:7"/>
 		<constant value="strSelected"/>
 		<constant value="strSeq"/>
 		<constant value="port"/>
@@ -3791,64 +3864,64 @@
 		<constant value=":"/>
 		<constant value="81"/>
 		<constant value="84"/>
-		<constant value="1797:6-1797:10"/>
-		<constant value="1797:19-1797:22"/>
-		<constant value="1797:6-1797:23"/>
-		<constant value="1797:26-1797:27"/>
-		<constant value="1797:6-1797:27"/>
-		<constant value="1800:4-1800:8"/>
-		<constant value="1800:19-1800:23"/>
-		<constant value="1800:32-1800:35"/>
-		<constant value="1800:19-1800:36"/>
-		<constant value="1800:37-1800:38"/>
-		<constant value="1800:19-1800:38"/>
-		<constant value="1800:40-1800:44"/>
-		<constant value="1800:40-1800:51"/>
-		<constant value="1800:4-1800:52"/>
-		<constant value="1800:64-1800:67"/>
-		<constant value="1800:69-1800:72"/>
-		<constant value="1800:4-1800:73"/>
-		<constant value="1800:4-1800:80"/>
-		<constant value="1798:4-1798:8"/>
-		<constant value="1798:4-1798:15"/>
-		<constant value="1797:3-1801:8"/>
-		<constant value="1803:69-1803:78"/>
-		<constant value="1803:64-1803:78"/>
-		<constant value="1803:84-1803:87"/>
-		<constant value="1803:80-1803:87"/>
-		<constant value="1803:58-1803:88"/>
-		<constant value="1803:54-1803:89"/>
-		<constant value="1804:5-1804:8"/>
-		<constant value="1804:5-1804:15"/>
-		<constant value="1804:18-1804:19"/>
-		<constant value="1804:5-1804:19"/>
-		<constant value="1808:3-1808:6"/>
-		<constant value="1808:13-1808:16"/>
-		<constant value="1808:3-1808:17"/>
-		<constant value="1808:31-1808:32"/>
-		<constant value="1808:39-1808:42"/>
-		<constant value="1808:31-1808:43"/>
-		<constant value="1808:3-1808:44"/>
-		<constant value="1809:29-1809:32"/>
-		<constant value="1809:29-1809:41"/>
-		<constant value="1809:29-1809:48"/>
-		<constant value="1809:24-1809:48"/>
-		<constant value="1809:54-1809:57"/>
-		<constant value="1809:54-1809:64"/>
-		<constant value="1809:54-1809:73"/>
-		<constant value="1809:50-1809:73"/>
-		<constant value="1809:18-1809:74"/>
-		<constant value="1808:3-1809:75"/>
-		<constant value="1811:6-1811:9"/>
-		<constant value="1811:6-1811:20"/>
-		<constant value="1814:4-1814:7"/>
-		<constant value="1812:4-1812:11"/>
-		<constant value="1811:3-1815:7"/>
-		<constant value="1807:3-1815:7"/>
-		<constant value="1805:3-1805:10"/>
-		<constant value="1804:2-1815:13"/>
-		<constant value="1803:2-1815:13"/>
-		<constant value="1796:2-1815:13"/>
+		<constant value="1808:6-1808:10"/>
+		<constant value="1808:19-1808:22"/>
+		<constant value="1808:6-1808:23"/>
+		<constant value="1808:26-1808:27"/>
+		<constant value="1808:6-1808:27"/>
+		<constant value="1811:4-1811:8"/>
+		<constant value="1811:19-1811:23"/>
+		<constant value="1811:32-1811:35"/>
+		<constant value="1811:19-1811:36"/>
+		<constant value="1811:37-1811:38"/>
+		<constant value="1811:19-1811:38"/>
+		<constant value="1811:40-1811:44"/>
+		<constant value="1811:40-1811:51"/>
+		<constant value="1811:4-1811:52"/>
+		<constant value="1811:64-1811:67"/>
+		<constant value="1811:69-1811:72"/>
+		<constant value="1811:4-1811:73"/>
+		<constant value="1811:4-1811:80"/>
+		<constant value="1809:4-1809:8"/>
+		<constant value="1809:4-1809:15"/>
+		<constant value="1808:3-1812:8"/>
+		<constant value="1814:69-1814:78"/>
+		<constant value="1814:64-1814:78"/>
+		<constant value="1814:84-1814:87"/>
+		<constant value="1814:80-1814:87"/>
+		<constant value="1814:58-1814:88"/>
+		<constant value="1814:54-1814:89"/>
+		<constant value="1815:5-1815:8"/>
+		<constant value="1815:5-1815:15"/>
+		<constant value="1815:18-1815:19"/>
+		<constant value="1815:5-1815:19"/>
+		<constant value="1819:3-1819:6"/>
+		<constant value="1819:13-1819:16"/>
+		<constant value="1819:3-1819:17"/>
+		<constant value="1819:31-1819:32"/>
+		<constant value="1819:39-1819:42"/>
+		<constant value="1819:31-1819:43"/>
+		<constant value="1819:3-1819:44"/>
+		<constant value="1820:29-1820:32"/>
+		<constant value="1820:29-1820:41"/>
+		<constant value="1820:29-1820:48"/>
+		<constant value="1820:24-1820:48"/>
+		<constant value="1820:54-1820:57"/>
+		<constant value="1820:54-1820:64"/>
+		<constant value="1820:54-1820:73"/>
+		<constant value="1820:50-1820:73"/>
+		<constant value="1820:18-1820:74"/>
+		<constant value="1819:3-1820:75"/>
+		<constant value="1822:6-1822:9"/>
+		<constant value="1822:6-1822:20"/>
+		<constant value="1825:4-1825:7"/>
+		<constant value="1823:4-1823:11"/>
+		<constant value="1822:3-1826:7"/>
+		<constant value="1818:3-1826:7"/>
+		<constant value="1816:3-1816:10"/>
+		<constant value="1815:2-1826:13"/>
+		<constant value="1814:2-1826:13"/>
+		<constant value="1807:2-1826:13"/>
 		<constant value="seq"/>
 		<constant value="ret"/>
 		<constant value="default"/>
@@ -3857,181 +3930,181 @@
 		<constant value="J.toUpper():J"/>
 		<constant value="error"/>
 		<constant value="23"/>
-		<constant value="1823:5-1823:9"/>
-		<constant value="1823:5-1823:17"/>
-		<constant value="1823:29-1823:42"/>
-		<constant value="1823:5-1823:43"/>
-		<constant value="1824:10-1824:14"/>
-		<constant value="1824:10-1824:22"/>
-		<constant value="1824:34-1824:48"/>
-		<constant value="1824:10-1824:49"/>
-		<constant value="1825:10-1825:14"/>
-		<constant value="1825:10-1825:22"/>
-		<constant value="1825:10-1825:32"/>
-		<constant value="1825:44-1825:49"/>
-		<constant value="1825:10-1825:50"/>
-		<constant value="1826:7-1826:14"/>
-		<constant value="1825:56-1825:61"/>
-		<constant value="1825:7-1827:7"/>
-		<constant value="1824:55-1824:69"/>
-		<constant value="1824:7-1827:13"/>
-		<constant value="1823:49-1823:62"/>
-		<constant value="1823:2-1827:19"/>
+		<constant value="1834:5-1834:9"/>
+		<constant value="1834:5-1834:17"/>
+		<constant value="1834:29-1834:42"/>
+		<constant value="1834:5-1834:43"/>
+		<constant value="1835:10-1835:14"/>
+		<constant value="1835:10-1835:22"/>
+		<constant value="1835:34-1835:48"/>
+		<constant value="1835:10-1835:49"/>
+		<constant value="1836:10-1836:14"/>
+		<constant value="1836:10-1836:22"/>
+		<constant value="1836:10-1836:32"/>
+		<constant value="1836:44-1836:49"/>
+		<constant value="1836:10-1836:50"/>
+		<constant value="1837:7-1837:14"/>
+		<constant value="1836:56-1836:61"/>
+		<constant value="1836:7-1838:7"/>
+		<constant value="1835:55-1835:69"/>
+		<constant value="1835:7-1838:13"/>
+		<constant value="1834:49-1834:62"/>
+		<constant value="1834:2-1838:19"/>
 		<constant value="toString"/>
 		<constant value="MIM!FaultsExpressionFaultNode;"/>
-		<constant value="1832:71-1832:75"/>
-		<constant value="1832:71-1832:81"/>
-		<constant value="1832:71-1832:86"/>
+		<constant value="1843:71-1843:75"/>
+		<constant value="1843:71-1843:81"/>
+		<constant value="1843:71-1843:86"/>
 		<constant value="MIM!FaultsExpressionOrNode;"/>
 		<constant value=" OR "/>
-		<constant value="1833:68-1833:71"/>
-		<constant value="1833:74-1833:78"/>
-		<constant value="1833:74-1833:96"/>
-		<constant value="1833:74-1833:107"/>
-		<constant value="1833:68-1833:107"/>
-		<constant value="1833:110-1833:116"/>
-		<constant value="1833:68-1833:116"/>
-		<constant value="1833:119-1833:123"/>
-		<constant value="1833:119-1833:141"/>
-		<constant value="1833:119-1833:152"/>
-		<constant value="1833:68-1833:152"/>
-		<constant value="1833:155-1833:158"/>
-		<constant value="1833:68-1833:158"/>
+		<constant value="1844:68-1844:71"/>
+		<constant value="1844:74-1844:78"/>
+		<constant value="1844:74-1844:96"/>
+		<constant value="1844:74-1844:107"/>
+		<constant value="1844:68-1844:107"/>
+		<constant value="1844:110-1844:116"/>
+		<constant value="1844:68-1844:116"/>
+		<constant value="1844:119-1844:123"/>
+		<constant value="1844:119-1844:141"/>
+		<constant value="1844:119-1844:152"/>
+		<constant value="1844:68-1844:152"/>
+		<constant value="1844:155-1844:158"/>
+		<constant value="1844:68-1844:158"/>
 		<constant value="MIM!FaultsExpressionAndNode;"/>
 		<constant value=" AND "/>
-		<constant value="1834:70-1834:73"/>
-		<constant value="1834:76-1834:80"/>
-		<constant value="1834:76-1834:98"/>
-		<constant value="1834:76-1834:109"/>
-		<constant value="1834:70-1834:109"/>
-		<constant value="1834:112-1834:119"/>
-		<constant value="1834:70-1834:119"/>
-		<constant value="1834:122-1834:126"/>
-		<constant value="1834:122-1834:144"/>
-		<constant value="1834:122-1834:155"/>
-		<constant value="1834:70-1834:155"/>
-		<constant value="1834:158-1834:161"/>
-		<constant value="1834:70-1834:161"/>
+		<constant value="1845:70-1845:73"/>
+		<constant value="1845:76-1845:80"/>
+		<constant value="1845:76-1845:98"/>
+		<constant value="1845:76-1845:109"/>
+		<constant value="1845:70-1845:109"/>
+		<constant value="1845:112-1845:119"/>
+		<constant value="1845:70-1845:119"/>
+		<constant value="1845:122-1845:126"/>
+		<constant value="1845:122-1845:144"/>
+		<constant value="1845:122-1845:155"/>
+		<constant value="1845:70-1845:155"/>
+		<constant value="1845:158-1845:161"/>
+		<constant value="1845:70-1845:161"/>
 		<constant value="MIM!FaultsExpressionNotNode;"/>
 		<constant value="(NOT "/>
-		<constant value="1835:70-1835:77"/>
-		<constant value="1835:80-1835:84"/>
-		<constant value="1835:80-1835:101"/>
-		<constant value="1835:80-1835:112"/>
-		<constant value="1835:70-1835:112"/>
-		<constant value="1835:115-1835:118"/>
-		<constant value="1835:70-1835:118"/>
+		<constant value="1846:70-1846:77"/>
+		<constant value="1846:80-1846:84"/>
+		<constant value="1846:80-1846:101"/>
+		<constant value="1846:80-1846:112"/>
+		<constant value="1846:70-1846:112"/>
+		<constant value="1846:115-1846:118"/>
+		<constant value="1846:70-1846:118"/>
 		<constant value="faultsList"/>
 		<constant value="MIM!FaultsExpressionNode;"/>
-		<constant value="1839:5-1839:9"/>
-		<constant value="1839:22-1839:50"/>
-		<constant value="1839:5-1839:51"/>
-		<constant value="1842:10-1842:14"/>
-		<constant value="1842:27-1842:53"/>
-		<constant value="1842:10-1842:54"/>
-		<constant value="1845:10-1845:14"/>
-		<constant value="1845:27-1845:53"/>
-		<constant value="1845:10-1845:54"/>
-		<constant value="1848:10-1848:14"/>
-		<constant value="1848:27-1848:52"/>
-		<constant value="1848:10-1848:53"/>
-		<constant value="1852:3-1852:13"/>
-		<constant value="1849:42-1849:46"/>
-		<constant value="1850:3-1850:7"/>
-		<constant value="1850:3-1850:25"/>
-		<constant value="1850:3-1850:38"/>
-		<constant value="1850:46-1850:50"/>
-		<constant value="1850:46-1850:68"/>
-		<constant value="1850:46-1850:81"/>
-		<constant value="1850:3-1850:82"/>
-		<constant value="1849:3-1850:82"/>
-		<constant value="1848:7-1853:7"/>
-		<constant value="1846:43-1846:47"/>
-		<constant value="1847:3-1847:7"/>
-		<constant value="1847:3-1847:25"/>
-		<constant value="1847:3-1847:38"/>
-		<constant value="1847:46-1847:50"/>
-		<constant value="1847:46-1847:68"/>
-		<constant value="1847:46-1847:81"/>
-		<constant value="1847:3-1847:82"/>
-		<constant value="1846:3-1847:82"/>
-		<constant value="1845:7-1853:13"/>
-		<constant value="1843:43-1843:47"/>
-		<constant value="1844:3-1844:7"/>
-		<constant value="1844:3-1844:24"/>
-		<constant value="1844:3-1844:37"/>
-		<constant value="1843:3-1844:37"/>
-		<constant value="1842:7-1853:19"/>
-		<constant value="1840:45-1840:49"/>
-		<constant value="1841:12-1841:16"/>
-		<constant value="1841:12-1841:22"/>
-		<constant value="1841:3-1841:23"/>
-		<constant value="1840:3-1841:23"/>
-		<constant value="1839:2-1853:25"/>
+		<constant value="1850:5-1850:9"/>
+		<constant value="1850:22-1850:50"/>
+		<constant value="1850:5-1850:51"/>
+		<constant value="1853:10-1853:14"/>
+		<constant value="1853:27-1853:53"/>
+		<constant value="1853:10-1853:54"/>
+		<constant value="1856:10-1856:14"/>
+		<constant value="1856:27-1856:53"/>
+		<constant value="1856:10-1856:54"/>
+		<constant value="1859:10-1859:14"/>
+		<constant value="1859:27-1859:52"/>
+		<constant value="1859:10-1859:53"/>
+		<constant value="1863:3-1863:13"/>
+		<constant value="1860:42-1860:46"/>
+		<constant value="1861:3-1861:7"/>
+		<constant value="1861:3-1861:25"/>
+		<constant value="1861:3-1861:38"/>
+		<constant value="1861:46-1861:50"/>
+		<constant value="1861:46-1861:68"/>
+		<constant value="1861:46-1861:81"/>
+		<constant value="1861:3-1861:82"/>
+		<constant value="1860:3-1861:82"/>
+		<constant value="1859:7-1864:7"/>
+		<constant value="1857:43-1857:47"/>
+		<constant value="1858:3-1858:7"/>
+		<constant value="1858:3-1858:25"/>
+		<constant value="1858:3-1858:38"/>
+		<constant value="1858:46-1858:50"/>
+		<constant value="1858:46-1858:68"/>
+		<constant value="1858:46-1858:81"/>
+		<constant value="1858:3-1858:82"/>
+		<constant value="1857:3-1858:82"/>
+		<constant value="1856:7-1864:13"/>
+		<constant value="1854:43-1854:47"/>
+		<constant value="1855:3-1855:7"/>
+		<constant value="1855:3-1855:24"/>
+		<constant value="1855:3-1855:37"/>
+		<constant value="1854:3-1855:37"/>
+		<constant value="1853:7-1864:19"/>
+		<constant value="1851:45-1851:49"/>
+		<constant value="1852:12-1852:16"/>
+		<constant value="1852:12-1852:22"/>
+		<constant value="1852:3-1852:23"/>
+		<constant value="1851:3-1852:23"/>
+		<constant value="1850:2-1864:25"/>
 		<constant value="fexp"/>
 		<constant value="MIM!ErrorsExpressionErrorNode;"/>
-		<constant value="1855:71-1855:75"/>
-		<constant value="1855:71-1855:81"/>
-		<constant value="1855:71-1855:86"/>
+		<constant value="1866:71-1866:75"/>
+		<constant value="1866:71-1866:81"/>
+		<constant value="1866:71-1866:86"/>
 		<constant value="MIM!ErrorsExpressionOrNode;"/>
 		<constant value="ErrorsExpression1"/>
 		<constant value="ErrorsExpression2"/>
-		<constant value="1856:68-1856:71"/>
-		<constant value="1856:74-1856:78"/>
-		<constant value="1856:74-1856:96"/>
-		<constant value="1856:74-1856:107"/>
-		<constant value="1856:68-1856:107"/>
-		<constant value="1856:110-1856:116"/>
-		<constant value="1856:68-1856:116"/>
-		<constant value="1856:119-1856:123"/>
-		<constant value="1856:119-1856:141"/>
-		<constant value="1856:119-1856:152"/>
-		<constant value="1856:68-1856:152"/>
-		<constant value="1856:155-1856:158"/>
-		<constant value="1856:68-1856:158"/>
+		<constant value="1867:68-1867:71"/>
+		<constant value="1867:74-1867:78"/>
+		<constant value="1867:74-1867:96"/>
+		<constant value="1867:74-1867:107"/>
+		<constant value="1867:68-1867:107"/>
+		<constant value="1867:110-1867:116"/>
+		<constant value="1867:68-1867:116"/>
+		<constant value="1867:119-1867:123"/>
+		<constant value="1867:119-1867:141"/>
+		<constant value="1867:119-1867:152"/>
+		<constant value="1867:68-1867:152"/>
+		<constant value="1867:155-1867:158"/>
+		<constant value="1867:68-1867:158"/>
 		<constant value="MCHESS!SimpleStochasticBehavior;"/>
 		<constant value="&lt;&lt;SimpleStochasticBehavior&gt;&gt;("/>
 		<constant value=", "/>
-		<constant value="1862:2-1862:33"/>
-		<constant value="1862:36-1862:40"/>
-		<constant value="1862:36-1862:58"/>
-		<constant value="1862:2-1862:58"/>
-		<constant value="1862:61-1862:65"/>
-		<constant value="1862:2-1862:65"/>
-		<constant value="1862:68-1862:72"/>
-		<constant value="1862:68-1862:84"/>
-		<constant value="1862:2-1862:84"/>
-		<constant value="1862:87-1862:91"/>
-		<constant value="1862:2-1862:91"/>
-		<constant value="1862:94-1862:98"/>
-		<constant value="1862:94-1862:123"/>
-		<constant value="1862:2-1862:123"/>
-		<constant value="1862:126-1862:129"/>
-		<constant value="1862:2-1862:129"/>
+		<constant value="1873:2-1873:33"/>
+		<constant value="1873:36-1873:40"/>
+		<constant value="1873:36-1873:58"/>
+		<constant value="1873:2-1873:58"/>
+		<constant value="1873:61-1873:65"/>
+		<constant value="1873:2-1873:65"/>
+		<constant value="1873:68-1873:72"/>
+		<constant value="1873:68-1873:84"/>
+		<constant value="1873:2-1873:84"/>
+		<constant value="1873:87-1873:91"/>
+		<constant value="1873:2-1873:91"/>
+		<constant value="1873:94-1873:98"/>
+		<constant value="1873:94-1873:123"/>
+		<constant value="1873:2-1873:123"/>
+		<constant value="1873:126-1873:129"/>
+		<constant value="1873:2-1873:129"/>
 		<constant value="MCHESS!FLABehavior;"/>
 		<constant value="&lt;&lt;FLABehavior&gt;&gt;("/>
-		<constant value="1863:61-1863:79"/>
-		<constant value="1863:82-1863:86"/>
-		<constant value="1863:82-1863:91"/>
-		<constant value="1863:61-1863:91"/>
-		<constant value="1863:94-1863:97"/>
-		<constant value="1863:61-1863:97"/>
+		<constant value="1874:61-1874:79"/>
+		<constant value="1874:82-1874:86"/>
+		<constant value="1874:82-1874:91"/>
+		<constant value="1874:61-1874:91"/>
+		<constant value="1874:94-1874:97"/>
+		<constant value="1874:61-1874:97"/>
 		<constant value="MCHESS!ErrorModelBehavior;"/>
 		<constant value="&lt;&lt;ErrorModelBehavior&gt;&gt;("/>
-		<constant value="1864:68-1864:93"/>
-		<constant value="1864:96-1864:100"/>
-		<constant value="1864:96-1864:111"/>
-		<constant value="1864:68-1864:111"/>
-		<constant value="1864:114-1864:117"/>
-		<constant value="1864:68-1864:117"/>
+		<constant value="1875:68-1875:93"/>
+		<constant value="1875:96-1875:100"/>
+		<constant value="1875:96-1875:111"/>
+		<constant value="1875:68-1875:111"/>
+		<constant value="1875:114-1875:117"/>
+		<constant value="1875:68-1875:117"/>
 		<constant value="MCHESS!ErrorModel;"/>
 		<constant value="&lt;&lt;ErrorModel&gt;&gt;("/>
-		<constant value="1865:60-1865:77"/>
-		<constant value="1865:80-1865:84"/>
-		<constant value="1865:80-1865:102"/>
-		<constant value="1865:60-1865:102"/>
-		<constant value="1865:105-1865:108"/>
-		<constant value="1865:60-1865:108"/>
+		<constant value="1876:60-1876:77"/>
+		<constant value="1876:80-1876:84"/>
+		<constant value="1876:80-1876:102"/>
+		<constant value="1876:60-1876:102"/>
+		<constant value="1876:105-1876:108"/>
+		<constant value="1876:60-1876:108"/>
 	</cp>
 	<field name="1" type="2"/>
 	<field name="3" type="4"/>
@@ -5293,31 +5366,61 @@
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
+			<push arg="32"/>
+			<push arg="26"/>
+			<new/>
 			<load arg="105"/>
 			<call arg="509"/>
 			<iterate/>
 			<store arg="191"/>
 			<load arg="191"/>
-			<call arg="510"/>
+			<get arg="510"/>
+			<call arg="36"/>
+			<enditerate/>
+			<push arg="32"/>
+			<push arg="26"/>
+			<new/>
+			<load arg="105"/>
+			<get arg="214"/>
+			<call arg="141"/>
+			<get arg="511"/>
+			<iterate/>
+			<store arg="191"/>
+			<load arg="191"/>
+			<push arg="512"/>
+			<push arg="60"/>
+			<findme/>
+			<call arg="513"/>
 			<call arg="196"/>
-			<if arg="511"/>
+			<if arg="514"/>
 			<load arg="191"/>
 			<call arg="36"/>
 			<enditerate/>
+			<call arg="199"/>
+			<iterate/>
+			<store arg="191"/>
+			<load arg="191"/>
+			<call arg="515"/>
+			<call arg="196"/>
+			<if arg="516"/>
+			<load arg="191"/>
+			<call arg="36"/>
+			<enditerate/>
+			<call arg="203"/>
 			<iterate/>
 			<store arg="191"/>
 			<load arg="495"/>
 			<load arg="191"/>
 			<get arg="61"/>
-			<call arg="512"/>
+			<call arg="517"/>
 			<store arg="207"/>
 			<getasm/>
-			<push arg="513"/>
+			<push arg="518"/>
 			<load arg="191"/>
 			<get arg="61"/>
 			<call arg="500"/>
 			<load arg="114"/>
-			<call arg="514"/>
+			<call arg="519"/>
 			<store arg="210"/>
 			<load arg="496"/>
 			<load arg="210"/>
@@ -5325,26 +5428,26 @@
 			<store arg="496"/>
 			<load arg="207"/>
 			<iterate/>
-			<store arg="515"/>
+			<store arg="520"/>
 			<getasm/>
 			<load arg="210"/>
 			<getasm/>
 			<load arg="191"/>
 			<get arg="61"/>
-			<push arg="516"/>
+			<push arg="521"/>
 			<call arg="500"/>
-			<load arg="515"/>
-			<get arg="517"/>
+			<load arg="520"/>
+			<get arg="522"/>
 			<call arg="500"/>
 			<load arg="114"/>
-			<call arg="518"/>
+			<call arg="523"/>
 			<getasm/>
 			<pushi arg="505"/>
 			<call arg="506"/>
 			<pushi arg="105"/>
-			<load arg="515"/>
-			<get arg="519"/>
-			<pcall arg="520"/>
+			<load arg="520"/>
+			<get arg="524"/>
+			<pcall arg="525"/>
 			<enditerate/>
 			<enditerate/>
 			<getasm/>
@@ -5359,177 +5462,207 @@
 			<call arg="506"/>
 			<pushi arg="105"/>
 			<pushi arg="105"/>
-			<call arg="521"/>
+			<call arg="526"/>
 			<store arg="497"/>
 			<load arg="497"/>
 			<getasm/>
 			<load arg="498"/>
-			<call arg="522"/>
+			<call arg="527"/>
 			<set arg="256"/>
 			<load arg="497"/>
 			<load arg="497"/>
 			<get arg="256"/>
-			<call arg="523"/>
-			<set arg="524"/>
+			<call arg="528"/>
+			<set arg="529"/>
 			<load arg="114"/>
-			<get arg="525"/>
+			<get arg="530"/>
 			<load arg="114"/>
-			<get arg="525"/>
+			<get arg="530"/>
 			<load arg="497"/>
 			<call arg="232"/>
 			<pcall arg="145"/>
 			<load arg="200"/>
-			<get arg="526"/>
+			<get arg="531"/>
 			<call arg="493"/>
 			<call arg="217"/>
-			<if arg="527"/>
-			<goto arg="528"/>
+			<if arg="532"/>
+			<goto arg="533"/>
+			<load arg="200"/>
+			<get arg="531"/>
+			<call arg="534"/>
+			<call arg="535"/>
+			<pushi arg="505"/>
+			<call arg="536"/>
+			<if arg="537"/>
+			<goto arg="533"/>
 			<getasm/>
 			<load arg="105"/>
-			<pcall arg="529"/>
+			<pcall arg="538"/>
 		</code>
 		<linenumbertable>
-			<lne id="530" begin="0" end="0"/>
-			<lne id="531" begin="1" end="1"/>
-			<lne id="532" begin="0" end="2"/>
-			<lne id="533" begin="4" end="4"/>
-			<lne id="534" begin="4" end="5"/>
-			<lne id="535" begin="7" end="10"/>
-			<lne id="536" begin="12" end="15"/>
-			<lne id="537" begin="17" end="20"/>
-			<lne id="538" begin="22" end="22"/>
-			<lne id="539" begin="22" end="23"/>
-			<lne id="540" begin="22" end="24"/>
-			<lne id="541" begin="26" end="26"/>
-			<lne id="542" begin="26" end="27"/>
-			<lne id="543" begin="29" end="29"/>
-			<lne id="544" begin="22" end="29"/>
-			<lne id="545" begin="31" end="33"/>
-			<lne id="546" begin="35" end="38"/>
-			<lne id="547" begin="47" end="47"/>
-			<lne id="548" begin="45" end="49"/>
-			<lne id="549" begin="52" end="52"/>
-			<lne id="550" begin="52" end="53"/>
-			<lne id="551" begin="54" end="54"/>
-			<lne id="552" begin="52" end="55"/>
-			<lne id="553" begin="50" end="57"/>
-			<lne id="554" begin="60" end="60"/>
-			<lne id="555" begin="58" end="62"/>
-			<lne id="556" begin="65" end="65"/>
-			<lne id="557" begin="65" end="66"/>
-			<lne id="558" begin="65" end="67"/>
-			<lne id="559" begin="63" end="69"/>
-			<lne id="560" begin="72" end="72"/>
-			<lne id="561" begin="73" end="73"/>
-			<lne id="562" begin="72" end="74"/>
-			<lne id="563" begin="70" end="76"/>
-			<lne id="564" begin="78" end="78"/>
-			<lne id="565" begin="78" end="79"/>
-			<lne id="566" begin="80" end="80"/>
-			<lne id="567" begin="80" end="81"/>
-			<lne id="568" begin="82" end="82"/>
-			<lne id="569" begin="80" end="83"/>
-			<lne id="570" begin="78" end="84"/>
-			<lne id="571" begin="88" end="88"/>
-			<lne id="572" begin="88" end="89"/>
-			<lne id="573" begin="92" end="92"/>
-			<lne id="574" begin="92" end="93"/>
-			<lne id="575" begin="85" end="98"/>
-			<lne id="576" begin="101" end="101"/>
-			<lne id="577" begin="102" end="102"/>
-			<lne id="578" begin="102" end="103"/>
-			<lne id="579" begin="101" end="104"/>
-			<lne id="580" begin="101" end="105"/>
-			<lne id="581" begin="106" end="106"/>
-			<lne id="582" begin="107" end="107"/>
-			<lne id="583" begin="108" end="108"/>
-			<lne id="584" begin="108" end="109"/>
-			<lne id="585" begin="107" end="110"/>
-			<lne id="586" begin="111" end="111"/>
-			<lne id="587" begin="106" end="112"/>
-			<lne id="588" begin="106" end="113"/>
-			<lne id="589" begin="114" end="114"/>
-			<lne id="590" begin="115" end="115"/>
-			<lne id="591" begin="114" end="116"/>
-			<lne id="592" begin="114" end="117"/>
-			<lne id="593" begin="118" end="118"/>
+			<lne id="539" begin="0" end="0"/>
+			<lne id="540" begin="1" end="1"/>
+			<lne id="541" begin="0" end="2"/>
+			<lne id="542" begin="4" end="4"/>
+			<lne id="543" begin="4" end="5"/>
+			<lne id="544" begin="7" end="10"/>
+			<lne id="545" begin="12" end="15"/>
+			<lne id="546" begin="17" end="20"/>
+			<lne id="547" begin="22" end="22"/>
+			<lne id="548" begin="22" end="23"/>
+			<lne id="549" begin="22" end="24"/>
+			<lne id="550" begin="26" end="26"/>
+			<lne id="551" begin="26" end="27"/>
+			<lne id="552" begin="29" end="29"/>
+			<lne id="553" begin="22" end="29"/>
+			<lne id="554" begin="31" end="33"/>
+			<lne id="555" begin="35" end="38"/>
+			<lne id="556" begin="47" end="47"/>
+			<lne id="557" begin="45" end="49"/>
+			<lne id="558" begin="52" end="52"/>
+			<lne id="559" begin="52" end="53"/>
+			<lne id="560" begin="54" end="54"/>
+			<lne id="561" begin="52" end="55"/>
+			<lne id="562" begin="50" end="57"/>
+			<lne id="563" begin="60" end="60"/>
+			<lne id="564" begin="58" end="62"/>
+			<lne id="565" begin="65" end="65"/>
+			<lne id="566" begin="65" end="66"/>
+			<lne id="567" begin="65" end="67"/>
+			<lne id="568" begin="63" end="69"/>
+			<lne id="569" begin="72" end="72"/>
+			<lne id="570" begin="73" end="73"/>
+			<lne id="571" begin="72" end="74"/>
+			<lne id="572" begin="70" end="76"/>
+			<lne id="573" begin="78" end="78"/>
+			<lne id="574" begin="78" end="79"/>
+			<lne id="575" begin="80" end="80"/>
+			<lne id="576" begin="80" end="81"/>
+			<lne id="577" begin="82" end="82"/>
+			<lne id="578" begin="80" end="83"/>
+			<lne id="579" begin="78" end="84"/>
+			<lne id="580" begin="91" end="91"/>
+			<lne id="581" begin="91" end="92"/>
+			<lne id="582" begin="95" end="95"/>
+			<lne id="583" begin="95" end="96"/>
+			<lne id="584" begin="88" end="98"/>
+			<lne id="585" begin="102" end="102"/>
+			<lne id="586" begin="102" end="103"/>
+			<lne id="587" begin="102" end="104"/>
+			<lne id="588" begin="102" end="105"/>
+			<lne id="589" begin="108" end="108"/>
+			<lne id="590" begin="109" end="111"/>
+			<lne id="591" begin="108" end="112"/>
+			<lne id="592" begin="99" end="117"/>
+			<lne id="593" begin="88" end="118"/>
 			<lne id="594" begin="121" end="121"/>
-			<lne id="595" begin="122" end="122"/>
-			<lne id="596" begin="123" end="123"/>
-			<lne id="597" begin="124" end="124"/>
-			<lne id="598" begin="124" end="125"/>
-			<lne id="599" begin="126" end="126"/>
-			<lne id="600" begin="124" end="127"/>
-			<lne id="601" begin="128" end="128"/>
-			<lne id="602" begin="128" end="129"/>
-			<lne id="603" begin="124" end="130"/>
-			<lne id="604" begin="131" end="131"/>
-			<lne id="605" begin="123" end="132"/>
-			<lne id="606" begin="133" end="133"/>
-			<lne id="607" begin="134" end="134"/>
-			<lne id="608" begin="133" end="135"/>
-			<lne id="609" begin="136" end="136"/>
-			<lne id="610" begin="137" end="137"/>
-			<lne id="611" begin="137" end="138"/>
-			<lne id="612" begin="121" end="139"/>
-			<lne id="613" begin="118" end="140"/>
-			<lne id="614" begin="85" end="141"/>
-			<lne id="615" begin="142" end="142"/>
-			<lne id="616" begin="146" end="146"/>
-			<lne id="617" begin="143" end="147"/>
-			<lne id="618" begin="148" end="148"/>
-			<lne id="619" begin="149" end="149"/>
-			<lne id="620" begin="150" end="150"/>
-			<lne id="621" begin="149" end="151"/>
-			<lne id="622" begin="152" end="152"/>
-			<lne id="623" begin="153" end="153"/>
-			<lne id="624" begin="142" end="154"/>
-			<lne id="625" begin="142" end="155"/>
-			<lne id="626" begin="156" end="156"/>
-			<lne id="627" begin="157" end="157"/>
-			<lne id="628" begin="158" end="158"/>
-			<lne id="629" begin="157" end="159"/>
-			<lne id="630" begin="156" end="160"/>
-			<lne id="631" begin="161" end="161"/>
-			<lne id="632" begin="162" end="162"/>
-			<lne id="633" begin="162" end="163"/>
-			<lne id="634" begin="162" end="164"/>
-			<lne id="635" begin="161" end="165"/>
-			<lne id="636" begin="166" end="166"/>
-			<lne id="637" begin="166" end="167"/>
-			<lne id="638" begin="168" end="168"/>
-			<lne id="639" begin="168" end="169"/>
-			<lne id="640" begin="170" end="170"/>
-			<lne id="641" begin="168" end="171"/>
-			<lne id="642" begin="166" end="172"/>
-			<lne id="643" begin="173" end="173"/>
-			<lne id="644" begin="173" end="174"/>
-			<lne id="645" begin="173" end="175"/>
-			<lne id="646" begin="173" end="176"/>
-			<lne id="647" begin="179" end="179"/>
-			<lne id="648" begin="180" end="180"/>
-			<lne id="649" begin="179" end="181"/>
-			<lne id="650" begin="173" end="181"/>
-			<lne id="651" begin="78" end="181"/>
+			<lne id="595" begin="121" end="122"/>
+			<lne id="596" begin="85" end="127"/>
+			<lne id="597" begin="85" end="128"/>
+			<lne id="598" begin="131" end="131"/>
+			<lne id="599" begin="132" end="132"/>
+			<lne id="600" begin="132" end="133"/>
+			<lne id="601" begin="131" end="134"/>
+			<lne id="602" begin="131" end="135"/>
+			<lne id="603" begin="136" end="136"/>
+			<lne id="604" begin="137" end="137"/>
+			<lne id="605" begin="138" end="138"/>
+			<lne id="606" begin="138" end="139"/>
+			<lne id="607" begin="137" end="140"/>
+			<lne id="608" begin="141" end="141"/>
+			<lne id="609" begin="136" end="142"/>
+			<lne id="610" begin="136" end="143"/>
+			<lne id="611" begin="144" end="144"/>
+			<lne id="612" begin="145" end="145"/>
+			<lne id="613" begin="144" end="146"/>
+			<lne id="614" begin="144" end="147"/>
+			<lne id="615" begin="148" end="148"/>
+			<lne id="616" begin="151" end="151"/>
+			<lne id="617" begin="152" end="152"/>
+			<lne id="618" begin="153" end="153"/>
+			<lne id="619" begin="154" end="154"/>
+			<lne id="620" begin="154" end="155"/>
+			<lne id="621" begin="156" end="156"/>
+			<lne id="622" begin="154" end="157"/>
+			<lne id="623" begin="158" end="158"/>
+			<lne id="624" begin="158" end="159"/>
+			<lne id="625" begin="154" end="160"/>
+			<lne id="626" begin="161" end="161"/>
+			<lne id="627" begin="153" end="162"/>
+			<lne id="628" begin="163" end="163"/>
+			<lne id="629" begin="164" end="164"/>
+			<lne id="630" begin="163" end="165"/>
+			<lne id="631" begin="166" end="166"/>
+			<lne id="632" begin="167" end="167"/>
+			<lne id="633" begin="167" end="168"/>
+			<lne id="634" begin="151" end="169"/>
+			<lne id="635" begin="148" end="170"/>
+			<lne id="636" begin="85" end="171"/>
+			<lne id="637" begin="172" end="172"/>
+			<lne id="638" begin="176" end="176"/>
+			<lne id="639" begin="173" end="177"/>
+			<lne id="640" begin="178" end="178"/>
+			<lne id="641" begin="179" end="179"/>
+			<lne id="642" begin="180" end="180"/>
+			<lne id="643" begin="179" end="181"/>
+			<lne id="644" begin="182" end="182"/>
+			<lne id="645" begin="183" end="183"/>
+			<lne id="646" begin="172" end="184"/>
+			<lne id="647" begin="172" end="185"/>
+			<lne id="648" begin="186" end="186"/>
+			<lne id="649" begin="187" end="187"/>
+			<lne id="650" begin="188" end="188"/>
+			<lne id="651" begin="187" end="189"/>
+			<lne id="652" begin="186" end="190"/>
+			<lne id="653" begin="191" end="191"/>
+			<lne id="654" begin="192" end="192"/>
+			<lne id="655" begin="192" end="193"/>
+			<lne id="656" begin="192" end="194"/>
+			<lne id="657" begin="191" end="195"/>
+			<lne id="658" begin="196" end="196"/>
+			<lne id="659" begin="196" end="197"/>
+			<lne id="660" begin="198" end="198"/>
+			<lne id="661" begin="198" end="199"/>
+			<lne id="662" begin="200" end="200"/>
+			<lne id="663" begin="198" end="201"/>
+			<lne id="664" begin="196" end="202"/>
+			<lne id="665" begin="203" end="203"/>
+			<lne id="666" begin="203" end="204"/>
+			<lne id="667" begin="203" end="205"/>
+			<lne id="668" begin="203" end="206"/>
+			<lne id="669" begin="209" end="209"/>
+			<lne id="670" begin="209" end="210"/>
+			<lne id="671" begin="209" end="211"/>
+			<lne id="672" begin="209" end="212"/>
+			<lne id="673" begin="213" end="213"/>
+			<lne id="674" begin="209" end="214"/>
+			<lne id="675" begin="217" end="217"/>
+			<lne id="676" begin="218" end="218"/>
+			<lne id="677" begin="217" end="219"/>
+			<lne id="678" begin="209" end="219"/>
+			<lne id="679" begin="203" end="219"/>
+			<lne id="680" begin="78" end="219"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="11" name="519" begin="91" end="97"/>
-			<lve slot="12" name="652" begin="120" end="139"/>
-			<lve slot="11" name="653" begin="100" end="140"/>
-			<lve slot="10" name="654" begin="43" end="181"/>
-			<lve slot="2" name="485" begin="3" end="181"/>
-			<lve slot="3" name="655" begin="6" end="181"/>
-			<lve slot="4" name="656" begin="11" end="181"/>
-			<lve slot="5" name="657" begin="16" end="181"/>
-			<lve slot="6" name="658" begin="21" end="181"/>
-			<lve slot="7" name="659" begin="30" end="181"/>
-			<lve slot="8" name="660" begin="34" end="181"/>
-			<lve slot="9" name="661" begin="39" end="181"/>
-			<lve slot="0" name="103" begin="0" end="181"/>
-			<lve slot="1" name="484" begin="0" end="181"/>
+			<lve slot="11" name="681" begin="94" end="97"/>
+			<lve slot="11" name="682" begin="107" end="116"/>
+			<lve slot="11" name="524" begin="120" end="126"/>
+			<lve slot="12" name="683" begin="150" end="169"/>
+			<lve slot="11" name="524" begin="130" end="170"/>
+			<lve slot="10" name="684" begin="43" end="219"/>
+			<lve slot="2" name="485" begin="3" end="219"/>
+			<lve slot="3" name="685" begin="6" end="219"/>
+			<lve slot="4" name="686" begin="11" end="219"/>
+			<lve slot="5" name="687" begin="16" end="219"/>
+			<lve slot="6" name="688" begin="21" end="219"/>
+			<lve slot="7" name="689" begin="30" end="219"/>
+			<lve slot="8" name="690" begin="34" end="219"/>
+			<lve slot="9" name="691" begin="39" end="219"/>
+			<lve slot="0" name="103" begin="0" end="219"/>
+			<lve slot="1" name="484" begin="0" end="219"/>
 		</localvariabletable>
 	</operation>
-	<operation name="662">
+	<operation name="692">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="482"/>
@@ -5541,7 +5674,7 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="662"/>
+			<push arg="692"/>
 			<pcall arg="133"/>
 			<dup/>
 			<push arg="484"/>
@@ -5552,24 +5685,24 @@
 			<call arg="231"/>
 			<store arg="114"/>
 			<dup/>
-			<push arg="663"/>
-			<push arg="664"/>
+			<push arg="693"/>
+			<push arg="694"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
 			<store arg="200"/>
 			<pcall arg="211"/>
 			<dup/>
-			<push arg="665"/>
-			<push arg="666"/>
+			<push arg="695"/>
+			<push arg="696"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
 			<store arg="207"/>
 			<pcall arg="211"/>
 			<dup/>
-			<push arg="667"/>
-			<push arg="668"/>
+			<push arg="697"/>
+			<push arg="698"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -5582,12 +5715,12 @@
 			<getasm/>
 			<load arg="114"/>
 			<call arg="115"/>
-			<set arg="669"/>
+			<set arg="699"/>
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
 			<get arg="61"/>
-			<push arg="670"/>
+			<push arg="700"/>
 			<call arg="500"/>
 			<call arg="115"/>
 			<set arg="212"/>
@@ -5595,81 +5728,81 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="225"/>
-			<get arg="526"/>
+			<get arg="531"/>
 			<call arg="503"/>
 			<call arg="115"/>
-			<set arg="671"/>
+			<set arg="701"/>
 			<dup/>
 			<getasm/>
-			<pushd arg="672"/>
+			<pushd arg="702"/>
 			<call arg="115"/>
-			<set arg="673"/>
+			<set arg="703"/>
 			<dup/>
 			<getasm/>
 			<load arg="207"/>
 			<call arg="115"/>
-			<set arg="674"/>
+			<set arg="704"/>
 			<pop/>
 			<load arg="207"/>
 			<dup/>
 			<getasm/>
 			<load arg="210"/>
 			<call arg="115"/>
-			<set arg="675"/>
+			<set arg="705"/>
 			<pop/>
 			<load arg="210"/>
 			<pop/>
 			<load arg="207"/>
 			<getasm/>
 			<load arg="114"/>
-			<get arg="676"/>
-			<call arg="677"/>
-			<set arg="678"/>
+			<get arg="706"/>
+			<call arg="707"/>
+			<set arg="708"/>
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="679" begin="12" end="12"/>
-			<lne id="680" begin="13" end="13"/>
-			<lne id="681" begin="12" end="14"/>
-			<lne id="682" begin="45" end="45"/>
-			<lne id="683" begin="43" end="47"/>
-			<lne id="684" begin="50" end="50"/>
-			<lne id="685" begin="50" end="51"/>
-			<lne id="686" begin="52" end="52"/>
-			<lne id="687" begin="50" end="53"/>
-			<lne id="688" begin="48" end="55"/>
-			<lne id="689" begin="58" end="58"/>
-			<lne id="690" begin="58" end="59"/>
-			<lne id="691" begin="58" end="60"/>
-			<lne id="692" begin="58" end="61"/>
-			<lne id="693" begin="56" end="63"/>
-			<lne id="694" begin="66" end="66"/>
-			<lne id="695" begin="64" end="68"/>
-			<lne id="696" begin="71" end="71"/>
-			<lne id="697" begin="69" end="73"/>
-			<lne id="698" begin="42" end="74"/>
-			<lne id="699" begin="78" end="78"/>
-			<lne id="700" begin="76" end="80"/>
-			<lne id="701" begin="75" end="81"/>
-			<lne id="702" begin="82" end="83"/>
-			<lne id="703" begin="84" end="84"/>
-			<lne id="704" begin="85" end="85"/>
-			<lne id="705" begin="86" end="86"/>
-			<lne id="706" begin="86" end="87"/>
-			<lne id="707" begin="85" end="88"/>
-			<lne id="708" begin="84" end="89"/>
-			<lne id="709" begin="84" end="89"/>
+			<lne id="709" begin="12" end="12"/>
+			<lne id="710" begin="13" end="13"/>
+			<lne id="711" begin="12" end="14"/>
+			<lne id="712" begin="45" end="45"/>
+			<lne id="713" begin="43" end="47"/>
+			<lne id="714" begin="50" end="50"/>
+			<lne id="715" begin="50" end="51"/>
+			<lne id="716" begin="52" end="52"/>
+			<lne id="717" begin="50" end="53"/>
+			<lne id="718" begin="48" end="55"/>
+			<lne id="719" begin="58" end="58"/>
+			<lne id="720" begin="58" end="59"/>
+			<lne id="721" begin="58" end="60"/>
+			<lne id="722" begin="58" end="61"/>
+			<lne id="723" begin="56" end="63"/>
+			<lne id="724" begin="66" end="66"/>
+			<lne id="725" begin="64" end="68"/>
+			<lne id="726" begin="71" end="71"/>
+			<lne id="727" begin="69" end="73"/>
+			<lne id="728" begin="42" end="74"/>
+			<lne id="729" begin="78" end="78"/>
+			<lne id="730" begin="76" end="80"/>
+			<lne id="731" begin="75" end="81"/>
+			<lne id="732" begin="82" end="83"/>
+			<lne id="733" begin="84" end="84"/>
+			<lne id="734" begin="85" end="85"/>
+			<lne id="735" begin="86" end="86"/>
+			<lne id="736" begin="86" end="87"/>
+			<lne id="737" begin="85" end="88"/>
+			<lne id="738" begin="84" end="89"/>
+			<lne id="739" begin="84" end="89"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="663" begin="22" end="90"/>
-			<lve slot="4" name="665" begin="30" end="90"/>
-			<lve slot="5" name="667" begin="38" end="90"/>
+			<lve slot="3" name="693" begin="22" end="90"/>
+			<lve slot="4" name="695" begin="30" end="90"/>
+			<lve slot="5" name="697" begin="38" end="90"/>
 			<lve slot="2" name="485" begin="15" end="90"/>
 			<lve slot="0" name="103" begin="0" end="90"/>
 			<lve slot="1" name="484" begin="0" end="90"/>
 		</localvariabletable>
 	</operation>
-	<operation name="710">
+	<operation name="740">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -5683,13 +5816,13 @@
 			<call arg="225"/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<get arg="711"/>
-			<push arg="712"/>
-			<push arg="713"/>
-			<call arg="714"/>
-			<call arg="715"/>
-			<push arg="716"/>
-			<call arg="717"/>
+			<get arg="741"/>
+			<push arg="742"/>
+			<push arg="743"/>
+			<call arg="744"/>
+			<call arg="534"/>
+			<push arg="745"/>
+			<call arg="746"/>
 			<store arg="207"/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -5725,31 +5858,31 @@
 			<new/>
 			<store arg="191"/>
 			<pushi arg="505"/>
-			<store arg="515"/>
+			<store arg="520"/>
 			<load arg="207"/>
 			<iterate/>
-			<store arg="718"/>
-			<load arg="515"/>
+			<store arg="747"/>
+			<load arg="520"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
-			<store arg="515"/>
+			<store arg="520"/>
 			<getasm/>
-			<push arg="513"/>
-			<load arg="515"/>
+			<push arg="518"/>
+			<load arg="520"/>
 			<call arg="500"/>
 			<load arg="114"/>
-			<call arg="514"/>
+			<call arg="519"/>
 			<store arg="497"/>
-			<load arg="718"/>
-			<call arg="715"/>
-			<push arg="719"/>
-			<call arg="717"/>
-			<call arg="720"/>
-			<call arg="715"/>
+			<load arg="747"/>
+			<call arg="534"/>
+			<push arg="748"/>
+			<call arg="746"/>
+			<call arg="749"/>
+			<call arg="534"/>
 			<store arg="213"/>
 			<load arg="213"/>
-			<push arg="721"/>
-			<call arg="717"/>
+			<push arg="750"/>
+			<call arg="746"/>
 			<store arg="495"/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -5757,43 +5890,43 @@
 			<store arg="191"/>
 			<load arg="495"/>
 			<iterate/>
-			<store arg="722"/>
-			<load arg="722"/>
-			<push arg="516"/>
+			<store arg="751"/>
+			<load arg="751"/>
+			<push arg="521"/>
 			<getasm/>
 			<get arg="13"/>
 			<call arg="500"/>
-			<call arg="723"/>
+			<call arg="752"/>
 			<pushi arg="505"/>
 			<pushi arg="105"/>
-			<call arg="724"/>
+			<call arg="753"/>
 			<call arg="145"/>
-			<if arg="725"/>
-			<goto arg="726"/>
+			<if arg="754"/>
+			<goto arg="755"/>
 			<load arg="114"/>
-			<load arg="722"/>
-			<call arg="727"/>
+			<load arg="751"/>
+			<call arg="756"/>
 			<call arg="217"/>
-			<if arg="728"/>
-			<goto arg="729"/>
+			<if arg="757"/>
+			<goto arg="758"/>
 			<getasm/>
-			<load arg="722"/>
+			<load arg="751"/>
 			<load arg="114"/>
-			<pcall arg="518"/>
+			<pcall arg="523"/>
 			<load arg="191"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<load arg="114"/>
-			<get arg="676"/>
+			<get arg="706"/>
 			<iterate/>
 			<store arg="110"/>
 			<load arg="110"/>
 			<get arg="51"/>
-			<load arg="722"/>
+			<load arg="751"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="730"/>
+			<if arg="759"/>
 			<load arg="110"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -5804,130 +5937,130 @@
 			<load arg="191"/>
 			<call arg="215"/>
 			<call arg="217"/>
-			<if arg="731"/>
-			<goto arg="732"/>
+			<if arg="760"/>
+			<goto arg="761"/>
 			<getasm/>
 			<load arg="497"/>
-			<call arg="733"/>
+			<call arg="762"/>
 			<store arg="498"/>
 			<load arg="498"/>
 			<load arg="191"/>
-			<set arg="734"/>
+			<set arg="763"/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="735" begin="0" end="0"/>
-			<lne id="736" begin="1" end="1"/>
-			<lne id="737" begin="0" end="2"/>
-			<lne id="738" begin="4" end="4"/>
-			<lne id="739" begin="4" end="5"/>
-			<lne id="740" begin="7" end="7"/>
-			<lne id="741" begin="7" end="8"/>
-			<lne id="742" begin="9" end="9"/>
-			<lne id="743" begin="10" end="10"/>
-			<lne id="744" begin="7" end="11"/>
-			<lne id="745" begin="7" end="12"/>
-			<lne id="746" begin="13" end="13"/>
-			<lne id="747" begin="7" end="14"/>
-			<lne id="748" begin="16" end="19"/>
-			<lne id="749" begin="21" end="24"/>
-			<lne id="750" begin="26" end="29"/>
-			<lne id="751" begin="31" end="33"/>
-			<lne id="752" begin="35" end="38"/>
-			<lne id="753" begin="40" end="43"/>
-			<lne id="754" begin="45" end="47"/>
-			<lne id="755" begin="49" end="49"/>
-			<lne id="756" begin="51" end="51"/>
-			<lne id="757" begin="54" end="54"/>
-			<lne id="758" begin="55" end="55"/>
-			<lne id="759" begin="54" end="56"/>
-			<lne id="760" begin="54" end="57"/>
-			<lne id="761" begin="58" end="58"/>
-			<lne id="762" begin="59" end="59"/>
-			<lne id="763" begin="60" end="60"/>
-			<lne id="764" begin="59" end="61"/>
-			<lne id="765" begin="62" end="62"/>
-			<lne id="766" begin="58" end="63"/>
-			<lne id="767" begin="58" end="64"/>
-			<lne id="768" begin="65" end="65"/>
-			<lne id="769" begin="65" end="66"/>
-			<lne id="770" begin="67" end="67"/>
-			<lne id="771" begin="65" end="68"/>
-			<lne id="772" begin="65" end="69"/>
-			<lne id="773" begin="65" end="70"/>
-			<lne id="774" begin="65" end="71"/>
-			<lne id="775" begin="72" end="72"/>
-			<lne id="776" begin="73" end="73"/>
-			<lne id="777" begin="72" end="74"/>
-			<lne id="778" begin="72" end="75"/>
-			<lne id="779" begin="76" end="78"/>
-			<lne id="780" begin="76" end="79"/>
-			<lne id="781" begin="80" end="80"/>
-			<lne id="782" begin="83" end="83"/>
-			<lne id="783" begin="84" end="84"/>
-			<lne id="784" begin="85" end="85"/>
-			<lne id="785" begin="85" end="86"/>
-			<lne id="786" begin="84" end="87"/>
-			<lne id="787" begin="83" end="88"/>
-			<lne id="788" begin="90" end="90"/>
-			<lne id="789" begin="89" end="91"/>
-			<lne id="790" begin="83" end="92"/>
-			<lne id="791" begin="95" end="95"/>
-			<lne id="792" begin="96" end="96"/>
-			<lne id="793" begin="95" end="97"/>
-			<lne id="794" begin="95" end="98"/>
-			<lne id="795" begin="101" end="101"/>
-			<lne id="796" begin="102" end="102"/>
-			<lne id="797" begin="103" end="103"/>
-			<lne id="798" begin="101" end="104"/>
-			<lne id="799" begin="95" end="104"/>
-			<lne id="800" begin="105" end="105"/>
-			<lne id="801" begin="109" end="109"/>
-			<lne id="802" begin="109" end="110"/>
-			<lne id="803" begin="113" end="113"/>
-			<lne id="804" begin="113" end="114"/>
-			<lne id="805" begin="115" end="115"/>
-			<lne id="806" begin="113" end="116"/>
-			<lne id="807" begin="106" end="121"/>
-			<lne id="808" begin="106" end="122"/>
-			<lne id="809" begin="105" end="123"/>
-			<lne id="810" begin="105" end="124"/>
-			<lne id="811" begin="83" end="124"/>
-			<lne id="812" begin="80" end="125"/>
-			<lne id="813" begin="126" end="126"/>
-			<lne id="814" begin="126" end="127"/>
-			<lne id="815" begin="126" end="128"/>
-			<lne id="816" begin="131" end="131"/>
-			<lne id="817" begin="132" end="132"/>
-			<lne id="818" begin="131" end="133"/>
-			<lne id="819" begin="131" end="134"/>
-			<lne id="820" begin="135" end="135"/>
-			<lne id="821" begin="136" end="136"/>
-			<lne id="822" begin="135" end="137"/>
-			<lne id="823" begin="126" end="137"/>
-			<lne id="824" begin="51" end="138"/>
-			<lne id="825" begin="51" end="138"/>
+			<lne id="764" begin="0" end="0"/>
+			<lne id="765" begin="1" end="1"/>
+			<lne id="766" begin="0" end="2"/>
+			<lne id="767" begin="4" end="4"/>
+			<lne id="768" begin="4" end="5"/>
+			<lne id="769" begin="7" end="7"/>
+			<lne id="770" begin="7" end="8"/>
+			<lne id="771" begin="9" end="9"/>
+			<lne id="772" begin="10" end="10"/>
+			<lne id="773" begin="7" end="11"/>
+			<lne id="774" begin="7" end="12"/>
+			<lne id="775" begin="13" end="13"/>
+			<lne id="776" begin="7" end="14"/>
+			<lne id="777" begin="16" end="19"/>
+			<lne id="778" begin="21" end="24"/>
+			<lne id="779" begin="26" end="29"/>
+			<lne id="780" begin="31" end="33"/>
+			<lne id="781" begin="35" end="38"/>
+			<lne id="782" begin="40" end="43"/>
+			<lne id="783" begin="45" end="47"/>
+			<lne id="784" begin="49" end="49"/>
+			<lne id="785" begin="51" end="51"/>
+			<lne id="786" begin="54" end="54"/>
+			<lne id="787" begin="55" end="55"/>
+			<lne id="788" begin="54" end="56"/>
+			<lne id="789" begin="54" end="57"/>
+			<lne id="790" begin="58" end="58"/>
+			<lne id="791" begin="59" end="59"/>
+			<lne id="792" begin="60" end="60"/>
+			<lne id="793" begin="59" end="61"/>
+			<lne id="794" begin="62" end="62"/>
+			<lne id="795" begin="58" end="63"/>
+			<lne id="796" begin="58" end="64"/>
+			<lne id="797" begin="65" end="65"/>
+			<lne id="798" begin="65" end="66"/>
+			<lne id="799" begin="67" end="67"/>
+			<lne id="800" begin="65" end="68"/>
+			<lne id="801" begin="65" end="69"/>
+			<lne id="802" begin="65" end="70"/>
+			<lne id="803" begin="65" end="71"/>
+			<lne id="804" begin="72" end="72"/>
+			<lne id="805" begin="73" end="73"/>
+			<lne id="806" begin="72" end="74"/>
+			<lne id="807" begin="72" end="75"/>
+			<lne id="808" begin="76" end="78"/>
+			<lne id="809" begin="76" end="79"/>
+			<lne id="810" begin="80" end="80"/>
+			<lne id="811" begin="83" end="83"/>
+			<lne id="812" begin="84" end="84"/>
+			<lne id="813" begin="85" end="85"/>
+			<lne id="814" begin="85" end="86"/>
+			<lne id="815" begin="84" end="87"/>
+			<lne id="816" begin="83" end="88"/>
+			<lne id="817" begin="90" end="90"/>
+			<lne id="818" begin="89" end="91"/>
+			<lne id="819" begin="83" end="92"/>
+			<lne id="820" begin="95" end="95"/>
+			<lne id="821" begin="96" end="96"/>
+			<lne id="822" begin="95" end="97"/>
+			<lne id="823" begin="95" end="98"/>
+			<lne id="824" begin="101" end="101"/>
+			<lne id="825" begin="102" end="102"/>
+			<lne id="826" begin="103" end="103"/>
+			<lne id="827" begin="101" end="104"/>
+			<lne id="828" begin="95" end="104"/>
+			<lne id="829" begin="105" end="105"/>
+			<lne id="830" begin="109" end="109"/>
+			<lne id="831" begin="109" end="110"/>
+			<lne id="832" begin="113" end="113"/>
+			<lne id="833" begin="113" end="114"/>
+			<lne id="834" begin="115" end="115"/>
+			<lne id="835" begin="113" end="116"/>
+			<lne id="836" begin="106" end="121"/>
+			<lne id="837" begin="106" end="122"/>
+			<lne id="838" begin="105" end="123"/>
+			<lne id="839" begin="105" end="124"/>
+			<lne id="840" begin="83" end="124"/>
+			<lne id="841" begin="80" end="125"/>
+			<lne id="842" begin="126" end="126"/>
+			<lne id="843" begin="126" end="127"/>
+			<lne id="844" begin="126" end="128"/>
+			<lne id="845" begin="131" end="131"/>
+			<lne id="846" begin="132" end="132"/>
+			<lne id="847" begin="131" end="133"/>
+			<lne id="848" begin="131" end="134"/>
+			<lne id="849" begin="135" end="135"/>
+			<lne id="850" begin="136" end="136"/>
+			<lne id="851" begin="135" end="137"/>
+			<lne id="852" begin="126" end="137"/>
+			<lne id="853" begin="51" end="138"/>
+			<lne id="854" begin="51" end="138"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="15" name="826" begin="112" end="120"/>
-			<lve slot="14" name="827" begin="82" end="124"/>
-			<lve slot="13" name="828" begin="53" end="137"/>
+			<lve slot="15" name="855" begin="112" end="120"/>
+			<lve slot="14" name="856" begin="82" end="124"/>
+			<lve slot="13" name="857" begin="53" end="137"/>
 			<lve slot="2" name="485" begin="3" end="138"/>
-			<lve slot="3" name="655" begin="6" end="138"/>
+			<lve slot="3" name="685" begin="6" end="138"/>
 			<lve slot="4" name="15" begin="15" end="138"/>
-			<lve slot="5" name="829" begin="20" end="138"/>
-			<lve slot="6" name="830" begin="25" end="138"/>
-			<lve slot="7" name="656" begin="30" end="138"/>
-			<lve slot="8" name="831" begin="34" end="138"/>
-			<lve slot="9" name="657" begin="39" end="138"/>
-			<lve slot="10" name="832" begin="44" end="138"/>
-			<lve slot="11" name="833" begin="48" end="138"/>
-			<lve slot="12" name="834" begin="50" end="138"/>
+			<lve slot="5" name="858" begin="20" end="138"/>
+			<lve slot="6" name="859" begin="25" end="138"/>
+			<lve slot="7" name="686" begin="30" end="138"/>
+			<lve slot="8" name="860" begin="34" end="138"/>
+			<lve slot="9" name="687" begin="39" end="138"/>
+			<lve slot="10" name="861" begin="44" end="138"/>
+			<lve slot="11" name="862" begin="48" end="138"/>
+			<lve slot="12" name="863" begin="50" end="138"/>
 			<lve slot="0" name="103" begin="0" end="138"/>
 			<lve slot="1" name="484" begin="0" end="138"/>
 		</localvariabletable>
 	</operation>
-	<operation name="835">
+	<operation name="864">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -5941,24 +6074,24 @@
 			<call arg="225"/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<get arg="836"/>
+			<get arg="865"/>
 			<call arg="141"/>
 			<store arg="207"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<load arg="207"/>
-			<get arg="837"/>
+			<get arg="866"/>
 			<get arg="206"/>
 			<call arg="141"/>
 			<get arg="206"/>
 			<iterate/>
 			<store arg="210"/>
 			<load arg="210"/>
-			<push arg="838"/>
+			<push arg="867"/>
 			<push arg="60"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<call arg="196"/>
 			<if arg="113"/>
 			<load arg="210"/>
@@ -5969,19 +6102,19 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="207"/>
-			<get arg="837"/>
+			<get arg="866"/>
 			<get arg="206"/>
 			<call arg="141"/>
 			<get arg="206"/>
 			<iterate/>
 			<store arg="213"/>
 			<load arg="213"/>
-			<push arg="840"/>
+			<push arg="868"/>
 			<push arg="35"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<call arg="196"/>
-			<if arg="841"/>
+			<if arg="869"/>
 			<load arg="213"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -5990,19 +6123,19 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="207"/>
-			<get arg="837"/>
+			<get arg="866"/>
 			<get arg="206"/>
 			<call arg="141"/>
 			<get arg="206"/>
 			<iterate/>
 			<store arg="495"/>
 			<load arg="495"/>
-			<push arg="842"/>
+			<push arg="870"/>
 			<push arg="60"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<call arg="196"/>
-			<if arg="843"/>
+			<if arg="871"/>
 			<load arg="495"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -6021,39 +6154,39 @@
 			<iterate/>
 			<store arg="498"/>
 			<load arg="498"/>
-			<call arg="844"/>
+			<call arg="872"/>
 			<store arg="496"/>
 			<load arg="496"/>
 			<call arg="493"/>
 			<call arg="217"/>
-			<if arg="725"/>
-			<goto arg="845"/>
+			<if arg="754"/>
+			<goto arg="873"/>
 			<load arg="496"/>
-			<get arg="846"/>
+			<get arg="874"/>
 			<iterate/>
 			<store arg="191"/>
 			<load arg="191"/>
-			<push arg="516"/>
+			<push arg="521"/>
 			<getasm/>
 			<get arg="13"/>
 			<call arg="500"/>
-			<call arg="723"/>
+			<call arg="752"/>
 			<pushi arg="505"/>
 			<pushi arg="105"/>
-			<call arg="724"/>
+			<call arg="753"/>
 			<call arg="145"/>
-			<if arg="847"/>
-			<goto arg="730"/>
+			<if arg="875"/>
+			<goto arg="759"/>
 			<load arg="114"/>
 			<load arg="191"/>
-			<call arg="727"/>
+			<call arg="756"/>
 			<call arg="217"/>
-			<if arg="848"/>
-			<goto arg="730"/>
+			<if arg="514"/>
+			<goto arg="759"/>
 			<getasm/>
 			<load arg="191"/>
 			<load arg="114"/>
-			<pcall arg="518"/>
+			<pcall arg="523"/>
 			<enditerate/>
 			<enditerate/>
 			<load arg="210"/>
@@ -6062,7 +6195,7 @@
 			<getasm/>
 			<load arg="498"/>
 			<load arg="105"/>
-			<pcall arg="849"/>
+			<pcall arg="876"/>
 			<enditerate/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -6071,16 +6204,16 @@
 			<iterate/>
 			<store arg="498"/>
 			<load arg="498"/>
-			<get arg="850"/>
-			<push arg="851"/>
+			<get arg="877"/>
+			<push arg="878"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="852"/>
+			<push arg="879"/>
 			<set arg="61"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="853"/>
+			<if arg="880"/>
 			<load arg="498"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -6089,7 +6222,7 @@
 			<getasm/>
 			<load arg="498"/>
 			<load arg="105"/>
-			<pcall arg="849"/>
+			<pcall arg="876"/>
 			<enditerate/>
 			<load arg="495"/>
 			<iterate/>
@@ -6101,13 +6234,13 @@
 			<push arg="43"/>
 			<push arg="35"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="855"/>
-			<goto arg="856"/>
+			<call arg="881"/>
+			<if arg="882"/>
+			<goto arg="883"/>
 			<getasm/>
 			<load arg="496"/>
 			<load arg="105"/>
-			<pcall arg="857"/>
+			<pcall arg="884"/>
 			<enditerate/>
 			<load arg="495"/>
 			<iterate/>
@@ -6119,13 +6252,13 @@
 			<push arg="45"/>
 			<push arg="35"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="858"/>
-			<goto arg="859"/>
+			<call arg="881"/>
+			<if arg="885"/>
+			<goto arg="886"/>
 			<getasm/>
 			<load arg="496"/>
 			<load arg="105"/>
-			<pcall arg="860"/>
+			<pcall arg="887"/>
 			<enditerate/>
 			<load arg="495"/>
 			<iterate/>
@@ -6137,191 +6270,191 @@
 			<push arg="44"/>
 			<push arg="35"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="861"/>
-			<goto arg="862"/>
+			<call arg="881"/>
+			<if arg="888"/>
+			<goto arg="889"/>
 			<load arg="496"/>
 			<push arg="45"/>
 			<push arg="35"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="862"/>
+			<call arg="881"/>
+			<if arg="889"/>
 			<load arg="496"/>
-			<get arg="863"/>
+			<get arg="890"/>
 			<store arg="497"/>
 			<load arg="497"/>
 			<call arg="493"/>
-			<if arg="864"/>
-			<goto arg="865"/>
+			<if arg="533"/>
+			<goto arg="891"/>
 			<getasm/>
 			<load arg="496"/>
 			<load arg="105"/>
-			<pcall arg="866"/>
-			<goto arg="862"/>
+			<pcall arg="892"/>
+			<goto arg="889"/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="867" begin="0" end="0"/>
-			<lne id="868" begin="1" end="1"/>
-			<lne id="869" begin="0" end="2"/>
-			<lne id="870" begin="4" end="4"/>
-			<lne id="871" begin="4" end="5"/>
-			<lne id="872" begin="7" end="7"/>
-			<lne id="873" begin="7" end="8"/>
-			<lne id="874" begin="7" end="9"/>
-			<lne id="875" begin="14" end="14"/>
-			<lne id="876" begin="14" end="15"/>
-			<lne id="877" begin="14" end="16"/>
-			<lne id="878" begin="14" end="17"/>
-			<lne id="879" begin="14" end="18"/>
-			<lne id="880" begin="21" end="21"/>
-			<lne id="881" begin="22" end="24"/>
-			<lne id="882" begin="21" end="25"/>
-			<lne id="883" begin="11" end="30"/>
-			<lne id="884" begin="35" end="35"/>
-			<lne id="885" begin="35" end="36"/>
-			<lne id="886" begin="35" end="37"/>
-			<lne id="887" begin="35" end="38"/>
-			<lne id="888" begin="35" end="39"/>
-			<lne id="889" begin="42" end="42"/>
-			<lne id="890" begin="43" end="45"/>
-			<lne id="891" begin="42" end="46"/>
-			<lne id="892" begin="32" end="51"/>
-			<lne id="893" begin="56" end="56"/>
-			<lne id="894" begin="56" end="57"/>
-			<lne id="895" begin="56" end="58"/>
-			<lne id="896" begin="56" end="59"/>
-			<lne id="897" begin="56" end="60"/>
-			<lne id="898" begin="63" end="63"/>
-			<lne id="899" begin="64" end="66"/>
-			<lne id="900" begin="63" end="67"/>
-			<lne id="901" begin="53" end="72"/>
-			<lne id="902" begin="74" end="77"/>
-			<lne id="903" begin="79" end="82"/>
-			<lne id="904" begin="84" end="84"/>
-			<lne id="905" begin="87" end="87"/>
-			<lne id="906" begin="87" end="88"/>
-			<lne id="907" begin="87" end="89"/>
-			<lne id="908" begin="90" end="90"/>
-			<lne id="909" begin="90" end="91"/>
-			<lne id="910" begin="90" end="92"/>
-			<lne id="911" begin="95" end="95"/>
-			<lne id="912" begin="95" end="96"/>
-			<lne id="913" begin="99" end="99"/>
-			<lne id="914" begin="100" end="100"/>
-			<lne id="915" begin="101" end="101"/>
-			<lne id="916" begin="101" end="102"/>
-			<lne id="917" begin="100" end="103"/>
-			<lne id="918" begin="99" end="104"/>
-			<lne id="919" begin="106" end="106"/>
-			<lne id="920" begin="105" end="107"/>
-			<lne id="921" begin="99" end="108"/>
-			<lne id="922" begin="111" end="111"/>
-			<lne id="923" begin="112" end="112"/>
-			<lne id="924" begin="111" end="113"/>
-			<lne id="925" begin="111" end="114"/>
-			<lne id="926" begin="117" end="117"/>
-			<lne id="927" begin="118" end="118"/>
-			<lne id="928" begin="119" end="119"/>
-			<lne id="929" begin="117" end="120"/>
-			<lne id="930" begin="111" end="120"/>
-			<lne id="931" begin="99" end="120"/>
-			<lne id="932" begin="95" end="121"/>
-			<lne id="933" begin="90" end="121"/>
-			<lne id="934" begin="84" end="122"/>
-			<lne id="935" begin="123" end="123"/>
-			<lne id="936" begin="126" end="126"/>
-			<lne id="937" begin="127" end="127"/>
-			<lne id="938" begin="128" end="128"/>
-			<lne id="939" begin="126" end="129"/>
-			<lne id="940" begin="123" end="130"/>
-			<lne id="941" begin="134" end="134"/>
-			<lne id="942" begin="137" end="137"/>
-			<lne id="943" begin="137" end="138"/>
-			<lne id="944" begin="139" end="144"/>
-			<lne id="945" begin="137" end="145"/>
-			<lne id="946" begin="131" end="150"/>
-			<lne id="947" begin="153" end="153"/>
-			<lne id="948" begin="154" end="154"/>
-			<lne id="949" begin="155" end="155"/>
-			<lne id="950" begin="153" end="156"/>
-			<lne id="951" begin="131" end="157"/>
-			<lne id="952" begin="158" end="158"/>
-			<lne id="953" begin="161" end="161"/>
-			<lne id="954" begin="161" end="162"/>
-			<lne id="955" begin="161" end="163"/>
-			<lne id="956" begin="164" end="164"/>
-			<lne id="957" begin="165" end="167"/>
-			<lne id="958" begin="164" end="168"/>
-			<lne id="959" begin="171" end="171"/>
-			<lne id="960" begin="172" end="172"/>
-			<lne id="961" begin="173" end="173"/>
-			<lne id="962" begin="171" end="174"/>
-			<lne id="963" begin="164" end="174"/>
-			<lne id="964" begin="158" end="175"/>
-			<lne id="965" begin="176" end="176"/>
-			<lne id="966" begin="179" end="179"/>
-			<lne id="967" begin="179" end="180"/>
-			<lne id="968" begin="179" end="181"/>
-			<lne id="969" begin="182" end="182"/>
-			<lne id="970" begin="183" end="185"/>
-			<lne id="971" begin="182" end="186"/>
-			<lne id="972" begin="189" end="189"/>
-			<lne id="973" begin="190" end="190"/>
-			<lne id="974" begin="191" end="191"/>
-			<lne id="975" begin="189" end="192"/>
-			<lne id="976" begin="182" end="192"/>
-			<lne id="977" begin="176" end="193"/>
-			<lne id="978" begin="194" end="194"/>
-			<lne id="979" begin="197" end="197"/>
-			<lne id="980" begin="197" end="198"/>
-			<lne id="981" begin="197" end="199"/>
-			<lne id="982" begin="200" end="200"/>
-			<lne id="983" begin="201" end="203"/>
-			<lne id="984" begin="200" end="204"/>
-			<lne id="985" begin="207" end="207"/>
-			<lne id="986" begin="208" end="210"/>
-			<lne id="987" begin="207" end="211"/>
-			<lne id="988" begin="213" end="213"/>
-			<lne id="989" begin="213" end="214"/>
-			<lne id="990" begin="213" end="215"/>
-			<lne id="991" begin="216" end="216"/>
-			<lne id="992" begin="216" end="217"/>
-			<lne id="993" begin="220" end="220"/>
-			<lne id="994" begin="221" end="221"/>
-			<lne id="995" begin="222" end="222"/>
-			<lne id="996" begin="220" end="223"/>
-			<lne id="997" begin="216" end="223"/>
-			<lne id="998" begin="207" end="224"/>
-			<lne id="999" begin="200" end="224"/>
-			<lne id="1000" begin="194" end="225"/>
-			<lne id="1001" begin="84" end="225"/>
+			<lne id="893" begin="0" end="0"/>
+			<lne id="894" begin="1" end="1"/>
+			<lne id="895" begin="0" end="2"/>
+			<lne id="896" begin="4" end="4"/>
+			<lne id="897" begin="4" end="5"/>
+			<lne id="898" begin="7" end="7"/>
+			<lne id="899" begin="7" end="8"/>
+			<lne id="900" begin="7" end="9"/>
+			<lne id="901" begin="14" end="14"/>
+			<lne id="902" begin="14" end="15"/>
+			<lne id="903" begin="14" end="16"/>
+			<lne id="904" begin="14" end="17"/>
+			<lne id="905" begin="14" end="18"/>
+			<lne id="906" begin="21" end="21"/>
+			<lne id="907" begin="22" end="24"/>
+			<lne id="908" begin="21" end="25"/>
+			<lne id="909" begin="11" end="30"/>
+			<lne id="910" begin="35" end="35"/>
+			<lne id="911" begin="35" end="36"/>
+			<lne id="912" begin="35" end="37"/>
+			<lne id="913" begin="35" end="38"/>
+			<lne id="914" begin="35" end="39"/>
+			<lne id="915" begin="42" end="42"/>
+			<lne id="916" begin="43" end="45"/>
+			<lne id="917" begin="42" end="46"/>
+			<lne id="918" begin="32" end="51"/>
+			<lne id="919" begin="56" end="56"/>
+			<lne id="920" begin="56" end="57"/>
+			<lne id="921" begin="56" end="58"/>
+			<lne id="922" begin="56" end="59"/>
+			<lne id="923" begin="56" end="60"/>
+			<lne id="924" begin="63" end="63"/>
+			<lne id="925" begin="64" end="66"/>
+			<lne id="926" begin="63" end="67"/>
+			<lne id="927" begin="53" end="72"/>
+			<lne id="928" begin="74" end="77"/>
+			<lne id="929" begin="79" end="82"/>
+			<lne id="930" begin="84" end="84"/>
+			<lne id="931" begin="87" end="87"/>
+			<lne id="932" begin="87" end="88"/>
+			<lne id="933" begin="87" end="89"/>
+			<lne id="934" begin="90" end="90"/>
+			<lne id="935" begin="90" end="91"/>
+			<lne id="936" begin="90" end="92"/>
+			<lne id="937" begin="95" end="95"/>
+			<lne id="938" begin="95" end="96"/>
+			<lne id="939" begin="99" end="99"/>
+			<lne id="940" begin="100" end="100"/>
+			<lne id="941" begin="101" end="101"/>
+			<lne id="942" begin="101" end="102"/>
+			<lne id="943" begin="100" end="103"/>
+			<lne id="944" begin="99" end="104"/>
+			<lne id="945" begin="106" end="106"/>
+			<lne id="946" begin="105" end="107"/>
+			<lne id="947" begin="99" end="108"/>
+			<lne id="948" begin="111" end="111"/>
+			<lne id="949" begin="112" end="112"/>
+			<lne id="950" begin="111" end="113"/>
+			<lne id="951" begin="111" end="114"/>
+			<lne id="952" begin="117" end="117"/>
+			<lne id="953" begin="118" end="118"/>
+			<lne id="954" begin="119" end="119"/>
+			<lne id="955" begin="117" end="120"/>
+			<lne id="956" begin="111" end="120"/>
+			<lne id="957" begin="99" end="120"/>
+			<lne id="958" begin="95" end="121"/>
+			<lne id="959" begin="90" end="121"/>
+			<lne id="960" begin="84" end="122"/>
+			<lne id="961" begin="123" end="123"/>
+			<lne id="962" begin="126" end="126"/>
+			<lne id="963" begin="127" end="127"/>
+			<lne id="964" begin="128" end="128"/>
+			<lne id="965" begin="126" end="129"/>
+			<lne id="966" begin="123" end="130"/>
+			<lne id="967" begin="134" end="134"/>
+			<lne id="968" begin="137" end="137"/>
+			<lne id="969" begin="137" end="138"/>
+			<lne id="970" begin="139" end="144"/>
+			<lne id="971" begin="137" end="145"/>
+			<lne id="972" begin="131" end="150"/>
+			<lne id="973" begin="153" end="153"/>
+			<lne id="974" begin="154" end="154"/>
+			<lne id="975" begin="155" end="155"/>
+			<lne id="976" begin="153" end="156"/>
+			<lne id="977" begin="131" end="157"/>
+			<lne id="978" begin="158" end="158"/>
+			<lne id="979" begin="161" end="161"/>
+			<lne id="980" begin="161" end="162"/>
+			<lne id="981" begin="161" end="163"/>
+			<lne id="982" begin="164" end="164"/>
+			<lne id="983" begin="165" end="167"/>
+			<lne id="984" begin="164" end="168"/>
+			<lne id="985" begin="171" end="171"/>
+			<lne id="986" begin="172" end="172"/>
+			<lne id="987" begin="173" end="173"/>
+			<lne id="988" begin="171" end="174"/>
+			<lne id="989" begin="164" end="174"/>
+			<lne id="990" begin="158" end="175"/>
+			<lne id="991" begin="176" end="176"/>
+			<lne id="992" begin="179" end="179"/>
+			<lne id="993" begin="179" end="180"/>
+			<lne id="994" begin="179" end="181"/>
+			<lne id="995" begin="182" end="182"/>
+			<lne id="996" begin="183" end="185"/>
+			<lne id="997" begin="182" end="186"/>
+			<lne id="998" begin="189" end="189"/>
+			<lne id="999" begin="190" end="190"/>
+			<lne id="1000" begin="191" end="191"/>
+			<lne id="1001" begin="189" end="192"/>
+			<lne id="1002" begin="182" end="192"/>
+			<lne id="1003" begin="176" end="193"/>
+			<lne id="1004" begin="194" end="194"/>
+			<lne id="1005" begin="197" end="197"/>
+			<lne id="1006" begin="197" end="198"/>
+			<lne id="1007" begin="197" end="199"/>
+			<lne id="1008" begin="200" end="200"/>
+			<lne id="1009" begin="201" end="203"/>
+			<lne id="1010" begin="200" end="204"/>
+			<lne id="1011" begin="207" end="207"/>
+			<lne id="1012" begin="208" end="210"/>
+			<lne id="1013" begin="207" end="211"/>
+			<lne id="1014" begin="213" end="213"/>
+			<lne id="1015" begin="213" end="214"/>
+			<lne id="1016" begin="213" end="215"/>
+			<lne id="1017" begin="216" end="216"/>
+			<lne id="1018" begin="216" end="217"/>
+			<lne id="1019" begin="220" end="220"/>
+			<lne id="1020" begin="221" end="221"/>
+			<lne id="1021" begin="222" end="222"/>
+			<lne id="1022" begin="220" end="223"/>
+			<lne id="1023" begin="216" end="223"/>
+			<lne id="1024" begin="207" end="224"/>
+			<lne id="1025" begin="200" end="224"/>
+			<lne id="1026" begin="194" end="225"/>
+			<lne id="1027" begin="84" end="225"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="5" name="118" begin="20" end="29"/>
 			<lve slot="6" name="118" begin="41" end="50"/>
 			<lve slot="7" name="118" begin="62" end="71"/>
-			<lve slot="11" name="826" begin="98" end="120"/>
-			<lve slot="10" name="1002" begin="86" end="121"/>
+			<lve slot="11" name="855" begin="98" end="120"/>
+			<lve slot="10" name="1028" begin="86" end="121"/>
 			<lve slot="10" name="208" begin="125" end="129"/>
-			<lve slot="10" name="519" begin="136" end="149"/>
+			<lve slot="10" name="524" begin="136" end="149"/>
 			<lve slot="10" name="208" begin="152" end="156"/>
-			<lve slot="10" name="1002" begin="160" end="174"/>
-			<lve slot="10" name="1002" begin="178" end="192"/>
-			<lve slot="10" name="1002" begin="196" end="224"/>
+			<lve slot="10" name="1028" begin="160" end="174"/>
+			<lve slot="10" name="1028" begin="178" end="192"/>
+			<lve slot="10" name="1028" begin="196" end="224"/>
 			<lve slot="2" name="485" begin="3" end="225"/>
-			<lve slot="3" name="655" begin="6" end="225"/>
-			<lve slot="4" name="836" begin="10" end="225"/>
-			<lve slot="5" name="1003" begin="31" end="225"/>
-			<lve slot="6" name="1004" begin="52" end="225"/>
-			<lve slot="7" name="1005" begin="73" end="225"/>
-			<lve slot="8" name="1006" begin="78" end="225"/>
-			<lve slot="9" name="1007" begin="83" end="225"/>
+			<lve slot="3" name="685" begin="6" end="225"/>
+			<lve slot="4" name="865" begin="10" end="225"/>
+			<lve slot="5" name="1029" begin="31" end="225"/>
+			<lve slot="6" name="1030" begin="52" end="225"/>
+			<lve slot="7" name="1031" begin="73" end="225"/>
+			<lve slot="8" name="1032" begin="78" end="225"/>
+			<lve slot="9" name="1033" begin="83" end="225"/>
 			<lve slot="0" name="103" begin="0" end="225"/>
 			<lve slot="1" name="484" begin="0" end="225"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1008">
+	<operation name="1034">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -6339,7 +6472,7 @@
 			<iterate/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<call arg="1009"/>
+			<call arg="1035"/>
 			<call arg="196"/>
 			<if arg="112"/>
 			<load arg="200"/>
@@ -6370,14 +6503,14 @@
 			<iterate/>
 			<store arg="496"/>
 			<load arg="496"/>
-			<call arg="1010"/>
+			<call arg="1036"/>
 			<call arg="141"/>
 			<store arg="210"/>
 			<load arg="210"/>
 			<call arg="493"/>
 			<call arg="217"/>
-			<if arg="841"/>
-			<goto arg="1011"/>
+			<if arg="869"/>
+			<goto arg="1037"/>
 			<getasm/>
 			<load arg="210"/>
 			<call arg="195"/>
@@ -6387,16 +6520,16 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="213"/>
-			<get arg="676"/>
+			<get arg="706"/>
 			<iterate/>
 			<store arg="497"/>
 			<load arg="497"/>
-			<call arg="1012"/>
+			<call arg="1038"/>
 			<load arg="210"/>
 			<get arg="61"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="843"/>
+			<if arg="871"/>
 			<load arg="497"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -6404,9 +6537,9 @@
 			<store arg="497"/>
 			<load arg="497"/>
 			<get arg="212"/>
-			<push arg="1013"/>
-			<call arg="717"/>
-			<call arg="720"/>
+			<push arg="1039"/>
+			<call arg="746"/>
+			<call arg="749"/>
 			<store arg="207"/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -6419,124 +6552,124 @@
 			<get arg="212"/>
 			<load arg="213"/>
 			<get arg="212"/>
-			<push arg="1014"/>
+			<push arg="1040"/>
 			<call arg="500"/>
 			<load arg="497"/>
 			<call arg="500"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="728"/>
+			<if arg="757"/>
 			<load arg="498"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="215"/>
-			<if arg="729"/>
-			<goto arg="1015"/>
+			<if arg="758"/>
+			<goto arg="1041"/>
 			<getasm/>
 			<load arg="496"/>
 			<get arg="61"/>
-			<push arg="516"/>
+			<push arg="521"/>
 			<call arg="500"/>
 			<load arg="207"/>
 			<call arg="500"/>
 			<load arg="105"/>
-			<call arg="1016"/>
+			<call arg="1042"/>
 			<store arg="495"/>
 			<load arg="495"/>
 			<load arg="497"/>
-			<set arg="1017"/>
+			<set arg="1043"/>
 			<enditerate/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="1018" begin="0" end="0"/>
-			<lne id="1019" begin="1" end="1"/>
-			<lne id="1020" begin="0" end="2"/>
-			<lne id="1021" begin="7" end="7"/>
-			<lne id="1022" begin="7" end="8"/>
-			<lne id="1023" begin="11" end="11"/>
-			<lne id="1024" begin="11" end="12"/>
-			<lne id="1025" begin="4" end="17"/>
-			<lne id="1026" begin="19" end="22"/>
-			<lne id="1027" begin="24" end="27"/>
-			<lne id="1028" begin="29" end="32"/>
-			<lne id="1029" begin="34" end="37"/>
-			<lne id="1030" begin="39" end="39"/>
-			<lne id="1031" begin="42" end="42"/>
-			<lne id="1032" begin="42" end="43"/>
-			<lne id="1033" begin="42" end="44"/>
-			<lne id="1034" begin="42" end="45"/>
-			<lne id="1035" begin="46" end="46"/>
-			<lne id="1036" begin="46" end="47"/>
-			<lne id="1037" begin="46" end="48"/>
-			<lne id="1038" begin="51" end="51"/>
-			<lne id="1039" begin="52" end="52"/>
-			<lne id="1040" begin="52" end="53"/>
-			<lne id="1041" begin="51" end="54"/>
-			<lne id="1042" begin="51" end="55"/>
-			<lne id="1043" begin="59" end="59"/>
-			<lne id="1044" begin="59" end="60"/>
-			<lne id="1045" begin="63" end="63"/>
-			<lne id="1046" begin="63" end="64"/>
-			<lne id="1047" begin="65" end="65"/>
-			<lne id="1048" begin="65" end="66"/>
-			<lne id="1049" begin="63" end="67"/>
-			<lne id="1050" begin="56" end="72"/>
-			<lne id="1051" begin="75" end="75"/>
-			<lne id="1052" begin="75" end="76"/>
-			<lne id="1053" begin="77" end="77"/>
-			<lne id="1054" begin="75" end="78"/>
-			<lne id="1055" begin="75" end="79"/>
-			<lne id="1056" begin="75" end="80"/>
-			<lne id="1057" begin="84" end="84"/>
-			<lne id="1058" begin="84" end="85"/>
-			<lne id="1059" begin="88" end="88"/>
-			<lne id="1060" begin="88" end="89"/>
-			<lne id="1061" begin="90" end="90"/>
-			<lne id="1062" begin="90" end="91"/>
-			<lne id="1063" begin="92" end="92"/>
-			<lne id="1064" begin="90" end="93"/>
-			<lne id="1065" begin="94" end="94"/>
-			<lne id="1066" begin="90" end="95"/>
-			<lne id="1067" begin="88" end="96"/>
-			<lne id="1068" begin="81" end="101"/>
-			<lne id="1069" begin="81" end="102"/>
-			<lne id="1070" begin="105" end="105"/>
-			<lne id="1071" begin="106" end="106"/>
-			<lne id="1072" begin="106" end="107"/>
-			<lne id="1073" begin="108" end="108"/>
-			<lne id="1074" begin="106" end="109"/>
-			<lne id="1075" begin="110" end="110"/>
-			<lne id="1076" begin="106" end="111"/>
-			<lne id="1077" begin="112" end="112"/>
-			<lne id="1078" begin="105" end="113"/>
-			<lne id="1079" begin="105" end="114"/>
-			<lne id="1080" begin="115" end="115"/>
-			<lne id="1081" begin="116" end="116"/>
-			<lne id="1082" begin="115" end="117"/>
-			<lne id="1083" begin="81" end="117"/>
-			<lne id="1084" begin="56" end="118"/>
-			<lne id="1085" begin="46" end="118"/>
-			<lne id="1086" begin="39" end="119"/>
-			<lne id="1087" begin="39" end="119"/>
+			<lne id="1044" begin="0" end="0"/>
+			<lne id="1045" begin="1" end="1"/>
+			<lne id="1046" begin="0" end="2"/>
+			<lne id="1047" begin="7" end="7"/>
+			<lne id="1048" begin="7" end="8"/>
+			<lne id="1049" begin="11" end="11"/>
+			<lne id="1050" begin="11" end="12"/>
+			<lne id="1051" begin="4" end="17"/>
+			<lne id="1052" begin="19" end="22"/>
+			<lne id="1053" begin="24" end="27"/>
+			<lne id="1054" begin="29" end="32"/>
+			<lne id="1055" begin="34" end="37"/>
+			<lne id="1056" begin="39" end="39"/>
+			<lne id="1057" begin="42" end="42"/>
+			<lne id="1058" begin="42" end="43"/>
+			<lne id="1059" begin="42" end="44"/>
+			<lne id="1060" begin="42" end="45"/>
+			<lne id="1061" begin="46" end="46"/>
+			<lne id="1062" begin="46" end="47"/>
+			<lne id="1063" begin="46" end="48"/>
+			<lne id="1064" begin="51" end="51"/>
+			<lne id="1065" begin="52" end="52"/>
+			<lne id="1066" begin="52" end="53"/>
+			<lne id="1067" begin="51" end="54"/>
+			<lne id="1068" begin="51" end="55"/>
+			<lne id="1069" begin="59" end="59"/>
+			<lne id="1070" begin="59" end="60"/>
+			<lne id="1071" begin="63" end="63"/>
+			<lne id="1072" begin="63" end="64"/>
+			<lne id="1073" begin="65" end="65"/>
+			<lne id="1074" begin="65" end="66"/>
+			<lne id="1075" begin="63" end="67"/>
+			<lne id="1076" begin="56" end="72"/>
+			<lne id="1077" begin="75" end="75"/>
+			<lne id="1078" begin="75" end="76"/>
+			<lne id="1079" begin="77" end="77"/>
+			<lne id="1080" begin="75" end="78"/>
+			<lne id="1081" begin="75" end="79"/>
+			<lne id="1082" begin="75" end="80"/>
+			<lne id="1083" begin="84" end="84"/>
+			<lne id="1084" begin="84" end="85"/>
+			<lne id="1085" begin="88" end="88"/>
+			<lne id="1086" begin="88" end="89"/>
+			<lne id="1087" begin="90" end="90"/>
+			<lne id="1088" begin="90" end="91"/>
+			<lne id="1089" begin="92" end="92"/>
+			<lne id="1090" begin="90" end="93"/>
+			<lne id="1091" begin="94" end="94"/>
+			<lne id="1092" begin="90" end="95"/>
+			<lne id="1093" begin="88" end="96"/>
+			<lne id="1094" begin="81" end="101"/>
+			<lne id="1095" begin="81" end="102"/>
+			<lne id="1096" begin="105" end="105"/>
+			<lne id="1097" begin="106" end="106"/>
+			<lne id="1098" begin="106" end="107"/>
+			<lne id="1099" begin="108" end="108"/>
+			<lne id="1100" begin="106" end="109"/>
+			<lne id="1101" begin="110" end="110"/>
+			<lne id="1102" begin="106" end="111"/>
+			<lne id="1103" begin="112" end="112"/>
+			<lne id="1104" begin="105" end="113"/>
+			<lne id="1105" begin="105" end="114"/>
+			<lne id="1106" begin="115" end="115"/>
+			<lne id="1107" begin="116" end="116"/>
+			<lne id="1108" begin="115" end="117"/>
+			<lne id="1109" begin="81" end="117"/>
+			<lne id="1110" begin="56" end="118"/>
+			<lne id="1111" begin="46" end="118"/>
+			<lne id="1112" begin="39" end="119"/>
+			<lne id="1113" begin="39" end="119"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="519" begin="10" end="16"/>
-			<lve slot="9" name="517" begin="62" end="71"/>
-			<lve slot="10" name="1088" begin="87" end="100"/>
-			<lve slot="9" name="826" begin="74" end="117"/>
-			<lve slot="8" name="519" begin="41" end="118"/>
+			<lve slot="3" name="524" begin="10" end="16"/>
+			<lve slot="9" name="522" begin="62" end="71"/>
+			<lve slot="10" name="1114" begin="87" end="100"/>
+			<lve slot="9" name="855" begin="74" end="117"/>
+			<lve slot="8" name="524" begin="41" end="118"/>
 			<lve slot="2" name="485" begin="3" end="119"/>
-			<lve slot="3" name="1089" begin="18" end="119"/>
-			<lve slot="4" name="1090" begin="23" end="119"/>
-			<lve slot="5" name="1091" begin="28" end="119"/>
-			<lve slot="6" name="1092" begin="33" end="119"/>
-			<lve slot="7" name="1093" begin="38" end="119"/>
+			<lve slot="3" name="1115" begin="18" end="119"/>
+			<lve slot="4" name="1116" begin="23" end="119"/>
+			<lve slot="5" name="1117" begin="28" end="119"/>
+			<lve slot="6" name="1118" begin="33" end="119"/>
+			<lve slot="7" name="1119" begin="38" end="119"/>
 			<lve slot="0" name="103" begin="0" end="119"/>
 			<lve slot="1" name="484" begin="0" end="119"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1094">
+	<operation name="1120">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -6559,31 +6692,31 @@
 			<iterate/>
 			<store arg="207"/>
 			<load arg="207"/>
-			<push arg="1095"/>
+			<push arg="1121"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="854"/>
+			<call arg="881"/>
 			<call arg="196"/>
-			<if arg="1096"/>
+			<if arg="1122"/>
 			<load arg="207"/>
 			<call arg="36"/>
 			<enditerate/>
 			<store arg="207"/>
 			<load arg="207"/>
-			<call arg="1097"/>
+			<call arg="535"/>
 			<pushi arg="505"/>
-			<call arg="1098"/>
+			<call arg="536"/>
 			<if arg="152"/>
-			<goto arg="1099"/>
+			<goto arg="1123"/>
 			<getasm/>
 			<load arg="207"/>
 			<load arg="114"/>
-			<get arg="1100"/>
-			<push arg="1101"/>
+			<get arg="1124"/>
+			<push arg="1125"/>
 			<call arg="503"/>
 			<pushi arg="105"/>
 			<pushi arg="105"/>
-			<call arg="521"/>
+			<call arg="526"/>
 			<store arg="200"/>
 			<load arg="200"/>
 			<getasm/>
@@ -6595,70 +6728,70 @@
 			<store arg="210"/>
 			<getasm/>
 			<load arg="210"/>
-			<call arg="522"/>
+			<call arg="527"/>
 			<call arg="36"/>
 			<enditerate/>
-			<call arg="1102"/>
+			<call arg="1126"/>
 			<set arg="256"/>
 			<load arg="200"/>
 			<load arg="200"/>
 			<get arg="256"/>
-			<call arg="523"/>
-			<set arg="524"/>
+			<call arg="528"/>
+			<set arg="529"/>
 		</code>
 		<linenumbertable>
-			<lne id="1103" begin="0" end="0"/>
-			<lne id="1104" begin="1" end="1"/>
-			<lne id="1105" begin="0" end="2"/>
-			<lne id="1106" begin="4" end="7"/>
-			<lne id="1107" begin="12" end="12"/>
-			<lne id="1108" begin="12" end="13"/>
-			<lne id="1109" begin="16" end="16"/>
-			<lne id="1110" begin="17" end="19"/>
-			<lne id="1111" begin="16" end="20"/>
-			<lne id="1112" begin="9" end="25"/>
-			<lne id="1113" begin="27" end="27"/>
-			<lne id="1114" begin="27" end="28"/>
-			<lne id="1115" begin="29" end="29"/>
-			<lne id="1116" begin="27" end="30"/>
-			<lne id="1117" begin="33" end="33"/>
-			<lne id="1118" begin="34" end="34"/>
-			<lne id="1119" begin="35" end="35"/>
-			<lne id="1120" begin="35" end="36"/>
-			<lne id="1121" begin="37" end="37"/>
-			<lne id="1122" begin="37" end="38"/>
-			<lne id="1123" begin="39" end="39"/>
-			<lne id="1124" begin="40" end="40"/>
-			<lne id="1125" begin="33" end="41"/>
-			<lne id="1126" begin="33" end="42"/>
-			<lne id="1127" begin="43" end="43"/>
-			<lne id="1128" begin="44" end="44"/>
-			<lne id="1129" begin="48" end="48"/>
-			<lne id="1130" begin="51" end="51"/>
-			<lne id="1131" begin="52" end="52"/>
-			<lne id="1132" begin="51" end="53"/>
-			<lne id="1133" begin="45" end="55"/>
-			<lne id="1134" begin="44" end="56"/>
-			<lne id="1135" begin="43" end="57"/>
-			<lne id="1136" begin="58" end="58"/>
-			<lne id="1137" begin="59" end="59"/>
-			<lne id="1138" begin="59" end="60"/>
-			<lne id="1139" begin="59" end="61"/>
-			<lne id="1140" begin="58" end="62"/>
-			<lne id="1141" begin="27" end="62"/>
-			<lne id="1142" begin="27" end="62"/>
+			<lne id="1127" begin="0" end="0"/>
+			<lne id="1128" begin="1" end="1"/>
+			<lne id="1129" begin="0" end="2"/>
+			<lne id="1130" begin="4" end="7"/>
+			<lne id="1131" begin="12" end="12"/>
+			<lne id="1132" begin="12" end="13"/>
+			<lne id="1133" begin="16" end="16"/>
+			<lne id="1134" begin="17" end="19"/>
+			<lne id="1135" begin="16" end="20"/>
+			<lne id="1136" begin="9" end="25"/>
+			<lne id="1137" begin="27" end="27"/>
+			<lne id="1138" begin="27" end="28"/>
+			<lne id="1139" begin="29" end="29"/>
+			<lne id="1140" begin="27" end="30"/>
+			<lne id="1141" begin="33" end="33"/>
+			<lne id="1142" begin="34" end="34"/>
+			<lne id="1143" begin="35" end="35"/>
+			<lne id="1144" begin="35" end="36"/>
+			<lne id="1145" begin="37" end="37"/>
+			<lne id="1146" begin="37" end="38"/>
+			<lne id="1147" begin="39" end="39"/>
+			<lne id="1148" begin="40" end="40"/>
+			<lne id="1149" begin="33" end="41"/>
+			<lne id="1150" begin="33" end="42"/>
+			<lne id="1151" begin="43" end="43"/>
+			<lne id="1152" begin="44" end="44"/>
+			<lne id="1153" begin="48" end="48"/>
+			<lne id="1154" begin="51" end="51"/>
+			<lne id="1155" begin="52" end="52"/>
+			<lne id="1156" begin="51" end="53"/>
+			<lne id="1157" begin="45" end="55"/>
+			<lne id="1158" begin="44" end="56"/>
+			<lne id="1159" begin="43" end="57"/>
+			<lne id="1160" begin="58" end="58"/>
+			<lne id="1161" begin="59" end="59"/>
+			<lne id="1162" begin="59" end="60"/>
+			<lne id="1163" begin="59" end="61"/>
+			<lne id="1164" begin="58" end="62"/>
+			<lne id="1165" begin="27" end="62"/>
+			<lne id="1166" begin="27" end="62"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="4" name="1088" begin="15" end="24"/>
-			<lve slot="5" name="826" begin="50" end="54"/>
+			<lve slot="4" name="1114" begin="15" end="24"/>
+			<lve slot="5" name="855" begin="50" end="54"/>
 			<lve slot="2" name="485" begin="3" end="62"/>
 			<lve slot="3" name="474" begin="8" end="62"/>
-			<lve slot="4" name="1143" begin="26" end="62"/>
+			<lve slot="4" name="1167" begin="26" end="62"/>
 			<lve slot="0" name="103" begin="0" end="62"/>
 			<lve slot="1" name="484" begin="0" end="62"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1144">
+	<operation name="1168">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -6672,13 +6805,13 @@
 			<call arg="225"/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<get arg="711"/>
-			<push arg="712"/>
-			<push arg="713"/>
-			<call arg="714"/>
-			<call arg="715"/>
-			<push arg="716"/>
-			<call arg="717"/>
+			<get arg="741"/>
+			<push arg="742"/>
+			<push arg="743"/>
+			<call arg="744"/>
+			<call arg="534"/>
+			<push arg="745"/>
+			<call arg="746"/>
 			<store arg="207"/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -6717,14 +6850,14 @@
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
-			<store arg="515"/>
+			<store arg="520"/>
 			<pushi arg="505"/>
-			<store arg="718"/>
+			<store arg="747"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
-			<store arg="722"/>
+			<store arg="751"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
@@ -6734,108 +6867,108 @@
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
-			<store arg="1145"/>
+			<store arg="1169"/>
 			<load arg="207"/>
 			<iterate/>
 			<store arg="112"/>
-			<load arg="718"/>
+			<load arg="747"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
-			<store arg="718"/>
+			<store arg="747"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<load arg="114"/>
-			<get arg="1100"/>
+			<get arg="1124"/>
 			<iterate/>
 			<store arg="107"/>
 			<load arg="107"/>
 			<get arg="51"/>
-			<push arg="513"/>
-			<load arg="718"/>
+			<push arg="518"/>
+			<load arg="747"/>
 			<call arg="500"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="725"/>
+			<if arg="754"/>
 			<load arg="107"/>
 			<call arg="36"/>
 			<enditerate/>
 			<store arg="496"/>
 			<load arg="112"/>
-			<call arg="715"/>
-			<push arg="719"/>
-			<call arg="717"/>
+			<call arg="534"/>
+			<push arg="748"/>
+			<call arg="746"/>
 			<call arg="141"/>
-			<call arg="715"/>
+			<call arg="534"/>
 			<store arg="210"/>
 			<load arg="210"/>
-			<push arg="721"/>
-			<call arg="717"/>
+			<push arg="750"/>
+			<call arg="746"/>
 			<store arg="495"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
-			<store arg="515"/>
+			<store arg="520"/>
 			<load arg="495"/>
 			<iterate/>
 			<store arg="107"/>
 			<load arg="107"/>
-			<push arg="1013"/>
-			<call arg="717"/>
+			<push arg="1039"/>
+			<call arg="746"/>
 			<call arg="141"/>
-			<store arg="722"/>
+			<store arg="751"/>
 			<load arg="107"/>
-			<push arg="1013"/>
-			<call arg="717"/>
-			<call arg="720"/>
+			<push arg="1039"/>
+			<call arg="746"/>
+			<call arg="749"/>
 			<store arg="110"/>
 			<load arg="110"/>
 			<getasm/>
 			<get arg="13"/>
 			<call arg="145"/>
-			<if arg="1146"/>
+			<if arg="1170"/>
 			<load arg="110"/>
 			<getasm/>
 			<get arg="14"/>
 			<call arg="145"/>
-			<if arg="1147"/>
+			<if arg="1171"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<load arg="114"/>
 			<get arg="508"/>
 			<iterate/>
-			<store arg="1148"/>
-			<load arg="1148"/>
+			<store arg="1172"/>
+			<load arg="1172"/>
 			<get arg="51"/>
 			<load arg="107"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="853"/>
-			<load arg="1148"/>
+			<if arg="880"/>
+			<load arg="1172"/>
 			<call arg="36"/>
 			<enditerate/>
 			<store arg="191"/>
 			<getasm/>
 			<load arg="191"/>
 			<call arg="141"/>
-			<call arg="522"/>
+			<call arg="527"/>
 			<store arg="497"/>
-			<goto arg="858"/>
+			<goto arg="885"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<load arg="114"/>
 			<get arg="508"/>
 			<iterate/>
-			<store arg="1148"/>
-			<load arg="1148"/>
-			<call arg="1012"/>
-			<load arg="722"/>
+			<store arg="1172"/>
+			<load arg="1172"/>
+			<call arg="1038"/>
+			<load arg="751"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="1149"/>
-			<load arg="1148"/>
+			<if arg="1173"/>
+			<load arg="1172"/>
 			<call arg="36"/>
 			<enditerate/>
 			<store arg="191"/>
@@ -6845,29 +6978,29 @@
 			<new/>
 			<load arg="191"/>
 			<iterate/>
-			<store arg="1148"/>
+			<store arg="1172"/>
 			<getasm/>
-			<load arg="1148"/>
-			<call arg="522"/>
+			<load arg="1172"/>
+			<call arg="527"/>
 			<call arg="36"/>
 			<enditerate/>
-			<call arg="1102"/>
+			<call arg="1126"/>
 			<store arg="497"/>
-			<goto arg="862"/>
+			<goto arg="889"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<load arg="114"/>
 			<get arg="508"/>
 			<iterate/>
-			<store arg="1148"/>
-			<load arg="1148"/>
-			<call arg="1012"/>
-			<load arg="722"/>
+			<store arg="1172"/>
+			<load arg="1172"/>
+			<call arg="1038"/>
+			<load arg="751"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="1150"/>
-			<load arg="1148"/>
+			<if arg="1174"/>
+			<load arg="1172"/>
 			<call arg="36"/>
 			<enditerate/>
 			<store arg="191"/>
@@ -6877,232 +7010,232 @@
 			<new/>
 			<load arg="191"/>
 			<iterate/>
-			<store arg="1148"/>
+			<store arg="1172"/>
 			<getasm/>
-			<load arg="1148"/>
-			<call arg="522"/>
+			<load arg="1172"/>
+			<call arg="527"/>
 			<call arg="36"/>
 			<enditerate/>
-			<call arg="1102"/>
+			<call arg="1126"/>
 			<store arg="497"/>
 			<getasm/>
 			<load arg="497"/>
-			<call arg="1151"/>
+			<call arg="1175"/>
 			<store arg="497"/>
-			<load arg="515"/>
+			<load arg="520"/>
 			<load arg="497"/>
-			<call arg="1152"/>
-			<store arg="515"/>
+			<call arg="1176"/>
+			<store arg="520"/>
 			<enditerate/>
 			<getasm/>
-			<load arg="515"/>
-			<call arg="1153"/>
+			<load arg="520"/>
+			<call arg="1177"/>
 			<store arg="497"/>
 			<getasm/>
 			<load arg="191"/>
 			<load arg="496"/>
-			<push arg="1101"/>
+			<push arg="1125"/>
 			<call arg="503"/>
 			<pushi arg="105"/>
 			<pushi arg="105"/>
-			<call arg="521"/>
-			<store arg="1145"/>
+			<call arg="526"/>
+			<store arg="1169"/>
 			<load arg="497"/>
-			<load arg="1145"/>
-			<set arg="1154"/>
-			<load arg="1145"/>
+			<load arg="1169"/>
+			<set arg="1178"/>
+			<load arg="1169"/>
 			<load arg="497"/>
 			<set arg="256"/>
-			<load arg="1145"/>
+			<load arg="1169"/>
 			<load arg="497"/>
-			<call arg="523"/>
-			<set arg="524"/>
+			<call arg="528"/>
+			<set arg="529"/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="1155" begin="0" end="0"/>
-			<lne id="1156" begin="1" end="1"/>
-			<lne id="1157" begin="0" end="2"/>
-			<lne id="1158" begin="4" end="4"/>
-			<lne id="1159" begin="4" end="5"/>
-			<lne id="1160" begin="7" end="7"/>
-			<lne id="1161" begin="7" end="8"/>
-			<lne id="1162" begin="9" end="9"/>
-			<lne id="1163" begin="10" end="10"/>
-			<lne id="1164" begin="7" end="11"/>
-			<lne id="1165" begin="7" end="12"/>
-			<lne id="1166" begin="13" end="13"/>
-			<lne id="1167" begin="7" end="14"/>
-			<lne id="1168" begin="16" end="19"/>
-			<lne id="1169" begin="21" end="24"/>
-			<lne id="1170" begin="26" end="29"/>
-			<lne id="1171" begin="31" end="34"/>
-			<lne id="1172" begin="36" end="39"/>
-			<lne id="1173" begin="41" end="43"/>
-			<lne id="1174" begin="45" end="48"/>
-			<lne id="1175" begin="50" end="52"/>
-			<lne id="1176" begin="54" end="54"/>
-			<lne id="1177" begin="56" end="59"/>
-			<lne id="1178" begin="61" end="64"/>
-			<lne id="1179" begin="66" end="69"/>
-			<lne id="1180" begin="71" end="71"/>
-			<lne id="1181" begin="74" end="74"/>
-			<lne id="1182" begin="75" end="75"/>
-			<lne id="1183" begin="74" end="76"/>
-			<lne id="1184" begin="74" end="77"/>
-			<lne id="1185" begin="81" end="81"/>
-			<lne id="1186" begin="81" end="82"/>
-			<lne id="1187" begin="85" end="85"/>
-			<lne id="1188" begin="85" end="86"/>
-			<lne id="1189" begin="87" end="87"/>
-			<lne id="1190" begin="88" end="88"/>
-			<lne id="1191" begin="87" end="89"/>
-			<lne id="1192" begin="85" end="90"/>
-			<lne id="1193" begin="78" end="95"/>
-			<lne id="1194" begin="78" end="96"/>
-			<lne id="1195" begin="97" end="97"/>
-			<lne id="1196" begin="97" end="98"/>
-			<lne id="1197" begin="99" end="99"/>
-			<lne id="1198" begin="97" end="100"/>
-			<lne id="1199" begin="97" end="101"/>
-			<lne id="1200" begin="97" end="102"/>
-			<lne id="1201" begin="97" end="103"/>
-			<lne id="1202" begin="104" end="104"/>
-			<lne id="1203" begin="105" end="105"/>
-			<lne id="1204" begin="104" end="106"/>
-			<lne id="1205" begin="104" end="107"/>
-			<lne id="1206" begin="108" end="110"/>
-			<lne id="1207" begin="108" end="111"/>
-			<lne id="1208" begin="112" end="112"/>
-			<lne id="1209" begin="115" end="115"/>
-			<lne id="1210" begin="116" end="116"/>
-			<lne id="1211" begin="115" end="117"/>
-			<lne id="1212" begin="115" end="118"/>
-			<lne id="1213" begin="115" end="119"/>
-			<lne id="1214" begin="120" end="120"/>
-			<lne id="1215" begin="121" end="121"/>
-			<lne id="1216" begin="120" end="122"/>
-			<lne id="1217" begin="120" end="123"/>
-			<lne id="1218" begin="120" end="124"/>
-			<lne id="1219" begin="125" end="125"/>
-			<lne id="1220" begin="126" end="126"/>
-			<lne id="1221" begin="126" end="127"/>
-			<lne id="1222" begin="125" end="128"/>
-			<lne id="1223" begin="130" end="130"/>
-			<lne id="1224" begin="131" end="131"/>
-			<lne id="1225" begin="131" end="132"/>
-			<lne id="1226" begin="130" end="133"/>
-			<lne id="1227" begin="138" end="138"/>
-			<lne id="1228" begin="138" end="139"/>
-			<lne id="1229" begin="142" end="142"/>
-			<lne id="1230" begin="142" end="143"/>
-			<lne id="1231" begin="144" end="144"/>
-			<lne id="1232" begin="142" end="145"/>
-			<lne id="1233" begin="135" end="150"/>
-			<lne id="1234" begin="135" end="151"/>
-			<lne id="1235" begin="152" end="152"/>
-			<lne id="1236" begin="153" end="153"/>
-			<lne id="1237" begin="153" end="154"/>
-			<lne id="1238" begin="152" end="155"/>
-			<lne id="1239" begin="152" end="156"/>
-			<lne id="1240" begin="161" end="161"/>
-			<lne id="1241" begin="161" end="162"/>
-			<lne id="1242" begin="165" end="165"/>
-			<lne id="1243" begin="165" end="166"/>
-			<lne id="1244" begin="167" end="167"/>
-			<lne id="1245" begin="165" end="168"/>
-			<lne id="1246" begin="158" end="173"/>
-			<lne id="1247" begin="158" end="174"/>
-			<lne id="1248" begin="175" end="175"/>
-			<lne id="1249" begin="179" end="179"/>
-			<lne id="1250" begin="182" end="182"/>
-			<lne id="1251" begin="183" end="183"/>
-			<lne id="1252" begin="182" end="184"/>
-			<lne id="1253" begin="176" end="186"/>
-			<lne id="1254" begin="175" end="187"/>
-			<lne id="1255" begin="175" end="188"/>
-			<lne id="1256" begin="130" end="188"/>
-			<lne id="1257" begin="193" end="193"/>
-			<lne id="1258" begin="193" end="194"/>
-			<lne id="1259" begin="197" end="197"/>
-			<lne id="1260" begin="197" end="198"/>
-			<lne id="1261" begin="199" end="199"/>
-			<lne id="1262" begin="197" end="200"/>
-			<lne id="1263" begin="190" end="205"/>
-			<lne id="1264" begin="190" end="206"/>
-			<lne id="1265" begin="207" end="207"/>
-			<lne id="1266" begin="211" end="211"/>
-			<lne id="1267" begin="214" end="214"/>
-			<lne id="1268" begin="215" end="215"/>
-			<lne id="1269" begin="214" end="216"/>
-			<lne id="1270" begin="208" end="218"/>
-			<lne id="1271" begin="207" end="219"/>
-			<lne id="1272" begin="207" end="220"/>
-			<lne id="1273" begin="221" end="221"/>
-			<lne id="1274" begin="222" end="222"/>
-			<lne id="1275" begin="221" end="223"/>
-			<lne id="1276" begin="221" end="224"/>
-			<lne id="1277" begin="125" end="224"/>
-			<lne id="1278" begin="225" end="225"/>
-			<lne id="1279" begin="226" end="226"/>
-			<lne id="1280" begin="225" end="227"/>
-			<lne id="1281" begin="225" end="228"/>
-			<lne id="1282" begin="112" end="229"/>
-			<lne id="1283" begin="230" end="230"/>
-			<lne id="1284" begin="231" end="231"/>
-			<lne id="1285" begin="230" end="232"/>
-			<lne id="1286" begin="230" end="233"/>
-			<lne id="1287" begin="234" end="234"/>
-			<lne id="1288" begin="235" end="235"/>
-			<lne id="1289" begin="236" end="236"/>
-			<lne id="1290" begin="237" end="237"/>
-			<lne id="1291" begin="237" end="238"/>
-			<lne id="1292" begin="239" end="239"/>
-			<lne id="1293" begin="240" end="240"/>
-			<lne id="1294" begin="234" end="241"/>
-			<lne id="1295" begin="234" end="242"/>
-			<lne id="1296" begin="243" end="243"/>
-			<lne id="1297" begin="244" end="244"/>
-			<lne id="1298" begin="243" end="245"/>
-			<lne id="1299" begin="246" end="246"/>
-			<lne id="1300" begin="247" end="247"/>
-			<lne id="1301" begin="246" end="248"/>
-			<lne id="1302" begin="249" end="249"/>
-			<lne id="1303" begin="250" end="250"/>
-			<lne id="1304" begin="250" end="251"/>
-			<lne id="1305" begin="249" end="252"/>
-			<lne id="1306" begin="71" end="253"/>
-			<lne id="1307" begin="71" end="253"/>
+			<lne id="1179" begin="0" end="0"/>
+			<lne id="1180" begin="1" end="1"/>
+			<lne id="1181" begin="0" end="2"/>
+			<lne id="1182" begin="4" end="4"/>
+			<lne id="1183" begin="4" end="5"/>
+			<lne id="1184" begin="7" end="7"/>
+			<lne id="1185" begin="7" end="8"/>
+			<lne id="1186" begin="9" end="9"/>
+			<lne id="1187" begin="10" end="10"/>
+			<lne id="1188" begin="7" end="11"/>
+			<lne id="1189" begin="7" end="12"/>
+			<lne id="1190" begin="13" end="13"/>
+			<lne id="1191" begin="7" end="14"/>
+			<lne id="1192" begin="16" end="19"/>
+			<lne id="1193" begin="21" end="24"/>
+			<lne id="1194" begin="26" end="29"/>
+			<lne id="1195" begin="31" end="34"/>
+			<lne id="1196" begin="36" end="39"/>
+			<lne id="1197" begin="41" end="43"/>
+			<lne id="1198" begin="45" end="48"/>
+			<lne id="1199" begin="50" end="52"/>
+			<lne id="1200" begin="54" end="54"/>
+			<lne id="1201" begin="56" end="59"/>
+			<lne id="1202" begin="61" end="64"/>
+			<lne id="1203" begin="66" end="69"/>
+			<lne id="1204" begin="71" end="71"/>
+			<lne id="1205" begin="74" end="74"/>
+			<lne id="1206" begin="75" end="75"/>
+			<lne id="1207" begin="74" end="76"/>
+			<lne id="1208" begin="74" end="77"/>
+			<lne id="1209" begin="81" end="81"/>
+			<lne id="1210" begin="81" end="82"/>
+			<lne id="1211" begin="85" end="85"/>
+			<lne id="1212" begin="85" end="86"/>
+			<lne id="1213" begin="87" end="87"/>
+			<lne id="1214" begin="88" end="88"/>
+			<lne id="1215" begin="87" end="89"/>
+			<lne id="1216" begin="85" end="90"/>
+			<lne id="1217" begin="78" end="95"/>
+			<lne id="1218" begin="78" end="96"/>
+			<lne id="1219" begin="97" end="97"/>
+			<lne id="1220" begin="97" end="98"/>
+			<lne id="1221" begin="99" end="99"/>
+			<lne id="1222" begin="97" end="100"/>
+			<lne id="1223" begin="97" end="101"/>
+			<lne id="1224" begin="97" end="102"/>
+			<lne id="1225" begin="97" end="103"/>
+			<lne id="1226" begin="104" end="104"/>
+			<lne id="1227" begin="105" end="105"/>
+			<lne id="1228" begin="104" end="106"/>
+			<lne id="1229" begin="104" end="107"/>
+			<lne id="1230" begin="108" end="110"/>
+			<lne id="1231" begin="108" end="111"/>
+			<lne id="1232" begin="112" end="112"/>
+			<lne id="1233" begin="115" end="115"/>
+			<lne id="1234" begin="116" end="116"/>
+			<lne id="1235" begin="115" end="117"/>
+			<lne id="1236" begin="115" end="118"/>
+			<lne id="1237" begin="115" end="119"/>
+			<lne id="1238" begin="120" end="120"/>
+			<lne id="1239" begin="121" end="121"/>
+			<lne id="1240" begin="120" end="122"/>
+			<lne id="1241" begin="120" end="123"/>
+			<lne id="1242" begin="120" end="124"/>
+			<lne id="1243" begin="125" end="125"/>
+			<lne id="1244" begin="126" end="126"/>
+			<lne id="1245" begin="126" end="127"/>
+			<lne id="1246" begin="125" end="128"/>
+			<lne id="1247" begin="130" end="130"/>
+			<lne id="1248" begin="131" end="131"/>
+			<lne id="1249" begin="131" end="132"/>
+			<lne id="1250" begin="130" end="133"/>
+			<lne id="1251" begin="138" end="138"/>
+			<lne id="1252" begin="138" end="139"/>
+			<lne id="1253" begin="142" end="142"/>
+			<lne id="1254" begin="142" end="143"/>
+			<lne id="1255" begin="144" end="144"/>
+			<lne id="1256" begin="142" end="145"/>
+			<lne id="1257" begin="135" end="150"/>
+			<lne id="1258" begin="135" end="151"/>
+			<lne id="1259" begin="152" end="152"/>
+			<lne id="1260" begin="153" end="153"/>
+			<lne id="1261" begin="153" end="154"/>
+			<lne id="1262" begin="152" end="155"/>
+			<lne id="1263" begin="152" end="156"/>
+			<lne id="1264" begin="161" end="161"/>
+			<lne id="1265" begin="161" end="162"/>
+			<lne id="1266" begin="165" end="165"/>
+			<lne id="1267" begin="165" end="166"/>
+			<lne id="1268" begin="167" end="167"/>
+			<lne id="1269" begin="165" end="168"/>
+			<lne id="1270" begin="158" end="173"/>
+			<lne id="1271" begin="158" end="174"/>
+			<lne id="1272" begin="175" end="175"/>
+			<lne id="1273" begin="179" end="179"/>
+			<lne id="1274" begin="182" end="182"/>
+			<lne id="1275" begin="183" end="183"/>
+			<lne id="1276" begin="182" end="184"/>
+			<lne id="1277" begin="176" end="186"/>
+			<lne id="1278" begin="175" end="187"/>
+			<lne id="1279" begin="175" end="188"/>
+			<lne id="1280" begin="130" end="188"/>
+			<lne id="1281" begin="193" end="193"/>
+			<lne id="1282" begin="193" end="194"/>
+			<lne id="1283" begin="197" end="197"/>
+			<lne id="1284" begin="197" end="198"/>
+			<lne id="1285" begin="199" end="199"/>
+			<lne id="1286" begin="197" end="200"/>
+			<lne id="1287" begin="190" end="205"/>
+			<lne id="1288" begin="190" end="206"/>
+			<lne id="1289" begin="207" end="207"/>
+			<lne id="1290" begin="211" end="211"/>
+			<lne id="1291" begin="214" end="214"/>
+			<lne id="1292" begin="215" end="215"/>
+			<lne id="1293" begin="214" end="216"/>
+			<lne id="1294" begin="208" end="218"/>
+			<lne id="1295" begin="207" end="219"/>
+			<lne id="1296" begin="207" end="220"/>
+			<lne id="1297" begin="221" end="221"/>
+			<lne id="1298" begin="222" end="222"/>
+			<lne id="1299" begin="221" end="223"/>
+			<lne id="1300" begin="221" end="224"/>
+			<lne id="1301" begin="125" end="224"/>
+			<lne id="1302" begin="225" end="225"/>
+			<lne id="1303" begin="226" end="226"/>
+			<lne id="1304" begin="225" end="227"/>
+			<lne id="1305" begin="225" end="228"/>
+			<lne id="1306" begin="112" end="229"/>
+			<lne id="1307" begin="230" end="230"/>
+			<lne id="1308" begin="231" end="231"/>
+			<lne id="1309" begin="230" end="232"/>
+			<lne id="1310" begin="230" end="233"/>
+			<lne id="1311" begin="234" end="234"/>
+			<lne id="1312" begin="235" end="235"/>
+			<lne id="1313" begin="236" end="236"/>
+			<lne id="1314" begin="237" end="237"/>
+			<lne id="1315" begin="237" end="238"/>
+			<lne id="1316" begin="239" end="239"/>
+			<lne id="1317" begin="240" end="240"/>
+			<lne id="1318" begin="234" end="241"/>
+			<lne id="1319" begin="234" end="242"/>
+			<lne id="1320" begin="243" end="243"/>
+			<lne id="1321" begin="244" end="244"/>
+			<lne id="1322" begin="243" end="245"/>
+			<lne id="1323" begin="246" end="246"/>
+			<lne id="1324" begin="247" end="247"/>
+			<lne id="1325" begin="246" end="248"/>
+			<lne id="1326" begin="249" end="249"/>
+			<lne id="1327" begin="250" end="250"/>
+			<lne id="1328" begin="250" end="251"/>
+			<lne id="1329" begin="249" end="252"/>
+			<lne id="1330" begin="71" end="253"/>
+			<lne id="1331" begin="71" end="253"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="18" name="118" begin="84" end="94"/>
-			<lve slot="19" name="1088" begin="141" end="149"/>
-			<lve slot="19" name="1088" begin="164" end="172"/>
-			<lve slot="19" name="826" begin="181" end="185"/>
-			<lve slot="19" name="1088" begin="196" end="204"/>
-			<lve slot="19" name="826" begin="213" end="217"/>
-			<lve slot="18" name="654" begin="114" end="228"/>
-			<lve slot="17" name="828" begin="73" end="252"/>
+			<lve slot="19" name="1114" begin="141" end="149"/>
+			<lve slot="19" name="1114" begin="164" end="172"/>
+			<lve slot="19" name="855" begin="181" end="185"/>
+			<lve slot="19" name="1114" begin="196" end="204"/>
+			<lve slot="19" name="855" begin="213" end="217"/>
+			<lve slot="18" name="684" begin="114" end="228"/>
+			<lve slot="17" name="857" begin="73" end="252"/>
 			<lve slot="2" name="485" begin="3" end="253"/>
-			<lve slot="3" name="655" begin="6" end="253"/>
+			<lve slot="3" name="685" begin="6" end="253"/>
 			<lve slot="4" name="15" begin="15" end="253"/>
-			<lve slot="5" name="829" begin="20" end="253"/>
-			<lve slot="6" name="830" begin="25" end="253"/>
-			<lve slot="7" name="1308" begin="30" end="253"/>
-			<lve slot="8" name="657" begin="35" end="253"/>
-			<lve slot="9" name="1309" begin="40" end="253"/>
-			<lve slot="10" name="1310" begin="44" end="253"/>
-			<lve slot="11" name="1311" begin="49" end="253"/>
-			<lve slot="12" name="1312" begin="53" end="253"/>
-			<lve slot="13" name="834" begin="55" end="253"/>
-			<lve slot="14" name="1313" begin="60" end="253"/>
-			<lve slot="15" name="1314" begin="65" end="253"/>
-			<lve slot="16" name="661" begin="70" end="253"/>
+			<lve slot="5" name="858" begin="20" end="253"/>
+			<lve slot="6" name="859" begin="25" end="253"/>
+			<lve slot="7" name="1332" begin="30" end="253"/>
+			<lve slot="8" name="687" begin="35" end="253"/>
+			<lve slot="9" name="1333" begin="40" end="253"/>
+			<lve slot="10" name="1334" begin="44" end="253"/>
+			<lve slot="11" name="1335" begin="49" end="253"/>
+			<lve slot="12" name="1336" begin="53" end="253"/>
+			<lve slot="13" name="863" begin="55" end="253"/>
+			<lve slot="14" name="1337" begin="60" end="253"/>
+			<lve slot="15" name="1338" begin="65" end="253"/>
+			<lve slot="16" name="691" begin="70" end="253"/>
 			<lve slot="0" name="103" begin="0" end="253"/>
 			<lve slot="1" name="484" begin="0" end="253"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1315">
+	<operation name="1339">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -7116,24 +7249,24 @@
 			<call arg="225"/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<get arg="836"/>
+			<get arg="865"/>
 			<call arg="141"/>
 			<store arg="207"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<load arg="207"/>
-			<get arg="837"/>
+			<get arg="866"/>
 			<get arg="206"/>
 			<call arg="141"/>
 			<get arg="206"/>
 			<iterate/>
 			<store arg="210"/>
 			<load arg="210"/>
-			<push arg="838"/>
+			<push arg="867"/>
 			<push arg="60"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<call arg="196"/>
 			<if arg="113"/>
 			<load arg="210"/>
@@ -7144,19 +7277,19 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="207"/>
-			<get arg="837"/>
+			<get arg="866"/>
 			<get arg="206"/>
 			<call arg="141"/>
 			<get arg="206"/>
 			<iterate/>
 			<store arg="213"/>
 			<load arg="213"/>
-			<push arg="840"/>
+			<push arg="868"/>
 			<push arg="35"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<call arg="196"/>
-			<if arg="841"/>
+			<if arg="869"/>
 			<load arg="213"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -7165,19 +7298,19 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="207"/>
-			<get arg="837"/>
+			<get arg="866"/>
 			<get arg="206"/>
 			<call arg="141"/>
 			<get arg="206"/>
 			<iterate/>
 			<store arg="495"/>
 			<load arg="495"/>
-			<push arg="842"/>
+			<push arg="870"/>
 			<push arg="60"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<call arg="196"/>
-			<if arg="843"/>
+			<if arg="871"/>
 			<load arg="495"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -7206,251 +7339,251 @@
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
-			<store arg="515"/>
+			<store arg="520"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
-			<store arg="718"/>
+			<store arg="747"/>
 			<load arg="495"/>
 			<iterate/>
-			<store arg="722"/>
-			<load arg="722"/>
+			<store arg="751"/>
+			<load arg="751"/>
 			<call arg="225"/>
 			<store arg="496"/>
 			<load arg="496"/>
 			<push arg="44"/>
 			<push arg="35"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="848"/>
-			<goto arg="1316"/>
+			<call arg="881"/>
+			<if arg="514"/>
+			<goto arg="1340"/>
 			<load arg="496"/>
 			<push arg="45"/>
 			<push arg="35"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="1316"/>
+			<call arg="881"/>
+			<if arg="1340"/>
 			<load arg="496"/>
-			<get arg="863"/>
+			<get arg="890"/>
 			<call arg="493"/>
-			<if arg="1317"/>
+			<if arg="1341"/>
 			<load arg="496"/>
-			<get arg="1318"/>
+			<get arg="1342"/>
 			<call arg="493"/>
-			<if arg="1319"/>
-			<goto arg="1320"/>
+			<if arg="1343"/>
+			<goto arg="1344"/>
 			<load arg="496"/>
-			<push arg="1101"/>
-			<set arg="1318"/>
+			<push arg="1125"/>
+			<set arg="1342"/>
 			<load arg="496"/>
-			<get arg="1321"/>
+			<get arg="1345"/>
 			<call arg="493"/>
-			<if arg="1322"/>
+			<if arg="1346"/>
 			<goto arg="218"/>
 			<load arg="496"/>
 			<push arg="105"/>
-			<set arg="1321"/>
-			<load arg="722"/>
-			<get arg="1323"/>
-			<call arg="1324"/>
-			<if arg="1325"/>
+			<set arg="1345"/>
+			<load arg="751"/>
+			<get arg="1347"/>
+			<call arg="1348"/>
+			<if arg="1349"/>
 			<getasm/>
 			<load arg="496"/>
 			<load arg="105"/>
-			<pcall arg="866"/>
-			<goto arg="1326"/>
+			<pcall arg="892"/>
+			<goto arg="1350"/>
 			<load arg="496"/>
-			<get arg="863"/>
+			<get arg="890"/>
 			<store arg="497"/>
 			<getasm/>
 			<load arg="497"/>
 			<load arg="105"/>
-			<call arg="1327"/>
-			<store arg="515"/>
+			<call arg="1351"/>
+			<store arg="520"/>
 			<getasm/>
-			<load arg="515"/>
-			<call arg="1328"/>
+			<load arg="520"/>
+			<call arg="1352"/>
 			<getasm/>
 			<get arg="16"/>
-			<push arg="1329"/>
+			<push arg="1353"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<load arg="722"/>
-			<get arg="1330"/>
+			<load arg="751"/>
+			<get arg="1354"/>
 			<set arg="118"/>
 			<dup/>
 			<load arg="114"/>
-			<set arg="1331"/>
-			<call arg="1332"/>
+			<set arg="1355"/>
+			<call arg="1356"/>
 			<load arg="496"/>
-			<get arg="1318"/>
+			<get arg="1342"/>
 			<call arg="503"/>
 			<pushi arg="105"/>
 			<load arg="496"/>
-			<get arg="1321"/>
-			<call arg="1333"/>
-			<call arg="521"/>
+			<get arg="1345"/>
+			<call arg="1357"/>
+			<call arg="526"/>
 			<store arg="498"/>
-			<load arg="515"/>
+			<load arg="520"/>
 			<load arg="498"/>
-			<set arg="1154"/>
+			<set arg="1178"/>
 			<load arg="498"/>
-			<load arg="515"/>
+			<load arg="520"/>
 			<set arg="256"/>
 			<load arg="498"/>
-			<load arg="515"/>
-			<call arg="523"/>
-			<set arg="524"/>
-			<goto arg="1317"/>
-			<goto arg="1316"/>
+			<load arg="520"/>
+			<call arg="528"/>
+			<set arg="529"/>
+			<goto arg="1341"/>
+			<goto arg="1340"/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="1334" begin="0" end="0"/>
-			<lne id="1335" begin="1" end="1"/>
-			<lne id="1336" begin="0" end="2"/>
-			<lne id="1337" begin="4" end="4"/>
-			<lne id="1338" begin="4" end="5"/>
-			<lne id="1339" begin="7" end="7"/>
-			<lne id="1340" begin="7" end="8"/>
-			<lne id="1341" begin="7" end="9"/>
-			<lne id="1342" begin="14" end="14"/>
-			<lne id="1343" begin="14" end="15"/>
-			<lne id="1344" begin="14" end="16"/>
-			<lne id="1345" begin="14" end="17"/>
-			<lne id="1346" begin="14" end="18"/>
-			<lne id="1347" begin="21" end="21"/>
-			<lne id="1348" begin="22" end="24"/>
-			<lne id="1349" begin="21" end="25"/>
-			<lne id="1350" begin="11" end="30"/>
-			<lne id="1351" begin="35" end="35"/>
-			<lne id="1352" begin="35" end="36"/>
-			<lne id="1353" begin="35" end="37"/>
-			<lne id="1354" begin="35" end="38"/>
-			<lne id="1355" begin="35" end="39"/>
-			<lne id="1356" begin="42" end="42"/>
-			<lne id="1357" begin="43" end="45"/>
-			<lne id="1358" begin="42" end="46"/>
-			<lne id="1359" begin="32" end="51"/>
-			<lne id="1360" begin="56" end="56"/>
-			<lne id="1361" begin="56" end="57"/>
-			<lne id="1362" begin="56" end="58"/>
-			<lne id="1363" begin="56" end="59"/>
-			<lne id="1364" begin="56" end="60"/>
-			<lne id="1365" begin="63" end="63"/>
-			<lne id="1366" begin="64" end="66"/>
-			<lne id="1367" begin="63" end="67"/>
-			<lne id="1368" begin="53" end="72"/>
-			<lne id="1369" begin="74" end="77"/>
-			<lne id="1370" begin="79" end="82"/>
-			<lne id="1371" begin="84" end="87"/>
-			<lne id="1372" begin="89" end="92"/>
-			<lne id="1373" begin="94" end="97"/>
-			<lne id="1374" begin="99" end="102"/>
-			<lne id="1375" begin="104" end="104"/>
-			<lne id="1376" begin="107" end="107"/>
-			<lne id="1377" begin="107" end="108"/>
-			<lne id="1378" begin="107" end="109"/>
-			<lne id="1379" begin="110" end="110"/>
-			<lne id="1380" begin="111" end="113"/>
-			<lne id="1381" begin="110" end="114"/>
-			<lne id="1382" begin="117" end="117"/>
-			<lne id="1383" begin="118" end="120"/>
-			<lne id="1384" begin="117" end="121"/>
-			<lne id="1385" begin="123" end="123"/>
-			<lne id="1386" begin="123" end="124"/>
-			<lne id="1387" begin="123" end="125"/>
-			<lne id="1388" begin="127" end="127"/>
-			<lne id="1389" begin="127" end="128"/>
-			<lne id="1390" begin="127" end="129"/>
-			<lne id="1391" begin="132" end="132"/>
-			<lne id="1392" begin="133" end="133"/>
-			<lne id="1393" begin="132" end="134"/>
-			<lne id="1394" begin="127" end="134"/>
-			<lne id="1395" begin="135" end="135"/>
-			<lne id="1396" begin="135" end="136"/>
-			<lne id="1397" begin="135" end="137"/>
-			<lne id="1398" begin="140" end="140"/>
-			<lne id="1399" begin="141" end="141"/>
-			<lne id="1400" begin="140" end="142"/>
-			<lne id="1401" begin="135" end="142"/>
-			<lne id="1402" begin="143" end="143"/>
-			<lne id="1403" begin="143" end="144"/>
-			<lne id="1404" begin="143" end="145"/>
-			<lne id="1405" begin="147" end="147"/>
-			<lne id="1406" begin="148" end="148"/>
-			<lne id="1407" begin="149" end="149"/>
-			<lne id="1408" begin="147" end="150"/>
-			<lne id="1409" begin="152" end="152"/>
-			<lne id="1410" begin="152" end="153"/>
-			<lne id="1411" begin="152" end="154"/>
-			<lne id="1412" begin="155" end="155"/>
-			<lne id="1413" begin="156" end="156"/>
-			<lne id="1414" begin="157" end="157"/>
-			<lne id="1415" begin="155" end="158"/>
-			<lne id="1416" begin="155" end="159"/>
-			<lne id="1417" begin="160" end="160"/>
-			<lne id="1418" begin="161" end="161"/>
-			<lne id="1419" begin="161" end="162"/>
-			<lne id="1420" begin="163" end="163"/>
-			<lne id="1421" begin="163" end="164"/>
-			<lne id="1422" begin="169" end="169"/>
-			<lne id="1423" begin="169" end="170"/>
-			<lne id="1424" begin="168" end="171"/>
-			<lne id="1425" begin="173" end="173"/>
-			<lne id="1426" begin="172" end="174"/>
-			<lne id="1427" begin="165" end="174"/>
-			<lne id="1428" begin="163" end="175"/>
-			<lne id="1429" begin="176" end="176"/>
-			<lne id="1430" begin="176" end="177"/>
-			<lne id="1431" begin="176" end="178"/>
-			<lne id="1432" begin="179" end="179"/>
-			<lne id="1433" begin="180" end="180"/>
-			<lne id="1434" begin="180" end="181"/>
-			<lne id="1435" begin="180" end="182"/>
-			<lne id="1436" begin="160" end="183"/>
-			<lne id="1437" begin="160" end="184"/>
-			<lne id="1438" begin="185" end="185"/>
-			<lne id="1439" begin="186" end="186"/>
-			<lne id="1440" begin="185" end="187"/>
-			<lne id="1441" begin="188" end="188"/>
-			<lne id="1442" begin="189" end="189"/>
-			<lne id="1443" begin="188" end="190"/>
-			<lne id="1444" begin="191" end="191"/>
-			<lne id="1445" begin="192" end="192"/>
-			<lne id="1446" begin="192" end="193"/>
-			<lne id="1447" begin="191" end="194"/>
-			<lne id="1448" begin="143" end="194"/>
-			<lne id="1449" begin="123" end="195"/>
-			<lne id="1450" begin="117" end="196"/>
-			<lne id="1451" begin="110" end="196"/>
-			<lne id="1452" begin="104" end="197"/>
-			<lne id="1453" begin="104" end="197"/>
+			<lne id="1358" begin="0" end="0"/>
+			<lne id="1359" begin="1" end="1"/>
+			<lne id="1360" begin="0" end="2"/>
+			<lne id="1361" begin="4" end="4"/>
+			<lne id="1362" begin="4" end="5"/>
+			<lne id="1363" begin="7" end="7"/>
+			<lne id="1364" begin="7" end="8"/>
+			<lne id="1365" begin="7" end="9"/>
+			<lne id="1366" begin="14" end="14"/>
+			<lne id="1367" begin="14" end="15"/>
+			<lne id="1368" begin="14" end="16"/>
+			<lne id="1369" begin="14" end="17"/>
+			<lne id="1370" begin="14" end="18"/>
+			<lne id="1371" begin="21" end="21"/>
+			<lne id="1372" begin="22" end="24"/>
+			<lne id="1373" begin="21" end="25"/>
+			<lne id="1374" begin="11" end="30"/>
+			<lne id="1375" begin="35" end="35"/>
+			<lne id="1376" begin="35" end="36"/>
+			<lne id="1377" begin="35" end="37"/>
+			<lne id="1378" begin="35" end="38"/>
+			<lne id="1379" begin="35" end="39"/>
+			<lne id="1380" begin="42" end="42"/>
+			<lne id="1381" begin="43" end="45"/>
+			<lne id="1382" begin="42" end="46"/>
+			<lne id="1383" begin="32" end="51"/>
+			<lne id="1384" begin="56" end="56"/>
+			<lne id="1385" begin="56" end="57"/>
+			<lne id="1386" begin="56" end="58"/>
+			<lne id="1387" begin="56" end="59"/>
+			<lne id="1388" begin="56" end="60"/>
+			<lne id="1389" begin="63" end="63"/>
+			<lne id="1390" begin="64" end="66"/>
+			<lne id="1391" begin="63" end="67"/>
+			<lne id="1392" begin="53" end="72"/>
+			<lne id="1393" begin="74" end="77"/>
+			<lne id="1394" begin="79" end="82"/>
+			<lne id="1395" begin="84" end="87"/>
+			<lne id="1396" begin="89" end="92"/>
+			<lne id="1397" begin="94" end="97"/>
+			<lne id="1398" begin="99" end="102"/>
+			<lne id="1399" begin="104" end="104"/>
+			<lne id="1400" begin="107" end="107"/>
+			<lne id="1401" begin="107" end="108"/>
+			<lne id="1402" begin="107" end="109"/>
+			<lne id="1403" begin="110" end="110"/>
+			<lne id="1404" begin="111" end="113"/>
+			<lne id="1405" begin="110" end="114"/>
+			<lne id="1406" begin="117" end="117"/>
+			<lne id="1407" begin="118" end="120"/>
+			<lne id="1408" begin="117" end="121"/>
+			<lne id="1409" begin="123" end="123"/>
+			<lne id="1410" begin="123" end="124"/>
+			<lne id="1411" begin="123" end="125"/>
+			<lne id="1412" begin="127" end="127"/>
+			<lne id="1413" begin="127" end="128"/>
+			<lne id="1414" begin="127" end="129"/>
+			<lne id="1415" begin="132" end="132"/>
+			<lne id="1416" begin="133" end="133"/>
+			<lne id="1417" begin="132" end="134"/>
+			<lne id="1418" begin="127" end="134"/>
+			<lne id="1419" begin="135" end="135"/>
+			<lne id="1420" begin="135" end="136"/>
+			<lne id="1421" begin="135" end="137"/>
+			<lne id="1422" begin="140" end="140"/>
+			<lne id="1423" begin="141" end="141"/>
+			<lne id="1424" begin="140" end="142"/>
+			<lne id="1425" begin="135" end="142"/>
+			<lne id="1426" begin="143" end="143"/>
+			<lne id="1427" begin="143" end="144"/>
+			<lne id="1428" begin="143" end="145"/>
+			<lne id="1429" begin="147" end="147"/>
+			<lne id="1430" begin="148" end="148"/>
+			<lne id="1431" begin="149" end="149"/>
+			<lne id="1432" begin="147" end="150"/>
+			<lne id="1433" begin="152" end="152"/>
+			<lne id="1434" begin="152" end="153"/>
+			<lne id="1435" begin="152" end="154"/>
+			<lne id="1436" begin="155" end="155"/>
+			<lne id="1437" begin="156" end="156"/>
+			<lne id="1438" begin="157" end="157"/>
+			<lne id="1439" begin="155" end="158"/>
+			<lne id="1440" begin="155" end="159"/>
+			<lne id="1441" begin="160" end="160"/>
+			<lne id="1442" begin="161" end="161"/>
+			<lne id="1443" begin="161" end="162"/>
+			<lne id="1444" begin="163" end="163"/>
+			<lne id="1445" begin="163" end="164"/>
+			<lne id="1446" begin="169" end="169"/>
+			<lne id="1447" begin="169" end="170"/>
+			<lne id="1448" begin="168" end="171"/>
+			<lne id="1449" begin="173" end="173"/>
+			<lne id="1450" begin="172" end="174"/>
+			<lne id="1451" begin="165" end="174"/>
+			<lne id="1452" begin="163" end="175"/>
+			<lne id="1453" begin="176" end="176"/>
+			<lne id="1454" begin="176" end="177"/>
+			<lne id="1455" begin="176" end="178"/>
+			<lne id="1456" begin="179" end="179"/>
+			<lne id="1457" begin="180" end="180"/>
+			<lne id="1458" begin="180" end="181"/>
+			<lne id="1459" begin="180" end="182"/>
+			<lne id="1460" begin="160" end="183"/>
+			<lne id="1461" begin="160" end="184"/>
+			<lne id="1462" begin="185" end="185"/>
+			<lne id="1463" begin="186" end="186"/>
+			<lne id="1464" begin="185" end="187"/>
+			<lne id="1465" begin="188" end="188"/>
+			<lne id="1466" begin="189" end="189"/>
+			<lne id="1467" begin="188" end="190"/>
+			<lne id="1468" begin="191" end="191"/>
+			<lne id="1469" begin="192" end="192"/>
+			<lne id="1470" begin="192" end="193"/>
+			<lne id="1471" begin="191" end="194"/>
+			<lne id="1472" begin="143" end="194"/>
+			<lne id="1473" begin="123" end="195"/>
+			<lne id="1474" begin="117" end="196"/>
+			<lne id="1475" begin="110" end="196"/>
+			<lne id="1476" begin="104" end="197"/>
+			<lne id="1477" begin="104" end="197"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="5" name="118" begin="20" end="29"/>
 			<lve slot="6" name="118" begin="41" end="50"/>
 			<lve slot="7" name="118" begin="62" end="71"/>
-			<lve slot="14" name="1002" begin="106" end="196"/>
+			<lve slot="14" name="1028" begin="106" end="196"/>
 			<lve slot="2" name="485" begin="3" end="197"/>
-			<lve slot="3" name="655" begin="6" end="197"/>
-			<lve slot="4" name="836" begin="10" end="197"/>
-			<lve slot="5" name="1003" begin="31" end="197"/>
-			<lve slot="6" name="1004" begin="52" end="197"/>
-			<lve slot="7" name="1005" begin="73" end="197"/>
-			<lve slot="8" name="1006" begin="78" end="197"/>
-			<lve slot="9" name="1007" begin="83" end="197"/>
-			<lve slot="10" name="661" begin="88" end="197"/>
-			<lve slot="11" name="1454" begin="93" end="197"/>
-			<lve slot="12" name="1455" begin="98" end="197"/>
-			<lve slot="13" name="1456" begin="103" end="197"/>
+			<lve slot="3" name="685" begin="6" end="197"/>
+			<lve slot="4" name="865" begin="10" end="197"/>
+			<lve slot="5" name="1029" begin="31" end="197"/>
+			<lve slot="6" name="1030" begin="52" end="197"/>
+			<lve slot="7" name="1031" begin="73" end="197"/>
+			<lve slot="8" name="1032" begin="78" end="197"/>
+			<lve slot="9" name="1033" begin="83" end="197"/>
+			<lve slot="10" name="691" begin="88" end="197"/>
+			<lve slot="11" name="1478" begin="93" end="197"/>
+			<lve slot="12" name="1479" begin="98" end="197"/>
+			<lve slot="13" name="1480" begin="103" end="197"/>
 			<lve slot="0" name="103" begin="0" end="197"/>
 			<lve slot="1" name="484" begin="0" end="197"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1457">
+	<operation name="1481">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="121"/>
@@ -7463,10 +7596,10 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="1457"/>
+			<push arg="1481"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="654"/>
+			<push arg="684"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
@@ -7474,8 +7607,8 @@
 			<load arg="114"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="1458"/>
-			<push arg="1095"/>
+			<push arg="1482"/>
+			<push arg="1121"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -7495,7 +7628,7 @@
 			<getasm/>
 			<load arg="114"/>
 			<get arg="61"/>
-			<push arg="1459"/>
+			<push arg="1483"/>
 			<call arg="500"/>
 			<load arg="105"/>
 			<call arg="500"/>
@@ -7505,30 +7638,30 @@
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="1460" begin="29" end="29"/>
-			<lne id="1461" begin="30" end="30"/>
-			<lne id="1462" begin="29" end="31"/>
-			<lne id="1463" begin="27" end="33"/>
-			<lne id="1464" begin="36" end="36"/>
-			<lne id="1465" begin="36" end="37"/>
-			<lne id="1466" begin="38" end="38"/>
-			<lne id="1467" begin="36" end="39"/>
-			<lne id="1468" begin="40" end="40"/>
-			<lne id="1469" begin="36" end="41"/>
-			<lne id="1470" begin="34" end="43"/>
-			<lne id="1471" begin="26" end="44"/>
+			<lne id="1484" begin="29" end="29"/>
+			<lne id="1485" begin="30" end="30"/>
+			<lne id="1486" begin="29" end="31"/>
+			<lne id="1487" begin="27" end="33"/>
+			<lne id="1488" begin="36" end="36"/>
+			<lne id="1489" begin="36" end="37"/>
+			<lne id="1490" begin="38" end="38"/>
+			<lne id="1491" begin="36" end="39"/>
+			<lne id="1492" begin="40" end="40"/>
+			<lne id="1493" begin="36" end="41"/>
+			<lne id="1494" begin="34" end="43"/>
+			<lne id="1495" begin="26" end="44"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="1458" begin="22" end="45"/>
+			<lve slot="3" name="1482" begin="22" end="45"/>
 			<lve slot="0" name="103" begin="0" end="45"/>
-			<lve slot="1" name="654" begin="0" end="45"/>
+			<lve slot="1" name="684" begin="0" end="45"/>
 			<lve slot="2" name="484" begin="0" end="45"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1472">
+	<operation name="1496">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1473"/>
+			<parameter name="105" type="1497"/>
 			<parameter name="114" type="482"/>
 		</parameters>
 		<code>
@@ -7538,10 +7671,10 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="1472"/>
+			<push arg="1496"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="1474"/>
+			<push arg="1498"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
@@ -7553,7 +7686,7 @@
 			<call arg="231"/>
 			<store arg="200"/>
 			<dup/>
-			<push arg="1475"/>
+			<push arg="1499"/>
 			<push arg="54"/>
 			<push arg="50"/>
 			<new/>
@@ -7567,7 +7700,7 @@
 			<getasm/>
 			<load arg="114"/>
 			<get arg="61"/>
-			<push arg="1014"/>
+			<push arg="1040"/>
 			<call arg="500"/>
 			<load arg="105"/>
 			<get arg="61"/>
@@ -7583,7 +7716,7 @@
 			<getasm/>
 			<getasm/>
 			<get arg="16"/>
-			<push arg="1329"/>
+			<push arg="1353"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
@@ -7591,52 +7724,52 @@
 			<set arg="118"/>
 			<dup/>
 			<load arg="200"/>
-			<set arg="1331"/>
+			<set arg="1355"/>
 			<load arg="207"/>
-			<call arg="1476"/>
+			<call arg="1500"/>
 			<set arg="16"/>
 			<load arg="207"/>
 		</code>
 		<linenumbertable>
-			<lne id="1477" begin="16" end="16"/>
-			<lne id="1478" begin="17" end="17"/>
-			<lne id="1479" begin="16" end="18"/>
-			<lne id="1480" begin="33" end="33"/>
-			<lne id="1481" begin="33" end="34"/>
-			<lne id="1482" begin="35" end="35"/>
-			<lne id="1483" begin="33" end="36"/>
-			<lne id="1484" begin="37" end="37"/>
-			<lne id="1485" begin="37" end="38"/>
-			<lne id="1486" begin="33" end="39"/>
-			<lne id="1487" begin="31" end="41"/>
-			<lne id="1488" begin="44" end="44"/>
-			<lne id="1489" begin="42" end="46"/>
-			<lne id="1490" begin="30" end="47"/>
-			<lne id="1491" begin="48" end="48"/>
-			<lne id="1492" begin="49" end="49"/>
-			<lne id="1493" begin="49" end="50"/>
-			<lne id="1494" begin="55" end="55"/>
-			<lne id="1495" begin="54" end="56"/>
-			<lne id="1496" begin="58" end="58"/>
-			<lne id="1497" begin="57" end="59"/>
-			<lne id="1498" begin="51" end="59"/>
-			<lne id="1499" begin="60" end="60"/>
-			<lne id="1500" begin="49" end="61"/>
-			<lne id="1501" begin="48" end="62"/>
-			<lne id="1502" begin="48" end="62"/>
+			<lne id="1501" begin="16" end="16"/>
+			<lne id="1502" begin="17" end="17"/>
+			<lne id="1503" begin="16" end="18"/>
+			<lne id="1504" begin="33" end="33"/>
+			<lne id="1505" begin="33" end="34"/>
+			<lne id="1506" begin="35" end="35"/>
+			<lne id="1507" begin="33" end="36"/>
+			<lne id="1508" begin="37" end="37"/>
+			<lne id="1509" begin="37" end="38"/>
+			<lne id="1510" begin="33" end="39"/>
+			<lne id="1511" begin="31" end="41"/>
+			<lne id="1512" begin="44" end="44"/>
+			<lne id="1513" begin="42" end="46"/>
+			<lne id="1514" begin="30" end="47"/>
+			<lne id="1515" begin="48" end="48"/>
+			<lne id="1516" begin="49" end="49"/>
+			<lne id="1517" begin="49" end="50"/>
+			<lne id="1518" begin="55" end="55"/>
+			<lne id="1519" begin="54" end="56"/>
+			<lne id="1520" begin="58" end="58"/>
+			<lne id="1521" begin="57" end="59"/>
+			<lne id="1522" begin="51" end="59"/>
+			<lne id="1523" begin="60" end="60"/>
+			<lne id="1524" begin="49" end="61"/>
+			<lne id="1525" begin="48" end="62"/>
+			<lne id="1526" begin="48" end="62"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="4" name="1475" begin="26" end="63"/>
+			<lve slot="4" name="1499" begin="26" end="63"/>
 			<lve slot="3" name="485" begin="19" end="63"/>
 			<lve slot="0" name="103" begin="0" end="63"/>
-			<lve slot="1" name="1474" begin="0" end="63"/>
+			<lve slot="1" name="1498" begin="0" end="63"/>
 			<lve slot="2" name="484" begin="0" end="63"/>
 		</localvariabletable>
 	</operation>
 	<operation name="45">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1503"/>
+			<parameter name="105" type="1527"/>
 			<parameter name="114" type="482"/>
 		</parameters>
 		<code>
@@ -7649,7 +7782,7 @@
 			<push arg="45"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="1504"/>
+			<push arg="1528"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
@@ -7661,7 +7794,7 @@
 			<call arg="231"/>
 			<store arg="200"/>
 			<dup/>
-			<push arg="1505"/>
+			<push arg="1529"/>
 			<push arg="45"/>
 			<push arg="50"/>
 			<new/>
@@ -7683,7 +7816,7 @@
 			<getasm/>
 			<load arg="200"/>
 			<get arg="212"/>
-			<push arg="1506"/>
+			<push arg="1530"/>
 			<call arg="500"/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -7696,13 +7829,13 @@
 			<push arg="45"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<call arg="196"/>
-			<if arg="1507"/>
+			<if arg="1531"/>
 			<load arg="213"/>
 			<call arg="36"/>
 			<enditerate/>
-			<call arg="1097"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
 			<call arg="500"/>
@@ -7711,7 +7844,7 @@
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="1508"/>
+			<get arg="1532"/>
 			<call arg="503"/>
 			<call arg="115"/>
 			<set arg="504"/>
@@ -7738,11 +7871,11 @@
 			<getasm/>
 			<load arg="200"/>
 			<get arg="212"/>
-			<push arg="1509"/>
+			<push arg="1533"/>
 			<call arg="500"/>
 			<load arg="200"/>
-			<get arg="525"/>
-			<call arg="1097"/>
+			<get arg="530"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
 			<call arg="500"/>
@@ -7761,187 +7894,187 @@
 			<load arg="207"/>
 			<call arg="36"/>
 			<call arg="115"/>
-			<set arg="1017"/>
+			<set arg="1043"/>
 			<dup/>
 			<getasm/>
 			<getasm/>
 			<get arg="16"/>
-			<push arg="1329"/>
+			<push arg="1353"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
 			<load arg="105"/>
-			<get arg="1510"/>
-			<get arg="1330"/>
+			<get arg="1534"/>
+			<get arg="1354"/>
 			<set arg="118"/>
 			<dup/>
 			<load arg="200"/>
-			<set arg="1331"/>
-			<call arg="1332"/>
+			<set arg="1355"/>
+			<call arg="1356"/>
 			<call arg="115"/>
-			<set arg="734"/>
+			<set arg="763"/>
 			<dup/>
 			<getasm/>
 			<pushi arg="105"/>
 			<call arg="115"/>
-			<set arg="1511"/>
+			<set arg="1535"/>
 			<dup/>
 			<getasm/>
 			<pushi arg="105"/>
 			<call arg="115"/>
-			<set arg="1512"/>
+			<set arg="1536"/>
 			<dup/>
 			<getasm/>
 			<getasm/>
 			<pushi arg="505"/>
 			<call arg="506"/>
 			<call arg="115"/>
-			<set arg="1513"/>
+			<set arg="1537"/>
 			<dup/>
 			<getasm/>
 			<getasm/>
 			<load arg="207"/>
-			<call arg="522"/>
+			<call arg="527"/>
 			<call arg="115"/>
 			<set arg="256"/>
 			<dup/>
 			<getasm/>
 			<load arg="210"/>
 			<get arg="256"/>
-			<call arg="523"/>
+			<call arg="528"/>
 			<call arg="115"/>
-			<set arg="524"/>
+			<set arg="529"/>
 			<pop/>
 			<load arg="207"/>
 			<get arg="504"/>
-			<push arg="1514"/>
+			<push arg="1538"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="1515"/>
-			<goto arg="1516"/>
+			<call arg="881"/>
+			<if arg="1539"/>
+			<goto arg="1540"/>
 			<load arg="207"/>
 			<get arg="504"/>
-			<get arg="1517"/>
+			<get arg="1541"/>
 			<pushi arg="505"/>
 			<call arg="145"/>
-			<if arg="1518"/>
-			<goto arg="1516"/>
+			<if arg="1542"/>
+			<goto arg="1540"/>
 			<load arg="207"/>
 			<get arg="504"/>
-			<push arg="1519"/>
-			<call arg="1333"/>
-			<set arg="1517"/>
+			<push arg="1543"/>
+			<call arg="1357"/>
+			<set arg="1541"/>
 			<load arg="207"/>
 		</code>
 		<linenumbertable>
-			<lne id="1520" begin="16" end="16"/>
-			<lne id="1521" begin="17" end="17"/>
-			<lne id="1522" begin="16" end="18"/>
-			<lne id="1523" begin="41" end="41"/>
-			<lne id="1524" begin="41" end="42"/>
-			<lne id="1525" begin="43" end="43"/>
-			<lne id="1526" begin="41" end="44"/>
-			<lne id="1527" begin="48" end="48"/>
-			<lne id="1528" begin="48" end="49"/>
-			<lne id="1529" begin="52" end="52"/>
-			<lne id="1530" begin="53" end="55"/>
-			<lne id="1531" begin="52" end="56"/>
-			<lne id="1532" begin="45" end="61"/>
-			<lne id="1533" begin="45" end="62"/>
-			<lne id="1534" begin="63" end="63"/>
-			<lne id="1535" begin="45" end="64"/>
-			<lne id="1536" begin="41" end="65"/>
-			<lne id="1537" begin="39" end="67"/>
-			<lne id="1538" begin="70" end="70"/>
-			<lne id="1539" begin="70" end="71"/>
-			<lne id="1540" begin="70" end="72"/>
-			<lne id="1541" begin="68" end="74"/>
-			<lne id="1542" begin="77" end="77"/>
-			<lne id="1543" begin="75" end="79"/>
-			<lne id="1544" begin="82" end="82"/>
-			<lne id="1545" begin="80" end="84"/>
-			<lne id="1546" begin="87" end="87"/>
-			<lne id="1547" begin="88" end="88"/>
-			<lne id="1548" begin="87" end="89"/>
-			<lne id="1549" begin="85" end="91"/>
-			<lne id="1550" begin="38" end="92"/>
-			<lne id="1551" begin="96" end="96"/>
-			<lne id="1552" begin="96" end="97"/>
-			<lne id="1553" begin="98" end="98"/>
-			<lne id="1554" begin="96" end="99"/>
-			<lne id="1555" begin="100" end="100"/>
-			<lne id="1556" begin="100" end="101"/>
-			<lne id="1557" begin="100" end="102"/>
-			<lne id="1558" begin="103" end="103"/>
-			<lne id="1559" begin="100" end="104"/>
-			<lne id="1560" begin="96" end="105"/>
-			<lne id="1561" begin="94" end="107"/>
-			<lne id="1562" begin="110" end="110"/>
-			<lne id="1563" begin="108" end="112"/>
-			<lne id="1564" begin="118" end="118"/>
-			<lne id="1565" begin="115" end="119"/>
-			<lne id="1566" begin="113" end="121"/>
-			<lne id="1567" begin="124" end="124"/>
-			<lne id="1568" begin="124" end="125"/>
-			<lne id="1569" begin="130" end="130"/>
-			<lne id="1570" begin="130" end="131"/>
-			<lne id="1571" begin="130" end="132"/>
-			<lne id="1572" begin="129" end="133"/>
-			<lne id="1573" begin="135" end="135"/>
-			<lne id="1574" begin="134" end="136"/>
-			<lne id="1575" begin="126" end="136"/>
-			<lne id="1576" begin="124" end="137"/>
-			<lne id="1577" begin="122" end="139"/>
-			<lne id="1578" begin="142" end="142"/>
-			<lne id="1579" begin="140" end="144"/>
-			<lne id="1580" begin="147" end="147"/>
-			<lne id="1581" begin="145" end="149"/>
-			<lne id="1582" begin="152" end="152"/>
-			<lne id="1583" begin="153" end="153"/>
-			<lne id="1584" begin="152" end="154"/>
-			<lne id="1585" begin="150" end="156"/>
-			<lne id="1586" begin="159" end="159"/>
-			<lne id="1587" begin="160" end="160"/>
-			<lne id="1588" begin="159" end="161"/>
-			<lne id="1589" begin="157" end="163"/>
-			<lne id="1590" begin="166" end="166"/>
-			<lne id="1591" begin="166" end="167"/>
-			<lne id="1592" begin="166" end="168"/>
-			<lne id="1593" begin="164" end="170"/>
-			<lne id="1594" begin="93" end="171"/>
-			<lne id="1595" begin="172" end="172"/>
-			<lne id="1596" begin="172" end="173"/>
-			<lne id="1597" begin="174" end="176"/>
-			<lne id="1598" begin="172" end="177"/>
-			<lne id="1599" begin="180" end="180"/>
-			<lne id="1600" begin="180" end="181"/>
-			<lne id="1601" begin="180" end="182"/>
-			<lne id="1602" begin="183" end="183"/>
-			<lne id="1603" begin="180" end="184"/>
-			<lne id="1604" begin="187" end="187"/>
-			<lne id="1605" begin="187" end="188"/>
-			<lne id="1606" begin="189" end="189"/>
-			<lne id="1607" begin="189" end="190"/>
-			<lne id="1608" begin="187" end="191"/>
-			<lne id="1609" begin="180" end="191"/>
-			<lne id="1610" begin="172" end="191"/>
-			<lne id="1611" begin="172" end="191"/>
+			<lne id="1544" begin="16" end="16"/>
+			<lne id="1545" begin="17" end="17"/>
+			<lne id="1546" begin="16" end="18"/>
+			<lne id="1547" begin="41" end="41"/>
+			<lne id="1548" begin="41" end="42"/>
+			<lne id="1549" begin="43" end="43"/>
+			<lne id="1550" begin="41" end="44"/>
+			<lne id="1551" begin="48" end="48"/>
+			<lne id="1552" begin="48" end="49"/>
+			<lne id="1553" begin="52" end="52"/>
+			<lne id="1554" begin="53" end="55"/>
+			<lne id="1555" begin="52" end="56"/>
+			<lne id="1556" begin="45" end="61"/>
+			<lne id="1557" begin="45" end="62"/>
+			<lne id="1558" begin="63" end="63"/>
+			<lne id="1559" begin="45" end="64"/>
+			<lne id="1560" begin="41" end="65"/>
+			<lne id="1561" begin="39" end="67"/>
+			<lne id="1562" begin="70" end="70"/>
+			<lne id="1563" begin="70" end="71"/>
+			<lne id="1564" begin="70" end="72"/>
+			<lne id="1565" begin="68" end="74"/>
+			<lne id="1566" begin="77" end="77"/>
+			<lne id="1567" begin="75" end="79"/>
+			<lne id="1568" begin="82" end="82"/>
+			<lne id="1569" begin="80" end="84"/>
+			<lne id="1570" begin="87" end="87"/>
+			<lne id="1571" begin="88" end="88"/>
+			<lne id="1572" begin="87" end="89"/>
+			<lne id="1573" begin="85" end="91"/>
+			<lne id="1574" begin="38" end="92"/>
+			<lne id="1575" begin="96" end="96"/>
+			<lne id="1576" begin="96" end="97"/>
+			<lne id="1577" begin="98" end="98"/>
+			<lne id="1578" begin="96" end="99"/>
+			<lne id="1579" begin="100" end="100"/>
+			<lne id="1580" begin="100" end="101"/>
+			<lne id="1581" begin="100" end="102"/>
+			<lne id="1582" begin="103" end="103"/>
+			<lne id="1583" begin="100" end="104"/>
+			<lne id="1584" begin="96" end="105"/>
+			<lne id="1585" begin="94" end="107"/>
+			<lne id="1586" begin="110" end="110"/>
+			<lne id="1587" begin="108" end="112"/>
+			<lne id="1588" begin="118" end="118"/>
+			<lne id="1589" begin="115" end="119"/>
+			<lne id="1590" begin="113" end="121"/>
+			<lne id="1591" begin="124" end="124"/>
+			<lne id="1592" begin="124" end="125"/>
+			<lne id="1593" begin="130" end="130"/>
+			<lne id="1594" begin="130" end="131"/>
+			<lne id="1595" begin="130" end="132"/>
+			<lne id="1596" begin="129" end="133"/>
+			<lne id="1597" begin="135" end="135"/>
+			<lne id="1598" begin="134" end="136"/>
+			<lne id="1599" begin="126" end="136"/>
+			<lne id="1600" begin="124" end="137"/>
+			<lne id="1601" begin="122" end="139"/>
+			<lne id="1602" begin="142" end="142"/>
+			<lne id="1603" begin="140" end="144"/>
+			<lne id="1604" begin="147" end="147"/>
+			<lne id="1605" begin="145" end="149"/>
+			<lne id="1606" begin="152" end="152"/>
+			<lne id="1607" begin="153" end="153"/>
+			<lne id="1608" begin="152" end="154"/>
+			<lne id="1609" begin="150" end="156"/>
+			<lne id="1610" begin="159" end="159"/>
+			<lne id="1611" begin="160" end="160"/>
+			<lne id="1612" begin="159" end="161"/>
+			<lne id="1613" begin="157" end="163"/>
+			<lne id="1614" begin="166" end="166"/>
+			<lne id="1615" begin="166" end="167"/>
+			<lne id="1616" begin="166" end="168"/>
+			<lne id="1617" begin="164" end="170"/>
+			<lne id="1618" begin="93" end="171"/>
+			<lne id="1619" begin="172" end="172"/>
+			<lne id="1620" begin="172" end="173"/>
+			<lne id="1621" begin="174" end="176"/>
+			<lne id="1622" begin="172" end="177"/>
+			<lne id="1623" begin="180" end="180"/>
+			<lne id="1624" begin="180" end="181"/>
+			<lne id="1625" begin="180" end="182"/>
+			<lne id="1626" begin="183" end="183"/>
+			<lne id="1627" begin="180" end="184"/>
+			<lne id="1628" begin="187" end="187"/>
+			<lne id="1629" begin="187" end="188"/>
+			<lne id="1630" begin="189" end="189"/>
+			<lne id="1631" begin="189" end="190"/>
+			<lne id="1632" begin="187" end="191"/>
+			<lne id="1633" begin="180" end="191"/>
+			<lne id="1634" begin="172" end="191"/>
+			<lne id="1635" begin="172" end="191"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="6" name="826" begin="51" end="60"/>
-			<lve slot="4" name="1505" begin="26" end="192"/>
+			<lve slot="6" name="855" begin="51" end="60"/>
+			<lve slot="4" name="1529" begin="26" end="192"/>
 			<lve slot="5" name="474" begin="34" end="192"/>
 			<lve slot="3" name="485" begin="19" end="192"/>
 			<lve slot="0" name="103" begin="0" end="192"/>
-			<lve slot="1" name="1504" begin="0" end="192"/>
+			<lve slot="1" name="1528" begin="0" end="192"/>
 			<lve slot="2" name="484" begin="0" end="192"/>
 		</localvariabletable>
 	</operation>
 	<operation name="44">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1612"/>
+			<parameter name="105" type="1636"/>
 			<parameter name="114" type="482"/>
 		</parameters>
 		<code>
@@ -7954,7 +8087,7 @@
 			<push arg="44"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="1613"/>
+			<push arg="1637"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
@@ -7966,26 +8099,26 @@
 			<call arg="231"/>
 			<store arg="200"/>
 			<load arg="105"/>
-			<get arg="1318"/>
+			<get arg="1342"/>
 			<call arg="493"/>
-			<if arg="1614"/>
+			<if arg="1638"/>
 			<load arg="105"/>
-			<get arg="1318"/>
-			<goto arg="1615"/>
-			<push arg="1101"/>
+			<get arg="1342"/>
+			<goto arg="1639"/>
+			<push arg="1125"/>
 			<store arg="207"/>
 			<load arg="105"/>
-			<get arg="1321"/>
+			<get arg="1345"/>
 			<call arg="493"/>
 			<if arg="154"/>
 			<load arg="105"/>
-			<get arg="1321"/>
-			<call arg="1333"/>
-			<goto arg="1616"/>
+			<get arg="1345"/>
+			<call arg="1357"/>
+			<goto arg="1640"/>
 			<pushi arg="105"/>
 			<store arg="210"/>
 			<dup/>
-			<push arg="1617"/>
+			<push arg="1641"/>
 			<push arg="44"/>
 			<push arg="50"/>
 			<new/>
@@ -8004,11 +8137,11 @@
 			<getasm/>
 			<load arg="200"/>
 			<get arg="212"/>
-			<push arg="1618"/>
+			<push arg="1642"/>
 			<call arg="500"/>
 			<load arg="200"/>
 			<get arg="44"/>
-			<call arg="1097"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
 			<call arg="500"/>
@@ -8021,21 +8154,21 @@
 			<new/>
 			<getasm/>
 			<get arg="16"/>
-			<push arg="1329"/>
+			<push arg="1353"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
 			<load arg="105"/>
-			<get arg="1510"/>
-			<get arg="1323"/>
+			<get arg="1534"/>
+			<get arg="1347"/>
 			<set arg="118"/>
 			<dup/>
 			<load arg="200"/>
-			<set arg="1331"/>
-			<call arg="1332"/>
+			<set arg="1355"/>
+			<call arg="1356"/>
 			<call arg="36"/>
 			<call arg="115"/>
-			<set arg="1017"/>
+			<set arg="1043"/>
 			<dup/>
 			<getasm/>
 			<push arg="32"/>
@@ -8043,157 +8176,157 @@
 			<new/>
 			<getasm/>
 			<get arg="16"/>
-			<push arg="1329"/>
+			<push arg="1353"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
 			<load arg="105"/>
-			<get arg="1510"/>
-			<get arg="1330"/>
+			<get arg="1534"/>
+			<get arg="1354"/>
 			<set arg="118"/>
 			<dup/>
 			<load arg="200"/>
-			<set arg="1331"/>
-			<call arg="1332"/>
+			<set arg="1355"/>
+			<call arg="1356"/>
 			<call arg="36"/>
 			<call arg="115"/>
-			<set arg="734"/>
+			<set arg="763"/>
 			<dup/>
 			<getasm/>
 			<pushi arg="105"/>
 			<call arg="115"/>
-			<set arg="1512"/>
+			<set arg="1536"/>
 			<dup/>
 			<getasm/>
 			<load arg="207"/>
 			<call arg="503"/>
 			<call arg="115"/>
-			<set arg="1619"/>
+			<set arg="1643"/>
 			<dup/>
 			<getasm/>
 			<load arg="210"/>
 			<call arg="115"/>
-			<set arg="1511"/>
+			<set arg="1535"/>
 			<dup/>
 			<getasm/>
 			<getasm/>
 			<load arg="213"/>
-			<get arg="1017"/>
+			<get arg="1043"/>
 			<call arg="141"/>
-			<call arg="1620"/>
+			<call arg="1644"/>
 			<call arg="115"/>
 			<set arg="256"/>
 			<dup/>
 			<getasm/>
 			<load arg="213"/>
 			<get arg="256"/>
-			<call arg="523"/>
+			<call arg="528"/>
 			<call arg="115"/>
-			<set arg="524"/>
+			<set arg="529"/>
 			<dup/>
 			<getasm/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="863"/>
+			<get arg="890"/>
 			<load arg="114"/>
-			<call arg="1327"/>
+			<call arg="1351"/>
 			<call arg="115"/>
-			<set arg="1621"/>
+			<set arg="1645"/>
 			<pop/>
 			<load arg="213"/>
 		</code>
 		<linenumbertable>
-			<lne id="1622" begin="16" end="16"/>
-			<lne id="1623" begin="17" end="17"/>
-			<lne id="1624" begin="16" end="18"/>
-			<lne id="1625" begin="20" end="20"/>
-			<lne id="1626" begin="20" end="21"/>
-			<lne id="1627" begin="20" end="22"/>
-			<lne id="1628" begin="24" end="24"/>
-			<lne id="1629" begin="24" end="25"/>
-			<lne id="1630" begin="27" end="27"/>
-			<lne id="1631" begin="20" end="27"/>
-			<lne id="1632" begin="29" end="29"/>
-			<lne id="1633" begin="29" end="30"/>
-			<lne id="1634" begin="29" end="31"/>
-			<lne id="1635" begin="33" end="33"/>
-			<lne id="1636" begin="33" end="34"/>
-			<lne id="1637" begin="33" end="35"/>
-			<lne id="1638" begin="37" end="37"/>
-			<lne id="1639" begin="29" end="37"/>
-			<lne id="1640" begin="52" end="52"/>
-			<lne id="1641" begin="50" end="54"/>
-			<lne id="1642" begin="57" end="57"/>
-			<lne id="1643" begin="57" end="58"/>
-			<lne id="1644" begin="59" end="59"/>
-			<lne id="1645" begin="57" end="60"/>
-			<lne id="1646" begin="61" end="61"/>
-			<lne id="1647" begin="61" end="62"/>
-			<lne id="1648" begin="61" end="63"/>
-			<lne id="1649" begin="64" end="64"/>
-			<lne id="1650" begin="61" end="65"/>
-			<lne id="1651" begin="57" end="66"/>
-			<lne id="1652" begin="55" end="68"/>
-			<lne id="1653" begin="74" end="74"/>
-			<lne id="1654" begin="74" end="75"/>
-			<lne id="1655" begin="80" end="80"/>
-			<lne id="1656" begin="80" end="81"/>
-			<lne id="1657" begin="80" end="82"/>
-			<lne id="1658" begin="79" end="83"/>
-			<lne id="1659" begin="85" end="85"/>
-			<lne id="1660" begin="84" end="86"/>
-			<lne id="1661" begin="76" end="86"/>
-			<lne id="1662" begin="74" end="87"/>
-			<lne id="1663" begin="71" end="88"/>
-			<lne id="1664" begin="69" end="90"/>
-			<lne id="1665" begin="96" end="96"/>
-			<lne id="1666" begin="96" end="97"/>
-			<lne id="1667" begin="102" end="102"/>
-			<lne id="1668" begin="102" end="103"/>
-			<lne id="1669" begin="102" end="104"/>
-			<lne id="1670" begin="101" end="105"/>
-			<lne id="1671" begin="107" end="107"/>
-			<lne id="1672" begin="106" end="108"/>
-			<lne id="1673" begin="98" end="108"/>
-			<lne id="1674" begin="96" end="109"/>
-			<lne id="1675" begin="93" end="110"/>
-			<lne id="1676" begin="91" end="112"/>
-			<lne id="1677" begin="115" end="115"/>
-			<lne id="1678" begin="113" end="117"/>
-			<lne id="1679" begin="120" end="120"/>
-			<lne id="1680" begin="120" end="121"/>
-			<lne id="1681" begin="118" end="123"/>
-			<lne id="1682" begin="126" end="126"/>
-			<lne id="1683" begin="124" end="128"/>
-			<lne id="1684" begin="131" end="131"/>
-			<lne id="1685" begin="132" end="132"/>
-			<lne id="1686" begin="132" end="133"/>
-			<lne id="1687" begin="132" end="134"/>
-			<lne id="1688" begin="131" end="135"/>
-			<lne id="1689" begin="129" end="137"/>
-			<lne id="1690" begin="140" end="140"/>
-			<lne id="1691" begin="140" end="141"/>
-			<lne id="1692" begin="140" end="142"/>
-			<lne id="1693" begin="138" end="144"/>
-			<lne id="1694" begin="147" end="147"/>
-			<lne id="1695" begin="148" end="148"/>
-			<lne id="1696" begin="148" end="149"/>
-			<lne id="1697" begin="150" end="150"/>
-			<lne id="1698" begin="147" end="151"/>
-			<lne id="1699" begin="145" end="153"/>
-			<lne id="1700" begin="49" end="154"/>
+			<lne id="1646" begin="16" end="16"/>
+			<lne id="1647" begin="17" end="17"/>
+			<lne id="1648" begin="16" end="18"/>
+			<lne id="1649" begin="20" end="20"/>
+			<lne id="1650" begin="20" end="21"/>
+			<lne id="1651" begin="20" end="22"/>
+			<lne id="1652" begin="24" end="24"/>
+			<lne id="1653" begin="24" end="25"/>
+			<lne id="1654" begin="27" end="27"/>
+			<lne id="1655" begin="20" end="27"/>
+			<lne id="1656" begin="29" end="29"/>
+			<lne id="1657" begin="29" end="30"/>
+			<lne id="1658" begin="29" end="31"/>
+			<lne id="1659" begin="33" end="33"/>
+			<lne id="1660" begin="33" end="34"/>
+			<lne id="1661" begin="33" end="35"/>
+			<lne id="1662" begin="37" end="37"/>
+			<lne id="1663" begin="29" end="37"/>
+			<lne id="1664" begin="52" end="52"/>
+			<lne id="1665" begin="50" end="54"/>
+			<lne id="1666" begin="57" end="57"/>
+			<lne id="1667" begin="57" end="58"/>
+			<lne id="1668" begin="59" end="59"/>
+			<lne id="1669" begin="57" end="60"/>
+			<lne id="1670" begin="61" end="61"/>
+			<lne id="1671" begin="61" end="62"/>
+			<lne id="1672" begin="61" end="63"/>
+			<lne id="1673" begin="64" end="64"/>
+			<lne id="1674" begin="61" end="65"/>
+			<lne id="1675" begin="57" end="66"/>
+			<lne id="1676" begin="55" end="68"/>
+			<lne id="1677" begin="74" end="74"/>
+			<lne id="1678" begin="74" end="75"/>
+			<lne id="1679" begin="80" end="80"/>
+			<lne id="1680" begin="80" end="81"/>
+			<lne id="1681" begin="80" end="82"/>
+			<lne id="1682" begin="79" end="83"/>
+			<lne id="1683" begin="85" end="85"/>
+			<lne id="1684" begin="84" end="86"/>
+			<lne id="1685" begin="76" end="86"/>
+			<lne id="1686" begin="74" end="87"/>
+			<lne id="1687" begin="71" end="88"/>
+			<lne id="1688" begin="69" end="90"/>
+			<lne id="1689" begin="96" end="96"/>
+			<lne id="1690" begin="96" end="97"/>
+			<lne id="1691" begin="102" end="102"/>
+			<lne id="1692" begin="102" end="103"/>
+			<lne id="1693" begin="102" end="104"/>
+			<lne id="1694" begin="101" end="105"/>
+			<lne id="1695" begin="107" end="107"/>
+			<lne id="1696" begin="106" end="108"/>
+			<lne id="1697" begin="98" end="108"/>
+			<lne id="1698" begin="96" end="109"/>
+			<lne id="1699" begin="93" end="110"/>
+			<lne id="1700" begin="91" end="112"/>
+			<lne id="1701" begin="115" end="115"/>
+			<lne id="1702" begin="113" end="117"/>
+			<lne id="1703" begin="120" end="120"/>
+			<lne id="1704" begin="120" end="121"/>
+			<lne id="1705" begin="118" end="123"/>
+			<lne id="1706" begin="126" end="126"/>
+			<lne id="1707" begin="124" end="128"/>
+			<lne id="1708" begin="131" end="131"/>
+			<lne id="1709" begin="132" end="132"/>
+			<lne id="1710" begin="132" end="133"/>
+			<lne id="1711" begin="132" end="134"/>
+			<lne id="1712" begin="131" end="135"/>
+			<lne id="1713" begin="129" end="137"/>
+			<lne id="1714" begin="140" end="140"/>
+			<lne id="1715" begin="140" end="141"/>
+			<lne id="1716" begin="140" end="142"/>
+			<lne id="1717" begin="138" end="144"/>
+			<lne id="1718" begin="147" end="147"/>
+			<lne id="1719" begin="148" end="148"/>
+			<lne id="1720" begin="148" end="149"/>
+			<lne id="1721" begin="150" end="150"/>
+			<lne id="1722" begin="147" end="151"/>
+			<lne id="1723" begin="145" end="153"/>
+			<lne id="1724" begin="49" end="154"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="6" name="1617" begin="45" end="155"/>
+			<lve slot="6" name="1641" begin="45" end="155"/>
 			<lve slot="3" name="485" begin="19" end="155"/>
-			<lve slot="4" name="1701" begin="28" end="155"/>
-			<lve slot="5" name="1702" begin="38" end="155"/>
+			<lve slot="4" name="1725" begin="28" end="155"/>
+			<lve slot="5" name="1726" begin="38" end="155"/>
 			<lve slot="0" name="103" begin="0" end="155"/>
-			<lve slot="1" name="1613" begin="0" end="155"/>
+			<lve slot="1" name="1637" begin="0" end="155"/>
 			<lve slot="2" name="484" begin="0" end="155"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1703">
+	<operation name="1727">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -8209,7 +8342,7 @@
 			<getasm/>
 			<load arg="114"/>
 			<get arg="212"/>
-			<push arg="1014"/>
+			<push arg="1040"/>
 			<call arg="500"/>
 			<load arg="105"/>
 			<call arg="500"/>
@@ -8218,38 +8351,38 @@
 			<pop/>
 			<load arg="114"/>
 			<load arg="114"/>
-			<get arg="676"/>
+			<get arg="706"/>
 			<load arg="200"/>
-			<call arg="1152"/>
-			<set arg="676"/>
+			<call arg="1176"/>
+			<set arg="706"/>
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="1704" begin="7" end="7"/>
-			<lne id="1705" begin="7" end="8"/>
-			<lne id="1706" begin="9" end="9"/>
-			<lne id="1707" begin="7" end="10"/>
-			<lne id="1708" begin="11" end="11"/>
-			<lne id="1709" begin="7" end="12"/>
-			<lne id="1710" begin="5" end="14"/>
-			<lne id="1711" begin="16" end="16"/>
-			<lne id="1712" begin="17" end="17"/>
-			<lne id="1713" begin="17" end="18"/>
-			<lne id="1714" begin="19" end="19"/>
-			<lne id="1715" begin="17" end="20"/>
-			<lne id="1716" begin="16" end="21"/>
-			<lne id="1717" begin="22" end="22"/>
-			<lne id="1718" begin="22" end="22"/>
-			<lne id="1719" begin="16" end="22"/>
+			<lne id="1728" begin="7" end="7"/>
+			<lne id="1729" begin="7" end="8"/>
+			<lne id="1730" begin="9" end="9"/>
+			<lne id="1731" begin="7" end="10"/>
+			<lne id="1732" begin="11" end="11"/>
+			<lne id="1733" begin="7" end="12"/>
+			<lne id="1734" begin="5" end="14"/>
+			<lne id="1735" begin="16" end="16"/>
+			<lne id="1736" begin="17" end="17"/>
+			<lne id="1737" begin="17" end="18"/>
+			<lne id="1738" begin="19" end="19"/>
+			<lne id="1739" begin="17" end="20"/>
+			<lne id="1740" begin="16" end="21"/>
+			<lne id="1741" begin="22" end="22"/>
+			<lne id="1742" begin="22" end="22"/>
+			<lne id="1743" begin="16" end="22"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="517" begin="3" end="22"/>
+			<lve slot="3" name="522" begin="3" end="22"/>
 			<lve slot="0" name="103" begin="0" end="22"/>
 			<lve slot="1" name="61" begin="0" end="22"/>
 			<lve slot="2" name="485" begin="0" end="22"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1720">
+	<operation name="1744">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -8265,7 +8398,7 @@
 			<getasm/>
 			<load arg="114"/>
 			<get arg="212"/>
-			<push arg="1014"/>
+			<push arg="1040"/>
 			<call arg="500"/>
 			<load arg="105"/>
 			<call arg="500"/>
@@ -8280,18 +8413,18 @@
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="1721" begin="7" end="7"/>
-			<lne id="1722" begin="7" end="8"/>
-			<lne id="1723" begin="9" end="9"/>
-			<lne id="1724" begin="7" end="10"/>
-			<lne id="1725" begin="11" end="11"/>
-			<lne id="1726" begin="7" end="12"/>
-			<lne id="1727" begin="5" end="14"/>
-			<lne id="1728" begin="17" end="17"/>
-			<lne id="1729" begin="15" end="19"/>
-			<lne id="1730" begin="21" end="21"/>
-			<lne id="1731" begin="21" end="21"/>
-			<lne id="1732" begin="21" end="21"/>
+			<lne id="1745" begin="7" end="7"/>
+			<lne id="1746" begin="7" end="8"/>
+			<lne id="1747" begin="9" end="9"/>
+			<lne id="1748" begin="7" end="10"/>
+			<lne id="1749" begin="11" end="11"/>
+			<lne id="1750" begin="7" end="12"/>
+			<lne id="1751" begin="5" end="14"/>
+			<lne id="1752" begin="17" end="17"/>
+			<lne id="1753" begin="15" end="19"/>
+			<lne id="1754" begin="21" end="21"/>
+			<lne id="1755" begin="21" end="21"/>
+			<lne id="1756" begin="21" end="21"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="3" name="118" begin="3" end="21"/>
@@ -8300,10 +8433,10 @@
 			<lve slot="2" name="485" begin="0" end="21"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1733">
+	<operation name="1757">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1734"/>
+			<parameter name="105" type="1758"/>
 			<parameter name="114" type="482"/>
 		</parameters>
 		<code>
@@ -8313,10 +8446,10 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="1733"/>
+			<push arg="1757"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="826"/>
+			<push arg="855"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
@@ -8329,36 +8462,36 @@
 			<store arg="200"/>
 			<getasm/>
 			<get arg="16"/>
-			<push arg="1329"/>
+			<push arg="1353"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
 			<load arg="105"/>
-			<get arg="1510"/>
-			<get arg="1323"/>
+			<get arg="1534"/>
+			<get arg="1347"/>
 			<set arg="118"/>
 			<dup/>
 			<load arg="200"/>
-			<set arg="1331"/>
-			<call arg="1332"/>
+			<set arg="1355"/>
+			<call arg="1356"/>
 			<store arg="207"/>
 			<load arg="105"/>
-			<get arg="1318"/>
+			<get arg="1342"/>
 			<call arg="493"/>
 			<if arg="483"/>
 			<load arg="105"/>
-			<get arg="1318"/>
-			<goto arg="1735"/>
-			<push arg="1101"/>
+			<get arg="1342"/>
+			<goto arg="1759"/>
+			<push arg="1125"/>
 			<store arg="210"/>
 			<load arg="105"/>
-			<get arg="1321"/>
+			<get arg="1345"/>
 			<call arg="493"/>
-			<if arg="1736"/>
+			<if arg="1760"/>
 			<load arg="105"/>
-			<get arg="1321"/>
-			<call arg="1333"/>
-			<goto arg="1737"/>
+			<get arg="1345"/>
+			<call arg="1357"/>
+			<goto arg="1761"/>
 			<pushi arg="105"/>
 			<store arg="213"/>
 			<dup/>
@@ -8376,11 +8509,11 @@
 			<getasm/>
 			<load arg="200"/>
 			<get arg="212"/>
-			<push arg="1738"/>
+			<push arg="1762"/>
 			<call arg="500"/>
 			<load arg="200"/>
-			<get arg="1739"/>
-			<call arg="1097"/>
+			<get arg="1763"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
 			<call arg="500"/>
@@ -8394,28 +8527,28 @@
 			<load arg="207"/>
 			<call arg="36"/>
 			<call arg="115"/>
-			<set arg="1017"/>
+			<set arg="1043"/>
 			<dup/>
 			<getasm/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<load arg="200"/>
-			<get arg="676"/>
+			<get arg="706"/>
 			<iterate/>
 			<store arg="496"/>
 			<load arg="105"/>
-			<get arg="846"/>
+			<get arg="874"/>
 			<load arg="496"/>
 			<get arg="51"/>
 			<call arg="201"/>
 			<call arg="196"/>
-			<if arg="1740"/>
+			<if arg="1764"/>
 			<load arg="496"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="115"/>
-			<set arg="734"/>
+			<set arg="763"/>
 			<dup/>
 			<getasm/>
 			<load arg="200"/>
@@ -8426,122 +8559,122 @@
 			<load arg="210"/>
 			<call arg="503"/>
 			<call arg="115"/>
-			<set arg="1619"/>
+			<set arg="1643"/>
 			<dup/>
 			<getasm/>
 			<pushi arg="105"/>
 			<call arg="115"/>
-			<set arg="1512"/>
+			<set arg="1536"/>
 			<dup/>
 			<getasm/>
 			<load arg="213"/>
 			<call arg="115"/>
-			<set arg="1511"/>
+			<set arg="1535"/>
 			<dup/>
 			<getasm/>
 			<getasm/>
 			<load arg="207"/>
-			<call arg="1620"/>
+			<call arg="1644"/>
 			<call arg="115"/>
 			<set arg="256"/>
 			<dup/>
 			<getasm/>
 			<load arg="495"/>
 			<get arg="256"/>
-			<call arg="523"/>
+			<call arg="528"/>
 			<call arg="115"/>
-			<set arg="524"/>
+			<set arg="529"/>
 			<pop/>
 			<load arg="495"/>
 			<load arg="495"/>
 		</code>
 		<linenumbertable>
-			<lne id="1741" begin="16" end="16"/>
-			<lne id="1742" begin="17" end="17"/>
-			<lne id="1743" begin="16" end="18"/>
-			<lne id="1744" begin="20" end="20"/>
-			<lne id="1745" begin="20" end="21"/>
-			<lne id="1746" begin="26" end="26"/>
-			<lne id="1747" begin="26" end="27"/>
-			<lne id="1748" begin="26" end="28"/>
-			<lne id="1749" begin="25" end="29"/>
-			<lne id="1750" begin="31" end="31"/>
-			<lne id="1751" begin="30" end="32"/>
-			<lne id="1752" begin="22" end="32"/>
-			<lne id="1753" begin="20" end="33"/>
-			<lne id="1754" begin="35" end="35"/>
-			<lne id="1755" begin="35" end="36"/>
-			<lne id="1756" begin="35" end="37"/>
-			<lne id="1757" begin="39" end="39"/>
-			<lne id="1758" begin="39" end="40"/>
-			<lne id="1759" begin="42" end="42"/>
-			<lne id="1760" begin="35" end="42"/>
-			<lne id="1761" begin="44" end="44"/>
-			<lne id="1762" begin="44" end="45"/>
-			<lne id="1763" begin="44" end="46"/>
-			<lne id="1764" begin="48" end="48"/>
-			<lne id="1765" begin="48" end="49"/>
-			<lne id="1766" begin="48" end="50"/>
-			<lne id="1767" begin="52" end="52"/>
-			<lne id="1768" begin="44" end="52"/>
-			<lne id="1769" begin="67" end="67"/>
-			<lne id="1770" begin="67" end="68"/>
-			<lne id="1771" begin="69" end="69"/>
-			<lne id="1772" begin="67" end="70"/>
-			<lne id="1773" begin="71" end="71"/>
-			<lne id="1774" begin="71" end="72"/>
-			<lne id="1775" begin="71" end="73"/>
-			<lne id="1776" begin="74" end="74"/>
-			<lne id="1777" begin="71" end="75"/>
-			<lne id="1778" begin="67" end="76"/>
-			<lne id="1779" begin="65" end="78"/>
-			<lne id="1780" begin="84" end="84"/>
-			<lne id="1781" begin="81" end="85"/>
-			<lne id="1782" begin="79" end="87"/>
-			<lne id="1783" begin="93" end="93"/>
-			<lne id="1784" begin="93" end="94"/>
-			<lne id="1785" begin="97" end="97"/>
-			<lne id="1786" begin="97" end="98"/>
-			<lne id="1787" begin="99" end="99"/>
-			<lne id="1788" begin="99" end="100"/>
-			<lne id="1789" begin="97" end="101"/>
-			<lne id="1790" begin="90" end="106"/>
-			<lne id="1791" begin="88" end="108"/>
-			<lne id="1792" begin="111" end="111"/>
-			<lne id="1793" begin="109" end="113"/>
-			<lne id="1794" begin="116" end="116"/>
-			<lne id="1795" begin="116" end="117"/>
-			<lne id="1796" begin="114" end="119"/>
-			<lne id="1797" begin="122" end="122"/>
-			<lne id="1798" begin="120" end="124"/>
-			<lne id="1799" begin="127" end="127"/>
-			<lne id="1800" begin="125" end="129"/>
-			<lne id="1801" begin="132" end="132"/>
-			<lne id="1802" begin="133" end="133"/>
-			<lne id="1803" begin="132" end="134"/>
-			<lne id="1804" begin="130" end="136"/>
-			<lne id="1805" begin="139" end="139"/>
-			<lne id="1806" begin="139" end="140"/>
-			<lne id="1807" begin="139" end="141"/>
-			<lne id="1808" begin="137" end="143"/>
-			<lne id="1809" begin="64" end="144"/>
-			<lne id="1810" begin="145" end="145"/>
-			<lne id="1811" begin="145" end="145"/>
-			<lne id="1812" begin="145" end="145"/>
+			<lne id="1765" begin="16" end="16"/>
+			<lne id="1766" begin="17" end="17"/>
+			<lne id="1767" begin="16" end="18"/>
+			<lne id="1768" begin="20" end="20"/>
+			<lne id="1769" begin="20" end="21"/>
+			<lne id="1770" begin="26" end="26"/>
+			<lne id="1771" begin="26" end="27"/>
+			<lne id="1772" begin="26" end="28"/>
+			<lne id="1773" begin="25" end="29"/>
+			<lne id="1774" begin="31" end="31"/>
+			<lne id="1775" begin="30" end="32"/>
+			<lne id="1776" begin="22" end="32"/>
+			<lne id="1777" begin="20" end="33"/>
+			<lne id="1778" begin="35" end="35"/>
+			<lne id="1779" begin="35" end="36"/>
+			<lne id="1780" begin="35" end="37"/>
+			<lne id="1781" begin="39" end="39"/>
+			<lne id="1782" begin="39" end="40"/>
+			<lne id="1783" begin="42" end="42"/>
+			<lne id="1784" begin="35" end="42"/>
+			<lne id="1785" begin="44" end="44"/>
+			<lne id="1786" begin="44" end="45"/>
+			<lne id="1787" begin="44" end="46"/>
+			<lne id="1788" begin="48" end="48"/>
+			<lne id="1789" begin="48" end="49"/>
+			<lne id="1790" begin="48" end="50"/>
+			<lne id="1791" begin="52" end="52"/>
+			<lne id="1792" begin="44" end="52"/>
+			<lne id="1793" begin="67" end="67"/>
+			<lne id="1794" begin="67" end="68"/>
+			<lne id="1795" begin="69" end="69"/>
+			<lne id="1796" begin="67" end="70"/>
+			<lne id="1797" begin="71" end="71"/>
+			<lne id="1798" begin="71" end="72"/>
+			<lne id="1799" begin="71" end="73"/>
+			<lne id="1800" begin="74" end="74"/>
+			<lne id="1801" begin="71" end="75"/>
+			<lne id="1802" begin="67" end="76"/>
+			<lne id="1803" begin="65" end="78"/>
+			<lne id="1804" begin="84" end="84"/>
+			<lne id="1805" begin="81" end="85"/>
+			<lne id="1806" begin="79" end="87"/>
+			<lne id="1807" begin="93" end="93"/>
+			<lne id="1808" begin="93" end="94"/>
+			<lne id="1809" begin="97" end="97"/>
+			<lne id="1810" begin="97" end="98"/>
+			<lne id="1811" begin="99" end="99"/>
+			<lne id="1812" begin="99" end="100"/>
+			<lne id="1813" begin="97" end="101"/>
+			<lne id="1814" begin="90" end="106"/>
+			<lne id="1815" begin="88" end="108"/>
+			<lne id="1816" begin="111" end="111"/>
+			<lne id="1817" begin="109" end="113"/>
+			<lne id="1818" begin="116" end="116"/>
+			<lne id="1819" begin="116" end="117"/>
+			<lne id="1820" begin="114" end="119"/>
+			<lne id="1821" begin="122" end="122"/>
+			<lne id="1822" begin="120" end="124"/>
+			<lne id="1823" begin="127" end="127"/>
+			<lne id="1824" begin="125" end="129"/>
+			<lne id="1825" begin="132" end="132"/>
+			<lne id="1826" begin="133" end="133"/>
+			<lne id="1827" begin="132" end="134"/>
+			<lne id="1828" begin="130" end="136"/>
+			<lne id="1829" begin="139" end="139"/>
+			<lne id="1830" begin="139" end="140"/>
+			<lne id="1831" begin="139" end="141"/>
+			<lne id="1832" begin="137" end="143"/>
+			<lne id="1833" begin="64" end="144"/>
+			<lne id="1834" begin="145" end="145"/>
+			<lne id="1835" begin="145" end="145"/>
+			<lne id="1836" begin="145" end="145"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="8" name="517" begin="96" end="105"/>
+			<lve slot="8" name="522" begin="96" end="105"/>
 			<lve slot="7" name="475" begin="60" end="146"/>
 			<lve slot="3" name="485" begin="19" end="146"/>
-			<lve slot="4" name="1813" begin="34" end="146"/>
-			<lve slot="5" name="1701" begin="43" end="146"/>
-			<lve slot="6" name="1702" begin="53" end="146"/>
+			<lve slot="4" name="1837" begin="34" end="146"/>
+			<lve slot="5" name="1725" begin="43" end="146"/>
+			<lve slot="6" name="1726" begin="53" end="146"/>
 			<lve slot="0" name="103" begin="0" end="146"/>
-			<lve slot="1" name="826" begin="0" end="146"/>
+			<lve slot="1" name="855" begin="0" end="146"/>
 			<lve slot="2" name="484" begin="0" end="146"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1814">
+	<operation name="1838">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -8556,7 +8689,7 @@
 			<getasm/>
 			<load arg="105"/>
 			<get arg="212"/>
-			<push arg="1815"/>
+			<push arg="1839"/>
 			<call arg="500"/>
 			<call arg="115"/>
 			<set arg="212"/>
@@ -8568,14 +8701,14 @@
 			<load arg="105"/>
 			<call arg="36"/>
 			<call arg="115"/>
-			<set arg="1017"/>
+			<set arg="1043"/>
 			<dup/>
 			<getasm/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<call arg="115"/>
-			<set arg="734"/>
+			<set arg="763"/>
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
@@ -8588,67 +8721,67 @@
 			<pushi arg="505"/>
 			<call arg="506"/>
 			<call arg="115"/>
-			<set arg="1619"/>
+			<set arg="1643"/>
 			<dup/>
 			<getasm/>
 			<pushi arg="105"/>
 			<call arg="115"/>
-			<set arg="1512"/>
+			<set arg="1536"/>
 			<dup/>
 			<getasm/>
 			<pushi arg="105"/>
 			<call arg="115"/>
-			<set arg="1511"/>
+			<set arg="1535"/>
 			<dup/>
 			<getasm/>
 			<getasm/>
 			<load arg="105"/>
-			<call arg="1620"/>
+			<call arg="1644"/>
 			<call arg="115"/>
 			<set arg="256"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
 			<get arg="256"/>
-			<call arg="523"/>
+			<call arg="528"/>
 			<call arg="115"/>
-			<set arg="524"/>
+			<set arg="529"/>
 			<pop/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="1816" begin="7" end="7"/>
-			<lne id="1817" begin="7" end="8"/>
-			<lne id="1818" begin="9" end="9"/>
-			<lne id="1819" begin="7" end="10"/>
-			<lne id="1820" begin="5" end="12"/>
-			<lne id="1821" begin="18" end="18"/>
-			<lne id="1822" begin="15" end="19"/>
-			<lne id="1823" begin="13" end="21"/>
-			<lne id="1824" begin="24" end="26"/>
-			<lne id="1825" begin="22" end="28"/>
-			<lne id="1826" begin="31" end="31"/>
-			<lne id="1827" begin="31" end="32"/>
-			<lne id="1828" begin="29" end="34"/>
-			<lne id="1829" begin="37" end="37"/>
-			<lne id="1830" begin="38" end="38"/>
-			<lne id="1831" begin="37" end="39"/>
-			<lne id="1832" begin="35" end="41"/>
-			<lne id="1833" begin="44" end="44"/>
-			<lne id="1834" begin="42" end="46"/>
-			<lne id="1835" begin="49" end="49"/>
-			<lne id="1836" begin="47" end="51"/>
-			<lne id="1837" begin="54" end="54"/>
-			<lne id="1838" begin="55" end="55"/>
-			<lne id="1839" begin="54" end="56"/>
-			<lne id="1840" begin="52" end="58"/>
-			<lne id="1841" begin="61" end="61"/>
-			<lne id="1842" begin="61" end="62"/>
-			<lne id="1843" begin="61" end="63"/>
-			<lne id="1844" begin="59" end="65"/>
-			<lne id="1845" begin="67" end="67"/>
-			<lne id="1846" begin="67" end="67"/>
-			<lne id="1847" begin="67" end="67"/>
+			<lne id="1840" begin="7" end="7"/>
+			<lne id="1841" begin="7" end="8"/>
+			<lne id="1842" begin="9" end="9"/>
+			<lne id="1843" begin="7" end="10"/>
+			<lne id="1844" begin="5" end="12"/>
+			<lne id="1845" begin="18" end="18"/>
+			<lne id="1846" begin="15" end="19"/>
+			<lne id="1847" begin="13" end="21"/>
+			<lne id="1848" begin="24" end="26"/>
+			<lne id="1849" begin="22" end="28"/>
+			<lne id="1850" begin="31" end="31"/>
+			<lne id="1851" begin="31" end="32"/>
+			<lne id="1852" begin="29" end="34"/>
+			<lne id="1853" begin="37" end="37"/>
+			<lne id="1854" begin="38" end="38"/>
+			<lne id="1855" begin="37" end="39"/>
+			<lne id="1856" begin="35" end="41"/>
+			<lne id="1857" begin="44" end="44"/>
+			<lne id="1858" begin="42" end="46"/>
+			<lne id="1859" begin="49" end="49"/>
+			<lne id="1860" begin="47" end="51"/>
+			<lne id="1861" begin="54" end="54"/>
+			<lne id="1862" begin="55" end="55"/>
+			<lne id="1863" begin="54" end="56"/>
+			<lne id="1864" begin="52" end="58"/>
+			<lne id="1865" begin="61" end="61"/>
+			<lne id="1866" begin="61" end="62"/>
+			<lne id="1867" begin="61" end="63"/>
+			<lne id="1868" begin="59" end="65"/>
+			<lne id="1869" begin="67" end="67"/>
+			<lne id="1870" begin="67" end="67"/>
+			<lne id="1871" begin="67" end="67"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="2" name="475" begin="3" end="67"/>
@@ -8656,7 +8789,7 @@
 			<lve slot="1" name="118" begin="0" end="67"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1848">
+	<operation name="1872">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -8679,11 +8812,11 @@
 			<getasm/>
 			<load arg="213"/>
 			<get arg="212"/>
-			<push arg="1509"/>
+			<push arg="1533"/>
 			<call arg="500"/>
 			<load arg="213"/>
-			<get arg="525"/>
-			<call arg="1097"/>
+			<get arg="530"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
 			<call arg="500"/>
@@ -8698,73 +8831,73 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="1017"/>
+			<set arg="1043"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
 			<call arg="115"/>
-			<set arg="734"/>
+			<set arg="763"/>
 			<dup/>
 			<getasm/>
 			<load arg="200"/>
 			<call arg="115"/>
-			<set arg="1513"/>
+			<set arg="1537"/>
 			<dup/>
 			<getasm/>
 			<load arg="207"/>
 			<call arg="115"/>
-			<set arg="1512"/>
+			<set arg="1536"/>
 			<dup/>
 			<getasm/>
 			<load arg="210"/>
 			<call arg="115"/>
-			<set arg="1511"/>
+			<set arg="1535"/>
 			<pop/>
 			<load arg="495"/>
 		</code>
 		<linenumbertable>
-			<lne id="1849" begin="0" end="0"/>
-			<lne id="1850" begin="0" end="1"/>
-			<lne id="1851" begin="0" end="2"/>
-			<lne id="1852" begin="11" end="11"/>
-			<lne id="1853" begin="11" end="12"/>
-			<lne id="1854" begin="13" end="13"/>
-			<lne id="1855" begin="11" end="14"/>
-			<lne id="1856" begin="15" end="15"/>
-			<lne id="1857" begin="15" end="16"/>
-			<lne id="1858" begin="15" end="17"/>
-			<lne id="1859" begin="18" end="18"/>
-			<lne id="1860" begin="15" end="19"/>
-			<lne id="1861" begin="11" end="20"/>
-			<lne id="1862" begin="9" end="22"/>
-			<lne id="1863" begin="25" end="25"/>
-			<lne id="1864" begin="23" end="27"/>
-			<lne id="1865" begin="30" end="30"/>
-			<lne id="1866" begin="28" end="32"/>
-			<lne id="1867" begin="35" end="35"/>
-			<lne id="1868" begin="33" end="37"/>
-			<lne id="1869" begin="40" end="40"/>
-			<lne id="1870" begin="38" end="42"/>
-			<lne id="1871" begin="45" end="45"/>
-			<lne id="1872" begin="43" end="47"/>
-			<lne id="1873" begin="50" end="50"/>
-			<lne id="1874" begin="48" end="52"/>
-			<lne id="1875" begin="54" end="54"/>
-			<lne id="1876" begin="54" end="54"/>
-			<lne id="1877" begin="54" end="54"/>
+			<lne id="1873" begin="0" end="0"/>
+			<lne id="1874" begin="0" end="1"/>
+			<lne id="1875" begin="0" end="2"/>
+			<lne id="1876" begin="11" end="11"/>
+			<lne id="1877" begin="11" end="12"/>
+			<lne id="1878" begin="13" end="13"/>
+			<lne id="1879" begin="11" end="14"/>
+			<lne id="1880" begin="15" end="15"/>
+			<lne id="1881" begin="15" end="16"/>
+			<lne id="1882" begin="15" end="17"/>
+			<lne id="1883" begin="18" end="18"/>
+			<lne id="1884" begin="15" end="19"/>
+			<lne id="1885" begin="11" end="20"/>
+			<lne id="1886" begin="9" end="22"/>
+			<lne id="1887" begin="25" end="25"/>
+			<lne id="1888" begin="23" end="27"/>
+			<lne id="1889" begin="30" end="30"/>
+			<lne id="1890" begin="28" end="32"/>
+			<lne id="1891" begin="35" end="35"/>
+			<lne id="1892" begin="33" end="37"/>
+			<lne id="1893" begin="40" end="40"/>
+			<lne id="1894" begin="38" end="42"/>
+			<lne id="1895" begin="45" end="45"/>
+			<lne id="1896" begin="43" end="47"/>
+			<lne id="1897" begin="50" end="50"/>
+			<lne id="1898" begin="48" end="52"/>
+			<lne id="1899" begin="54" end="54"/>
+			<lne id="1900" begin="54" end="54"/>
+			<lne id="1901" begin="54" end="54"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="7" name="474" begin="7" end="54"/>
 			<lve slot="6" name="485" begin="3" end="54"/>
 			<lve slot="0" name="103" begin="0" end="54"/>
-			<lve slot="1" name="826" begin="0" end="54"/>
+			<lve slot="1" name="855" begin="0" end="54"/>
 			<lve slot="2" name="118" begin="0" end="54"/>
-			<lve slot="3" name="1318" begin="0" end="54"/>
-			<lve slot="4" name="519" begin="0" end="54"/>
-			<lve slot="5" name="1321" begin="0" end="54"/>
+			<lve slot="3" name="1342" begin="0" end="54"/>
+			<lve slot="4" name="524" begin="0" end="54"/>
+			<lve slot="5" name="1345" begin="0" end="54"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1878">
+	<operation name="1902">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -8786,11 +8919,11 @@
 			<getasm/>
 			<load arg="213"/>
 			<get arg="212"/>
-			<push arg="1738"/>
+			<push arg="1762"/>
 			<call arg="500"/>
 			<load arg="213"/>
-			<get arg="1739"/>
-			<call arg="1097"/>
+			<get arg="1763"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
 			<call arg="500"/>
@@ -8809,7 +8942,7 @@
 			<load arg="105"/>
 			<call arg="36"/>
 			<call arg="115"/>
-			<set arg="1017"/>
+			<set arg="1043"/>
 			<dup/>
 			<getasm/>
 			<push arg="33"/>
@@ -8818,87 +8951,87 @@
 			<load arg="114"/>
 			<call arg="36"/>
 			<call arg="115"/>
-			<set arg="734"/>
+			<set arg="763"/>
 			<dup/>
 			<getasm/>
 			<load arg="200"/>
 			<call arg="115"/>
-			<set arg="1619"/>
+			<set arg="1643"/>
 			<dup/>
 			<getasm/>
 			<load arg="207"/>
 			<call arg="115"/>
-			<set arg="1512"/>
+			<set arg="1536"/>
 			<dup/>
 			<getasm/>
 			<load arg="210"/>
 			<call arg="115"/>
-			<set arg="1511"/>
+			<set arg="1535"/>
 			<dup/>
 			<getasm/>
 			<getasm/>
 			<load arg="105"/>
-			<call arg="1620"/>
+			<call arg="1644"/>
 			<call arg="115"/>
 			<set arg="256"/>
 			<dup/>
 			<getasm/>
 			<load arg="495"/>
 			<get arg="256"/>
-			<call arg="523"/>
+			<call arg="528"/>
 			<call arg="115"/>
-			<set arg="524"/>
+			<set arg="529"/>
 			<pop/>
 		</code>
 		<linenumbertable>
-			<lne id="1879" begin="0" end="0"/>
-			<lne id="1880" begin="0" end="1"/>
-			<lne id="1881" begin="10" end="10"/>
-			<lne id="1882" begin="10" end="11"/>
-			<lne id="1883" begin="12" end="12"/>
-			<lne id="1884" begin="10" end="13"/>
-			<lne id="1885" begin="14" end="14"/>
-			<lne id="1886" begin="14" end="15"/>
-			<lne id="1887" begin="14" end="16"/>
-			<lne id="1888" begin="17" end="17"/>
-			<lne id="1889" begin="14" end="18"/>
-			<lne id="1890" begin="10" end="19"/>
-			<lne id="1891" begin="8" end="21"/>
-			<lne id="1892" begin="24" end="24"/>
-			<lne id="1893" begin="22" end="26"/>
-			<lne id="1894" begin="32" end="32"/>
-			<lne id="1895" begin="29" end="33"/>
-			<lne id="1896" begin="27" end="35"/>
-			<lne id="1897" begin="41" end="41"/>
-			<lne id="1898" begin="38" end="42"/>
-			<lne id="1899" begin="36" end="44"/>
-			<lne id="1900" begin="47" end="47"/>
-			<lne id="1901" begin="45" end="49"/>
-			<lne id="1902" begin="52" end="52"/>
-			<lne id="1903" begin="50" end="54"/>
-			<lne id="1904" begin="57" end="57"/>
-			<lne id="1905" begin="55" end="59"/>
-			<lne id="1906" begin="62" end="62"/>
-			<lne id="1907" begin="63" end="63"/>
-			<lne id="1908" begin="62" end="64"/>
-			<lne id="1909" begin="60" end="66"/>
-			<lne id="1910" begin="69" end="69"/>
-			<lne id="1911" begin="69" end="70"/>
-			<lne id="1912" begin="69" end="71"/>
-			<lne id="1913" begin="67" end="73"/>
+			<lne id="1903" begin="0" end="0"/>
+			<lne id="1904" begin="0" end="1"/>
+			<lne id="1905" begin="10" end="10"/>
+			<lne id="1906" begin="10" end="11"/>
+			<lne id="1907" begin="12" end="12"/>
+			<lne id="1908" begin="10" end="13"/>
+			<lne id="1909" begin="14" end="14"/>
+			<lne id="1910" begin="14" end="15"/>
+			<lne id="1911" begin="14" end="16"/>
+			<lne id="1912" begin="17" end="17"/>
+			<lne id="1913" begin="14" end="18"/>
+			<lne id="1914" begin="10" end="19"/>
+			<lne id="1915" begin="8" end="21"/>
+			<lne id="1916" begin="24" end="24"/>
+			<lne id="1917" begin="22" end="26"/>
+			<lne id="1918" begin="32" end="32"/>
+			<lne id="1919" begin="29" end="33"/>
+			<lne id="1920" begin="27" end="35"/>
+			<lne id="1921" begin="41" end="41"/>
+			<lne id="1922" begin="38" end="42"/>
+			<lne id="1923" begin="36" end="44"/>
+			<lne id="1924" begin="47" end="47"/>
+			<lne id="1925" begin="45" end="49"/>
+			<lne id="1926" begin="52" end="52"/>
+			<lne id="1927" begin="50" end="54"/>
+			<lne id="1928" begin="57" end="57"/>
+			<lne id="1929" begin="55" end="59"/>
+			<lne id="1930" begin="62" end="62"/>
+			<lne id="1931" begin="63" end="63"/>
+			<lne id="1932" begin="62" end="64"/>
+			<lne id="1933" begin="60" end="66"/>
+			<lne id="1934" begin="69" end="69"/>
+			<lne id="1935" begin="69" end="70"/>
+			<lne id="1936" begin="69" end="71"/>
+			<lne id="1937" begin="67" end="73"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="7" name="475" begin="6" end="74"/>
 			<lve slot="6" name="485" begin="2" end="74"/>
 			<lve slot="0" name="103" begin="0" end="74"/>
 			<lve slot="1" name="118" begin="0" end="74"/>
-			<lve slot="2" name="517" begin="0" end="74"/>
-			<lve slot="3" name="1318" begin="0" end="74"/>
-			<lve slot="4" name="519" begin="0" end="74"/>
-			<lve slot="5" name="1321" begin="0" end="74"/>
+			<lve slot="2" name="522" begin="0" end="74"/>
+			<lve slot="3" name="1342" begin="0" end="74"/>
+			<lve slot="4" name="524" begin="0" end="74"/>
+			<lve slot="5" name="1345" begin="0" end="74"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1914">
+	<operation name="1938">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -8920,7 +9053,7 @@
 			<getasm/>
 			<load arg="114"/>
 			<get arg="212"/>
-			<push arg="1915"/>
+			<push arg="1939"/>
 			<call arg="500"/>
 			<load arg="105"/>
 			<get arg="212"/>
@@ -8942,7 +9075,7 @@
 			<load arg="200"/>
 			<call arg="36"/>
 			<call arg="115"/>
-			<set arg="1017"/>
+			<set arg="1043"/>
 			<dup/>
 			<getasm/>
 			<push arg="33"/>
@@ -8951,7 +9084,7 @@
 			<load arg="105"/>
 			<call arg="36"/>
 			<call arg="115"/>
-			<set arg="734"/>
+			<set arg="763"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
@@ -8961,60 +9094,60 @@
 			<getasm/>
 			<getasm/>
 			<load arg="200"/>
-			<call arg="1620"/>
+			<call arg="1644"/>
 			<call arg="115"/>
 			<set arg="256"/>
 			<dup/>
 			<getasm/>
 			<load arg="207"/>
 			<get arg="256"/>
-			<call arg="523"/>
+			<call arg="528"/>
 			<call arg="115"/>
-			<set arg="524"/>
+			<set arg="529"/>
 			<pop/>
 		</code>
 		<linenumbertable>
-			<lne id="1916" begin="0" end="0"/>
-			<lne id="1917" begin="0" end="1"/>
-			<lne id="1918" begin="14" end="14"/>
-			<lne id="1919" begin="14" end="15"/>
-			<lne id="1920" begin="16" end="16"/>
-			<lne id="1921" begin="14" end="17"/>
-			<lne id="1922" begin="18" end="18"/>
-			<lne id="1923" begin="18" end="19"/>
-			<lne id="1924" begin="14" end="20"/>
-			<lne id="1925" begin="12" end="22"/>
-			<lne id="1926" begin="25" end="25"/>
-			<lne id="1927" begin="23" end="27"/>
-			<lne id="1928" begin="35" end="35"/>
-			<lne id="1929" begin="32" end="36"/>
-			<lne id="1930" begin="30" end="38"/>
-			<lne id="1931" begin="44" end="44"/>
-			<lne id="1932" begin="41" end="45"/>
-			<lne id="1933" begin="39" end="47"/>
-			<lne id="1934" begin="50" end="50"/>
-			<lne id="1935" begin="48" end="52"/>
-			<lne id="1936" begin="55" end="55"/>
-			<lne id="1937" begin="56" end="56"/>
-			<lne id="1938" begin="55" end="57"/>
-			<lne id="1939" begin="53" end="59"/>
-			<lne id="1940" begin="62" end="62"/>
-			<lne id="1941" begin="62" end="63"/>
-			<lne id="1942" begin="62" end="64"/>
-			<lne id="1943" begin="60" end="66"/>
+			<lne id="1940" begin="0" end="0"/>
+			<lne id="1941" begin="0" end="1"/>
+			<lne id="1942" begin="14" end="14"/>
+			<lne id="1943" begin="14" end="15"/>
+			<lne id="1944" begin="16" end="16"/>
+			<lne id="1945" begin="14" end="17"/>
+			<lne id="1946" begin="18" end="18"/>
+			<lne id="1947" begin="18" end="19"/>
+			<lne id="1948" begin="14" end="20"/>
+			<lne id="1949" begin="12" end="22"/>
+			<lne id="1950" begin="25" end="25"/>
+			<lne id="1951" begin="23" end="27"/>
+			<lne id="1952" begin="35" end="35"/>
+			<lne id="1953" begin="32" end="36"/>
+			<lne id="1954" begin="30" end="38"/>
+			<lne id="1955" begin="44" end="44"/>
+			<lne id="1956" begin="41" end="45"/>
+			<lne id="1957" begin="39" end="47"/>
+			<lne id="1958" begin="50" end="50"/>
+			<lne id="1959" begin="48" end="52"/>
+			<lne id="1960" begin="55" end="55"/>
+			<lne id="1961" begin="56" end="56"/>
+			<lne id="1962" begin="55" end="57"/>
+			<lne id="1963" begin="53" end="59"/>
+			<lne id="1964" begin="62" end="62"/>
+			<lne id="1965" begin="62" end="63"/>
+			<lne id="1966" begin="62" end="64"/>
+			<lne id="1967" begin="60" end="66"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="3" name="118" begin="6" end="67"/>
 			<lve slot="4" name="475" begin="10" end="67"/>
 			<lve slot="2" name="485" begin="2" end="67"/>
 			<lve slot="0" name="103" begin="0" end="67"/>
-			<lve slot="1" name="517" begin="0" end="67"/>
+			<lve slot="1" name="522" begin="0" end="67"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1944">
+	<operation name="1968">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1945"/>
+			<parameter name="105" type="1969"/>
 		</parameters>
 		<code>
 			<getasm/>
@@ -9023,15 +9156,15 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="1944"/>
+			<push arg="1968"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="1946"/>
+			<push arg="1970"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="1947"/>
-			<push arg="1948"/>
+			<push arg="1971"/>
+			<push arg="1972"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -9044,32 +9177,32 @@
 			<getasm/>
 			<pushi arg="505"/>
 			<call arg="115"/>
-			<set arg="1949"/>
+			<set arg="1973"/>
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="1950"/>
+			<set arg="1974"/>
 			<pop/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="1951" begin="25" end="25"/>
-			<lne id="1952" begin="23" end="27"/>
-			<lne id="1953" begin="30" end="30"/>
-			<lne id="1954" begin="28" end="32"/>
-			<lne id="1955" begin="22" end="33"/>
+			<lne id="1975" begin="25" end="25"/>
+			<lne id="1976" begin="23" end="27"/>
+			<lne id="1977" begin="30" end="30"/>
+			<lne id="1978" begin="28" end="32"/>
+			<lne id="1979" begin="22" end="33"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="2" name="1947" begin="18" end="34"/>
+			<lve slot="2" name="1971" begin="18" end="34"/>
 			<lve slot="0" name="103" begin="0" end="34"/>
-			<lve slot="1" name="1946" begin="0" end="34"/>
+			<lve slot="1" name="1970" begin="0" end="34"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1956">
+	<operation name="1980">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1945"/>
+			<parameter name="105" type="1969"/>
 		</parameters>
 		<code>
 			<getasm/>
@@ -9078,15 +9211,15 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="1956"/>
+			<push arg="1980"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="1946"/>
+			<push arg="1970"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="1957"/>
-			<push arg="1958"/>
+			<push arg="1981"/>
+			<push arg="1982"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -9099,22 +9232,22 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="1959"/>
+			<set arg="1983"/>
 			<pop/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="1960" begin="25" end="25"/>
-			<lne id="1961" begin="23" end="27"/>
-			<lne id="1962" begin="22" end="28"/>
+			<lne id="1984" begin="25" end="25"/>
+			<lne id="1985" begin="23" end="27"/>
+			<lne id="1986" begin="22" end="28"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="2" name="1957" begin="18" end="29"/>
+			<lve slot="2" name="1981" begin="18" end="29"/>
 			<lve slot="0" name="103" begin="0" end="29"/>
-			<lve slot="1" name="1946" begin="0" end="29"/>
+			<lve slot="1" name="1970" begin="0" end="29"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1963">
+	<operation name="1987">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -9133,13 +9266,13 @@
 			<new/>
 			<store arg="207"/>
 			<load arg="105"/>
-			<get arg="1964"/>
+			<get arg="1988"/>
 			<call arg="215"/>
-			<if arg="1965"/>
+			<if arg="1989"/>
 			<load arg="105"/>
-			<get arg="1964"/>
+			<get arg="1988"/>
 			<store arg="114"/>
-			<goto arg="1966"/>
+			<goto arg="1990"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
@@ -9149,7 +9282,7 @@
 			<store arg="210"/>
 			<load arg="210"/>
 			<get arg="142"/>
-			<get arg="1967"/>
+			<get arg="1991"/>
 			<call arg="141"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -9172,24 +9305,24 @@
 			<iterate/>
 			<store arg="210"/>
 			<load arg="210"/>
-			<call arg="510"/>
+			<call arg="515"/>
 			<call arg="196"/>
-			<if arg="1968"/>
+			<if arg="1992"/>
 			<load arg="210"/>
 			<call arg="36"/>
 			<enditerate/>
 			<store arg="200"/>
 			<load arg="105"/>
-			<get arg="1969"/>
+			<get arg="1993"/>
 			<call arg="215"/>
 			<call arg="217"/>
-			<if arg="1970"/>
+			<if arg="1994"/>
 			<goto arg="202"/>
 			<load arg="105"/>
-			<get arg="1969"/>
+			<get arg="1993"/>
 			<call arg="203"/>
 			<load arg="200"/>
-			<call arg="1971"/>
+			<call arg="1995"/>
 			<store arg="200"/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -9198,7 +9331,7 @@
 			<iterate/>
 			<store arg="210"/>
 			<load arg="210"/>
-			<call arg="1972"/>
+			<call arg="1996"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="205"/>
@@ -9216,16 +9349,16 @@
 			<load arg="210"/>
 			<call arg="195"/>
 			<call arg="231"/>
-			<get arg="676"/>
+			<get arg="706"/>
 			<iterate/>
 			<store arg="213"/>
 			<load arg="213"/>
-			<call arg="1012"/>
+			<call arg="1038"/>
 			<load arg="210"/>
 			<get arg="61"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="1973"/>
+			<if arg="1997"/>
 			<load arg="213"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -9235,11 +9368,11 @@
 			<call arg="203"/>
 			<store arg="207"/>
 			<load arg="105"/>
-			<get arg="1974"/>
+			<get arg="1998"/>
 			<call arg="215"/>
 			<call arg="217"/>
-			<if arg="1975"/>
-			<goto arg="1976"/>
+			<if arg="1999"/>
+			<goto arg="2000"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
@@ -9247,12 +9380,12 @@
 			<iterate/>
 			<store arg="210"/>
 			<load arg="105"/>
-			<get arg="1974"/>
+			<get arg="1998"/>
 			<load arg="210"/>
-			<call arg="1977"/>
-			<call arg="1978"/>
+			<call arg="2001"/>
+			<call arg="2002"/>
 			<call arg="196"/>
-			<if arg="1320"/>
+			<if arg="1344"/>
 			<load arg="210"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -9260,95 +9393,95 @@
 			<load arg="207"/>
 		</code>
 		<linenumbertable>
-			<lne id="1979" begin="0" end="2"/>
-			<lne id="1980" begin="4" end="6"/>
-			<lne id="1981" begin="8" end="10"/>
-			<lne id="1982" begin="12" end="12"/>
-			<lne id="1983" begin="12" end="13"/>
-			<lne id="1984" begin="12" end="14"/>
-			<lne id="1985" begin="16" end="16"/>
-			<lne id="1986" begin="16" end="17"/>
-			<lne id="1987" begin="16" end="18"/>
-			<lne id="1988" begin="23" end="23"/>
-			<lne id="1989" begin="23" end="24"/>
-			<lne id="1990" begin="27" end="27"/>
-			<lne id="1991" begin="27" end="28"/>
-			<lne id="1992" begin="27" end="29"/>
-			<lne id="1993" begin="27" end="30"/>
-			<lne id="1994" begin="20" end="32"/>
-			<lne id="1995" begin="20" end="33"/>
-			<lne id="1996" begin="20" end="34"/>
-			<lne id="1997" begin="12" end="34"/>
-			<lne id="1998" begin="41" end="41"/>
-			<lne id="1999" begin="44" end="44"/>
-			<lne id="2000" begin="44" end="45"/>
-			<lne id="2001" begin="38" end="47"/>
-			<lne id="2002" begin="38" end="48"/>
-			<lne id="2003" begin="51" end="51"/>
-			<lne id="2004" begin="51" end="52"/>
-			<lne id="2005" begin="35" end="57"/>
-			<lne id="2006" begin="35" end="58"/>
-			<lne id="2007" begin="59" end="59"/>
-			<lne id="2008" begin="59" end="60"/>
-			<lne id="2009" begin="59" end="61"/>
-			<lne id="2010" begin="59" end="62"/>
-			<lne id="2011" begin="65" end="65"/>
-			<lne id="2012" begin="65" end="66"/>
-			<lne id="2013" begin="65" end="67"/>
-			<lne id="2014" begin="68" end="68"/>
-			<lne id="2015" begin="65" end="69"/>
-			<lne id="2016" begin="65" end="70"/>
-			<lne id="2017" begin="59" end="70"/>
-			<lne id="2018" begin="74" end="74"/>
-			<lne id="2019" begin="77" end="77"/>
-			<lne id="2020" begin="77" end="78"/>
-			<lne id="2021" begin="71" end="80"/>
-			<lne id="2022" begin="71" end="81"/>
-			<lne id="2023" begin="71" end="82"/>
-			<lne id="2024" begin="86" end="86"/>
-			<lne id="2025" begin="92" end="92"/>
-			<lne id="2026" begin="93" end="93"/>
-			<lne id="2027" begin="93" end="94"/>
-			<lne id="2028" begin="92" end="95"/>
-			<lne id="2029" begin="92" end="96"/>
-			<lne id="2030" begin="99" end="99"/>
-			<lne id="2031" begin="99" end="100"/>
-			<lne id="2032" begin="101" end="101"/>
-			<lne id="2033" begin="101" end="102"/>
-			<lne id="2034" begin="99" end="103"/>
-			<lne id="2035" begin="89" end="108"/>
-			<lne id="2036" begin="83" end="110"/>
-			<lne id="2037" begin="83" end="111"/>
-			<lne id="2038" begin="83" end="112"/>
-			<lne id="2039" begin="83" end="113"/>
-			<lne id="2040" begin="114" end="114"/>
-			<lne id="2041" begin="114" end="115"/>
-			<lne id="2042" begin="114" end="116"/>
-			<lne id="2043" begin="114" end="117"/>
-			<lne id="2044" begin="123" end="123"/>
-			<lne id="2045" begin="126" end="126"/>
-			<lne id="2046" begin="126" end="127"/>
-			<lne id="2047" begin="128" end="128"/>
-			<lne id="2048" begin="128" end="129"/>
-			<lne id="2049" begin="126" end="130"/>
-			<lne id="2050" begin="120" end="135"/>
-			<lne id="2051" begin="120" end="136"/>
-			<lne id="2052" begin="114" end="136"/>
-			<lne id="2053" begin="137" end="137"/>
-			<lne id="2054" begin="137" end="137"/>
-			<lne id="2055" begin="12" end="137"/>
+			<lne id="2003" begin="0" end="2"/>
+			<lne id="2004" begin="4" end="6"/>
+			<lne id="2005" begin="8" end="10"/>
+			<lne id="2006" begin="12" end="12"/>
+			<lne id="2007" begin="12" end="13"/>
+			<lne id="2008" begin="12" end="14"/>
+			<lne id="2009" begin="16" end="16"/>
+			<lne id="2010" begin="16" end="17"/>
+			<lne id="2011" begin="16" end="18"/>
+			<lne id="2012" begin="23" end="23"/>
+			<lne id="2013" begin="23" end="24"/>
+			<lne id="2014" begin="27" end="27"/>
+			<lne id="2015" begin="27" end="28"/>
+			<lne id="2016" begin="27" end="29"/>
+			<lne id="2017" begin="27" end="30"/>
+			<lne id="2018" begin="20" end="32"/>
+			<lne id="2019" begin="20" end="33"/>
+			<lne id="2020" begin="20" end="34"/>
+			<lne id="2021" begin="12" end="34"/>
+			<lne id="2022" begin="41" end="41"/>
+			<lne id="2023" begin="44" end="44"/>
+			<lne id="2024" begin="44" end="45"/>
+			<lne id="2025" begin="38" end="47"/>
+			<lne id="2026" begin="38" end="48"/>
+			<lne id="2027" begin="51" end="51"/>
+			<lne id="2028" begin="51" end="52"/>
+			<lne id="2029" begin="35" end="57"/>
+			<lne id="2030" begin="35" end="58"/>
+			<lne id="2031" begin="59" end="59"/>
+			<lne id="2032" begin="59" end="60"/>
+			<lne id="2033" begin="59" end="61"/>
+			<lne id="2034" begin="59" end="62"/>
+			<lne id="2035" begin="65" end="65"/>
+			<lne id="2036" begin="65" end="66"/>
+			<lne id="2037" begin="65" end="67"/>
+			<lne id="2038" begin="68" end="68"/>
+			<lne id="2039" begin="65" end="69"/>
+			<lne id="2040" begin="65" end="70"/>
+			<lne id="2041" begin="59" end="70"/>
+			<lne id="2042" begin="74" end="74"/>
+			<lne id="2043" begin="77" end="77"/>
+			<lne id="2044" begin="77" end="78"/>
+			<lne id="2045" begin="71" end="80"/>
+			<lne id="2046" begin="71" end="81"/>
+			<lne id="2047" begin="71" end="82"/>
+			<lne id="2048" begin="86" end="86"/>
+			<lne id="2049" begin="92" end="92"/>
+			<lne id="2050" begin="93" end="93"/>
+			<lne id="2051" begin="93" end="94"/>
+			<lne id="2052" begin="92" end="95"/>
+			<lne id="2053" begin="92" end="96"/>
+			<lne id="2054" begin="99" end="99"/>
+			<lne id="2055" begin="99" end="100"/>
+			<lne id="2056" begin="101" end="101"/>
+			<lne id="2057" begin="101" end="102"/>
+			<lne id="2058" begin="99" end="103"/>
+			<lne id="2059" begin="89" end="108"/>
+			<lne id="2060" begin="83" end="110"/>
+			<lne id="2061" begin="83" end="111"/>
+			<lne id="2062" begin="83" end="112"/>
+			<lne id="2063" begin="83" end="113"/>
+			<lne id="2064" begin="114" end="114"/>
+			<lne id="2065" begin="114" end="115"/>
+			<lne id="2066" begin="114" end="116"/>
+			<lne id="2067" begin="114" end="117"/>
+			<lne id="2068" begin="123" end="123"/>
+			<lne id="2069" begin="126" end="126"/>
+			<lne id="2070" begin="126" end="127"/>
+			<lne id="2071" begin="128" end="128"/>
+			<lne id="2072" begin="128" end="129"/>
+			<lne id="2073" begin="126" end="130"/>
+			<lne id="2074" begin="120" end="135"/>
+			<lne id="2075" begin="120" end="136"/>
+			<lne id="2076" begin="114" end="136"/>
+			<lne id="2077" begin="137" end="137"/>
+			<lne id="2078" begin="137" end="137"/>
+			<lne id="2079" begin="12" end="137"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="5" name="519" begin="26" end="31"/>
+			<lve slot="5" name="524" begin="26" end="31"/>
 			<lve slot="5" name="470" begin="43" end="46"/>
-			<lve slot="5" name="2056" begin="50" end="56"/>
-			<lve slot="5" name="2056" begin="76" end="79"/>
-			<lve slot="6" name="517" begin="98" end="107"/>
-			<lve slot="5" name="2056" begin="88" end="109"/>
-			<lve slot="5" name="517" begin="125" end="134"/>
-			<lve slot="2" name="2057" begin="3" end="137"/>
-			<lve slot="3" name="2058" begin="7" end="137"/>
-			<lve slot="4" name="2059" begin="11" end="137"/>
+			<lve slot="5" name="681" begin="50" end="56"/>
+			<lve slot="5" name="681" begin="76" end="79"/>
+			<lve slot="6" name="522" begin="98" end="107"/>
+			<lve slot="5" name="681" begin="88" end="109"/>
+			<lve slot="5" name="522" begin="125" end="134"/>
+			<lve slot="2" name="2080" begin="3" end="137"/>
+			<lve slot="3" name="2081" begin="7" end="137"/>
+			<lve slot="4" name="2082" begin="11" end="137"/>
 			<lve slot="0" name="103" begin="0" end="137"/>
 			<lve slot="1" name="134" begin="0" end="137"/>
 		</localvariabletable>
@@ -9361,15 +9494,15 @@
 		</parameters>
 		<code>
 			<load arg="105"/>
-			<get arg="2060"/>
-			<push arg="2061"/>
-			<push arg="713"/>
-			<call arg="714"/>
-			<call arg="715"/>
+			<get arg="2083"/>
+			<push arg="2084"/>
+			<push arg="743"/>
+			<call arg="744"/>
+			<call arg="534"/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<push arg="2062"/>
-			<call arg="723"/>
+			<push arg="2085"/>
+			<call arg="752"/>
 			<store arg="207"/>
 			<push arg="209"/>
 			<push arg="50"/>
@@ -9385,7 +9518,7 @@
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2063"/>
+			<get arg="2086"/>
 			<get arg="61"/>
 			<call arg="115"/>
 			<set arg="212"/>
@@ -9393,91 +9526,91 @@
 			<getasm/>
 			<getasm/>
 			<load arg="105"/>
-			<call arg="2064"/>
+			<call arg="2087"/>
 			<call arg="115"/>
-			<set arg="1330"/>
+			<set arg="1354"/>
 			<pop/>
 			<load arg="210"/>
-			<get arg="2065"/>
+			<get arg="2088"/>
 			<load arg="213"/>
-			<pcall arg="2066"/>
+			<pcall arg="2089"/>
 			<load arg="207"/>
 			<pushi arg="505"/>
-			<call arg="1098"/>
-			<if arg="2067"/>
-			<goto arg="2068"/>
+			<call arg="536"/>
+			<if arg="2090"/>
+			<goto arg="2091"/>
 			<load arg="213"/>
-			<get arg="2069"/>
+			<get arg="2092"/>
 			<getasm/>
 			<load arg="200"/>
 			<load arg="207"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
-			<push arg="2062"/>
-			<call arg="1097"/>
+			<push arg="2085"/>
+			<call arg="535"/>
 			<call arg="500"/>
 			<load arg="200"/>
-			<call arg="1097"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
-			<call arg="2071"/>
-			<pcall arg="2066"/>
+			<call arg="535"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
+			<call arg="2094"/>
+			<pcall arg="2089"/>
 		</code>
 		<linenumbertable>
-			<lne id="2072" begin="0" end="0"/>
-			<lne id="2073" begin="0" end="1"/>
-			<lne id="2074" begin="2" end="2"/>
-			<lne id="2075" begin="3" end="3"/>
-			<lne id="2076" begin="0" end="4"/>
-			<lne id="2077" begin="0" end="5"/>
-			<lne id="2078" begin="7" end="7"/>
-			<lne id="2079" begin="8" end="8"/>
-			<lne id="2080" begin="7" end="9"/>
-			<lne id="2081" begin="11" end="13"/>
-			<lne id="2082" begin="11" end="14"/>
-			<lne id="2083" begin="11" end="15"/>
-			<lne id="2084" begin="24" end="24"/>
-			<lne id="2085" begin="24" end="25"/>
-			<lne id="2086" begin="24" end="26"/>
-			<lne id="2087" begin="22" end="28"/>
-			<lne id="2088" begin="31" end="31"/>
-			<lne id="2089" begin="32" end="32"/>
-			<lne id="2090" begin="31" end="33"/>
-			<lne id="2091" begin="29" end="35"/>
-			<lne id="2092" begin="37" end="37"/>
-			<lne id="2093" begin="37" end="38"/>
-			<lne id="2094" begin="39" end="39"/>
-			<lne id="2095" begin="37" end="40"/>
-			<lne id="2096" begin="41" end="41"/>
-			<lne id="2097" begin="42" end="42"/>
-			<lne id="2098" begin="41" end="43"/>
-			<lne id="2099" begin="46" end="46"/>
-			<lne id="2100" begin="46" end="47"/>
-			<lne id="2101" begin="48" end="48"/>
-			<lne id="2102" begin="49" end="49"/>
-			<lne id="2103" begin="50" end="50"/>
-			<lne id="2104" begin="51" end="51"/>
-			<lne id="2105" begin="50" end="52"/>
-			<lne id="2106" begin="53" end="53"/>
-			<lne id="2107" begin="53" end="54"/>
-			<lne id="2108" begin="50" end="55"/>
-			<lne id="2109" begin="56" end="56"/>
-			<lne id="2110" begin="56" end="57"/>
-			<lne id="2111" begin="49" end="58"/>
-			<lne id="2112" begin="49" end="59"/>
-			<lne id="2113" begin="48" end="60"/>
-			<lne id="2114" begin="46" end="61"/>
-			<lne id="2115" begin="41" end="61"/>
-			<lne id="2116" begin="37" end="61"/>
+			<lne id="2095" begin="0" end="0"/>
+			<lne id="2096" begin="0" end="1"/>
+			<lne id="2097" begin="2" end="2"/>
+			<lne id="2098" begin="3" end="3"/>
+			<lne id="2099" begin="0" end="4"/>
+			<lne id="2100" begin="0" end="5"/>
+			<lne id="2101" begin="7" end="7"/>
+			<lne id="2102" begin="8" end="8"/>
+			<lne id="2103" begin="7" end="9"/>
+			<lne id="2104" begin="11" end="13"/>
+			<lne id="2105" begin="11" end="14"/>
+			<lne id="2106" begin="11" end="15"/>
+			<lne id="2107" begin="24" end="24"/>
+			<lne id="2108" begin="24" end="25"/>
+			<lne id="2109" begin="24" end="26"/>
+			<lne id="2110" begin="22" end="28"/>
+			<lne id="2111" begin="31" end="31"/>
+			<lne id="2112" begin="32" end="32"/>
+			<lne id="2113" begin="31" end="33"/>
+			<lne id="2114" begin="29" end="35"/>
+			<lne id="2115" begin="37" end="37"/>
+			<lne id="2116" begin="37" end="38"/>
+			<lne id="2117" begin="39" end="39"/>
+			<lne id="2118" begin="37" end="40"/>
+			<lne id="2119" begin="41" end="41"/>
+			<lne id="2120" begin="42" end="42"/>
+			<lne id="2121" begin="41" end="43"/>
+			<lne id="2122" begin="46" end="46"/>
+			<lne id="2123" begin="46" end="47"/>
+			<lne id="2124" begin="48" end="48"/>
+			<lne id="2125" begin="49" end="49"/>
+			<lne id="2126" begin="50" end="50"/>
+			<lne id="2127" begin="51" end="51"/>
+			<lne id="2128" begin="50" end="52"/>
+			<lne id="2129" begin="53" end="53"/>
+			<lne id="2130" begin="53" end="54"/>
+			<lne id="2131" begin="50" end="55"/>
+			<lne id="2132" begin="56" end="56"/>
+			<lne id="2133" begin="56" end="57"/>
+			<lne id="2134" begin="49" end="58"/>
+			<lne id="2135" begin="49" end="59"/>
+			<lne id="2136" begin="48" end="60"/>
+			<lne id="2137" begin="46" end="61"/>
+			<lne id="2138" begin="41" end="61"/>
+			<lne id="2139" begin="37" end="61"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="6" name="2117" begin="20" end="61"/>
-			<lve slot="3" name="2118" begin="6" end="61"/>
-			<lve slot="4" name="2119" begin="10" end="61"/>
-			<lve slot="5" name="2120" begin="16" end="61"/>
+			<lve slot="6" name="2140" begin="20" end="61"/>
+			<lve slot="3" name="2141" begin="6" end="61"/>
+			<lve slot="4" name="2142" begin="10" end="61"/>
+			<lve slot="5" name="2143" begin="16" end="61"/>
 			<lve slot="0" name="103" begin="0" end="61"/>
 			<lve slot="1" name="134" begin="0" end="61"/>
-			<lve slot="2" name="2121" begin="0" end="61"/>
+			<lve slot="2" name="2144" begin="0" end="61"/>
 		</localvariabletable>
 	</operation>
 	<operation name="147">
@@ -9487,19 +9620,19 @@
 		</parameters>
 		<code>
 			<load arg="105"/>
-			<get arg="2060"/>
-			<push arg="2061"/>
-			<push arg="713"/>
-			<call arg="714"/>
-			<call arg="715"/>
+			<get arg="2083"/>
+			<push arg="2084"/>
+			<push arg="743"/>
+			<call arg="744"/>
+			<call arg="534"/>
 			<store arg="114"/>
 			<load arg="114"/>
-			<push arg="2122"/>
-			<call arg="723"/>
+			<push arg="2145"/>
+			<call arg="752"/>
 			<store arg="200"/>
 			<load arg="114"/>
-			<push arg="2062"/>
-			<call arg="723"/>
+			<push arg="2085"/>
+			<call arg="752"/>
 			<store arg="207"/>
 			<push arg="209"/>
 			<push arg="50"/>
@@ -9515,7 +9648,7 @@
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2063"/>
+			<get arg="2086"/>
 			<get arg="61"/>
 			<call arg="115"/>
 			<set arg="212"/>
@@ -9523,133 +9656,133 @@
 			<getasm/>
 			<getasm/>
 			<load arg="105"/>
-			<call arg="2064"/>
+			<call arg="2087"/>
 			<call arg="115"/>
-			<set arg="1330"/>
+			<set arg="1354"/>
 			<pop/>
 			<load arg="210"/>
-			<get arg="2065"/>
+			<get arg="2088"/>
 			<load arg="213"/>
-			<pcall arg="2066"/>
+			<pcall arg="2089"/>
 			<load arg="200"/>
 			<pushi arg="505"/>
-			<call arg="1098"/>
+			<call arg="536"/>
 			<if arg="202"/>
 			<load arg="207"/>
 			<pushi arg="505"/>
-			<call arg="1098"/>
-			<if arg="2123"/>
-			<goto arg="2124"/>
+			<call arg="536"/>
+			<if arg="2146"/>
+			<goto arg="2147"/>
 			<load arg="213"/>
-			<get arg="2069"/>
+			<get arg="2092"/>
 			<getasm/>
 			<load arg="114"/>
 			<load arg="207"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
-			<push arg="2062"/>
-			<call arg="1097"/>
+			<push arg="2085"/>
+			<call arg="535"/>
 			<call arg="500"/>
 			<load arg="114"/>
-			<call arg="1097"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
-			<call arg="2071"/>
-			<pcall arg="2066"/>
-			<goto arg="2125"/>
+			<call arg="535"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
+			<call arg="2094"/>
+			<pcall arg="2089"/>
+			<goto arg="2148"/>
 			<load arg="213"/>
-			<get arg="2069"/>
+			<get arg="2092"/>
 			<getasm/>
 			<load arg="114"/>
 			<load arg="200"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
-			<push arg="2122"/>
-			<call arg="1097"/>
+			<push arg="2145"/>
+			<call arg="535"/>
 			<call arg="500"/>
 			<load arg="114"/>
-			<call arg="1097"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
-			<call arg="2126"/>
-			<pcall arg="2066"/>
+			<call arg="535"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
+			<call arg="2149"/>
+			<pcall arg="2089"/>
 		</code>
 		<linenumbertable>
-			<lne id="2127" begin="0" end="0"/>
-			<lne id="2128" begin="0" end="1"/>
-			<lne id="2129" begin="2" end="2"/>
-			<lne id="2130" begin="3" end="3"/>
-			<lne id="2131" begin="0" end="4"/>
-			<lne id="2132" begin="0" end="5"/>
-			<lne id="2133" begin="7" end="7"/>
-			<lne id="2134" begin="8" end="8"/>
-			<lne id="2135" begin="7" end="9"/>
-			<lne id="2136" begin="11" end="11"/>
-			<lne id="2137" begin="12" end="12"/>
-			<lne id="2138" begin="11" end="13"/>
-			<lne id="2139" begin="15" end="17"/>
-			<lne id="2140" begin="15" end="18"/>
-			<lne id="2141" begin="15" end="19"/>
-			<lne id="2142" begin="28" end="28"/>
-			<lne id="2143" begin="28" end="29"/>
-			<lne id="2144" begin="28" end="30"/>
-			<lne id="2145" begin="26" end="32"/>
-			<lne id="2146" begin="35" end="35"/>
-			<lne id="2147" begin="36" end="36"/>
-			<lne id="2148" begin="35" end="37"/>
-			<lne id="2149" begin="33" end="39"/>
-			<lne id="2150" begin="41" end="41"/>
-			<lne id="2151" begin="41" end="42"/>
-			<lne id="2152" begin="43" end="43"/>
-			<lne id="2153" begin="41" end="44"/>
-			<lne id="2154" begin="45" end="45"/>
-			<lne id="2155" begin="46" end="46"/>
-			<lne id="2156" begin="45" end="47"/>
-			<lne id="2157" begin="49" end="49"/>
-			<lne id="2158" begin="50" end="50"/>
-			<lne id="2159" begin="49" end="51"/>
-			<lne id="2160" begin="54" end="54"/>
-			<lne id="2161" begin="54" end="55"/>
-			<lne id="2162" begin="56" end="56"/>
-			<lne id="2163" begin="57" end="57"/>
-			<lne id="2164" begin="58" end="58"/>
-			<lne id="2165" begin="59" end="59"/>
-			<lne id="2166" begin="58" end="60"/>
-			<lne id="2167" begin="61" end="61"/>
-			<lne id="2168" begin="61" end="62"/>
-			<lne id="2169" begin="58" end="63"/>
-			<lne id="2170" begin="64" end="64"/>
-			<lne id="2171" begin="64" end="65"/>
-			<lne id="2172" begin="57" end="66"/>
-			<lne id="2173" begin="57" end="67"/>
-			<lne id="2174" begin="56" end="68"/>
-			<lne id="2175" begin="54" end="69"/>
-			<lne id="2176" begin="49" end="69"/>
-			<lne id="2177" begin="71" end="71"/>
-			<lne id="2178" begin="71" end="72"/>
-			<lne id="2179" begin="73" end="73"/>
-			<lne id="2180" begin="74" end="74"/>
-			<lne id="2181" begin="75" end="75"/>
-			<lne id="2182" begin="76" end="76"/>
-			<lne id="2183" begin="75" end="77"/>
-			<lne id="2184" begin="78" end="78"/>
-			<lne id="2185" begin="78" end="79"/>
-			<lne id="2186" begin="75" end="80"/>
-			<lne id="2187" begin="81" end="81"/>
-			<lne id="2188" begin="81" end="82"/>
-			<lne id="2189" begin="74" end="83"/>
-			<lne id="2190" begin="74" end="84"/>
-			<lne id="2191" begin="73" end="85"/>
-			<lne id="2192" begin="71" end="86"/>
-			<lne id="2193" begin="45" end="86"/>
-			<lne id="2194" begin="41" end="86"/>
+			<lne id="2150" begin="0" end="0"/>
+			<lne id="2151" begin="0" end="1"/>
+			<lne id="2152" begin="2" end="2"/>
+			<lne id="2153" begin="3" end="3"/>
+			<lne id="2154" begin="0" end="4"/>
+			<lne id="2155" begin="0" end="5"/>
+			<lne id="2156" begin="7" end="7"/>
+			<lne id="2157" begin="8" end="8"/>
+			<lne id="2158" begin="7" end="9"/>
+			<lne id="2159" begin="11" end="11"/>
+			<lne id="2160" begin="12" end="12"/>
+			<lne id="2161" begin="11" end="13"/>
+			<lne id="2162" begin="15" end="17"/>
+			<lne id="2163" begin="15" end="18"/>
+			<lne id="2164" begin="15" end="19"/>
+			<lne id="2165" begin="28" end="28"/>
+			<lne id="2166" begin="28" end="29"/>
+			<lne id="2167" begin="28" end="30"/>
+			<lne id="2168" begin="26" end="32"/>
+			<lne id="2169" begin="35" end="35"/>
+			<lne id="2170" begin="36" end="36"/>
+			<lne id="2171" begin="35" end="37"/>
+			<lne id="2172" begin="33" end="39"/>
+			<lne id="2173" begin="41" end="41"/>
+			<lne id="2174" begin="41" end="42"/>
+			<lne id="2175" begin="43" end="43"/>
+			<lne id="2176" begin="41" end="44"/>
+			<lne id="2177" begin="45" end="45"/>
+			<lne id="2178" begin="46" end="46"/>
+			<lne id="2179" begin="45" end="47"/>
+			<lne id="2180" begin="49" end="49"/>
+			<lne id="2181" begin="50" end="50"/>
+			<lne id="2182" begin="49" end="51"/>
+			<lne id="2183" begin="54" end="54"/>
+			<lne id="2184" begin="54" end="55"/>
+			<lne id="2185" begin="56" end="56"/>
+			<lne id="2186" begin="57" end="57"/>
+			<lne id="2187" begin="58" end="58"/>
+			<lne id="2188" begin="59" end="59"/>
+			<lne id="2189" begin="58" end="60"/>
+			<lne id="2190" begin="61" end="61"/>
+			<lne id="2191" begin="61" end="62"/>
+			<lne id="2192" begin="58" end="63"/>
+			<lne id="2193" begin="64" end="64"/>
+			<lne id="2194" begin="64" end="65"/>
+			<lne id="2195" begin="57" end="66"/>
+			<lne id="2196" begin="57" end="67"/>
+			<lne id="2197" begin="56" end="68"/>
+			<lne id="2198" begin="54" end="69"/>
+			<lne id="2199" begin="49" end="69"/>
+			<lne id="2200" begin="71" end="71"/>
+			<lne id="2201" begin="71" end="72"/>
+			<lne id="2202" begin="73" end="73"/>
+			<lne id="2203" begin="74" end="74"/>
+			<lne id="2204" begin="75" end="75"/>
+			<lne id="2205" begin="76" end="76"/>
+			<lne id="2206" begin="75" end="77"/>
+			<lne id="2207" begin="78" end="78"/>
+			<lne id="2208" begin="78" end="79"/>
+			<lne id="2209" begin="75" end="80"/>
+			<lne id="2210" begin="81" end="81"/>
+			<lne id="2211" begin="81" end="82"/>
+			<lne id="2212" begin="74" end="83"/>
+			<lne id="2213" begin="74" end="84"/>
+			<lne id="2214" begin="73" end="85"/>
+			<lne id="2215" begin="71" end="86"/>
+			<lne id="2216" begin="45" end="86"/>
+			<lne id="2217" begin="41" end="86"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="6" name="2117" begin="24" end="86"/>
-			<lve slot="2" name="2118" begin="6" end="86"/>
-			<lve slot="3" name="2195" begin="10" end="86"/>
-			<lve slot="4" name="2119" begin="14" end="86"/>
-			<lve slot="5" name="2120" begin="20" end="86"/>
+			<lve slot="6" name="2140" begin="24" end="86"/>
+			<lve slot="2" name="2141" begin="6" end="86"/>
+			<lve slot="3" name="2218" begin="10" end="86"/>
+			<lve slot="4" name="2142" begin="14" end="86"/>
+			<lve slot="5" name="2143" begin="20" end="86"/>
 			<lve slot="0" name="103" begin="0" end="86"/>
 			<lve slot="1" name="134" begin="0" end="86"/>
 		</localvariabletable>
@@ -9661,11 +9794,11 @@
 		</parameters>
 		<code>
 			<load arg="105"/>
-			<get arg="2060"/>
-			<push arg="2061"/>
-			<push arg="713"/>
-			<call arg="714"/>
-			<call arg="715"/>
+			<get arg="2083"/>
+			<push arg="2084"/>
+			<push arg="743"/>
+			<call arg="744"/>
+			<call arg="534"/>
 			<store arg="114"/>
 			<push arg="209"/>
 			<push arg="50"/>
@@ -9673,7 +9806,7 @@
 			<call arg="194"/>
 			<call arg="141"/>
 			<store arg="200"/>
-			<push arg="2196"/>
+			<push arg="2219"/>
 			<push arg="50"/>
 			<new/>
 			<store arg="207"/>
@@ -9681,7 +9814,7 @@
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2063"/>
+			<get arg="2086"/>
 			<get arg="61"/>
 			<call arg="115"/>
 			<set arg="212"/>
@@ -9689,73 +9822,73 @@
 			<getasm/>
 			<getasm/>
 			<load arg="105"/>
-			<call arg="2064"/>
+			<call arg="2087"/>
 			<call arg="115"/>
-			<set arg="1330"/>
+			<set arg="1354"/>
 			<pop/>
 			<load arg="200"/>
-			<get arg="2065"/>
+			<get arg="2088"/>
 			<load arg="207"/>
-			<pcall arg="2066"/>
+			<pcall arg="2089"/>
 			<load arg="207"/>
-			<get arg="2069"/>
+			<get arg="2092"/>
 			<getasm/>
 			<load arg="114"/>
 			<push arg="148"/>
-			<push arg="713"/>
-			<call arg="714"/>
-			<call arg="715"/>
-			<call arg="1333"/>
-			<call arg="2071"/>
-			<pcall arg="2066"/>
+			<push arg="743"/>
+			<call arg="744"/>
+			<call arg="534"/>
+			<call arg="1357"/>
+			<call arg="2094"/>
+			<pcall arg="2089"/>
 		</code>
 		<linenumbertable>
-			<lne id="2197" begin="0" end="0"/>
-			<lne id="2198" begin="0" end="1"/>
-			<lne id="2199" begin="2" end="2"/>
-			<lne id="2200" begin="3" end="3"/>
-			<lne id="2201" begin="0" end="4"/>
-			<lne id="2202" begin="0" end="5"/>
-			<lne id="2203" begin="7" end="9"/>
-			<lne id="2204" begin="7" end="10"/>
-			<lne id="2205" begin="7" end="11"/>
-			<lne id="2206" begin="20" end="20"/>
-			<lne id="2207" begin="20" end="21"/>
-			<lne id="2208" begin="20" end="22"/>
-			<lne id="2209" begin="18" end="24"/>
-			<lne id="2210" begin="27" end="27"/>
-			<lne id="2211" begin="28" end="28"/>
-			<lne id="2212" begin="27" end="29"/>
-			<lne id="2213" begin="25" end="31"/>
-			<lne id="2214" begin="33" end="33"/>
-			<lne id="2215" begin="33" end="34"/>
-			<lne id="2216" begin="35" end="35"/>
-			<lne id="2217" begin="33" end="36"/>
-			<lne id="2218" begin="37" end="37"/>
-			<lne id="2219" begin="37" end="38"/>
-			<lne id="2220" begin="39" end="39"/>
-			<lne id="2221" begin="40" end="40"/>
-			<lne id="2222" begin="41" end="41"/>
-			<lne id="2223" begin="42" end="42"/>
-			<lne id="2224" begin="40" end="43"/>
-			<lne id="2225" begin="40" end="44"/>
-			<lne id="2226" begin="40" end="45"/>
-			<lne id="2227" begin="39" end="46"/>
-			<lne id="2228" begin="37" end="47"/>
-			<lne id="2229" begin="33" end="47"/>
+			<lne id="2220" begin="0" end="0"/>
+			<lne id="2221" begin="0" end="1"/>
+			<lne id="2222" begin="2" end="2"/>
+			<lne id="2223" begin="3" end="3"/>
+			<lne id="2224" begin="0" end="4"/>
+			<lne id="2225" begin="0" end="5"/>
+			<lne id="2226" begin="7" end="9"/>
+			<lne id="2227" begin="7" end="10"/>
+			<lne id="2228" begin="7" end="11"/>
+			<lne id="2229" begin="20" end="20"/>
+			<lne id="2230" begin="20" end="21"/>
+			<lne id="2231" begin="20" end="22"/>
+			<lne id="2232" begin="18" end="24"/>
+			<lne id="2233" begin="27" end="27"/>
+			<lne id="2234" begin="28" end="28"/>
+			<lne id="2235" begin="27" end="29"/>
+			<lne id="2236" begin="25" end="31"/>
+			<lne id="2237" begin="33" end="33"/>
+			<lne id="2238" begin="33" end="34"/>
+			<lne id="2239" begin="35" end="35"/>
+			<lne id="2240" begin="33" end="36"/>
+			<lne id="2241" begin="37" end="37"/>
+			<lne id="2242" begin="37" end="38"/>
+			<lne id="2243" begin="39" end="39"/>
+			<lne id="2244" begin="40" end="40"/>
+			<lne id="2245" begin="41" end="41"/>
+			<lne id="2246" begin="42" end="42"/>
+			<lne id="2247" begin="40" end="43"/>
+			<lne id="2248" begin="40" end="44"/>
+			<lne id="2249" begin="40" end="45"/>
+			<lne id="2250" begin="39" end="46"/>
+			<lne id="2251" begin="37" end="47"/>
+			<lne id="2252" begin="33" end="47"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="4" name="2230" begin="16" end="47"/>
-			<lve slot="2" name="2118" begin="6" end="47"/>
-			<lve slot="3" name="2120" begin="12" end="47"/>
+			<lve slot="4" name="2253" begin="16" end="47"/>
+			<lve slot="2" name="2141" begin="6" end="47"/>
+			<lve slot="3" name="2143" begin="12" end="47"/>
 			<lve slot="0" name="103" begin="0" end="47"/>
 			<lve slot="1" name="134" begin="0" end="47"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2231">
+	<operation name="2254">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1945"/>
+			<parameter name="105" type="1969"/>
 		</parameters>
 		<code>
 			<getasm/>
@@ -9764,15 +9897,15 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="2231"/>
+			<push arg="2254"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="2232"/>
+			<push arg="2255"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
 			<push arg="118"/>
-			<push arg="2231"/>
+			<push arg="2254"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -9785,25 +9918,25 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2233"/>
+			<set arg="2256"/>
 			<pop/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2234" begin="25" end="25"/>
-			<lne id="2235" begin="23" end="27"/>
-			<lne id="2236" begin="22" end="28"/>
+			<lne id="2257" begin="25" end="25"/>
+			<lne id="2258" begin="23" end="27"/>
+			<lne id="2259" begin="22" end="28"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="2" name="118" begin="18" end="29"/>
 			<lve slot="0" name="103" begin="0" end="29"/>
-			<lve slot="1" name="2232" begin="0" end="29"/>
+			<lve slot="1" name="2255" begin="0" end="29"/>
 		</localvariabletable>
 	</operation>
-	<operation name="1514">
+	<operation name="1538">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1945"/>
+			<parameter name="105" type="1969"/>
 		</parameters>
 		<code>
 			<getasm/>
@@ -9812,15 +9945,15 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="1514"/>
+			<push arg="1538"/>
 			<pcall arg="133"/>
 			<dup/>
 			<push arg="119"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2237"/>
-			<push arg="1514"/>
+			<push arg="2260"/>
+			<push arg="1538"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -9833,26 +9966,26 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="1517"/>
+			<set arg="1541"/>
 			<pop/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2238" begin="25" end="25"/>
-			<lne id="2239" begin="23" end="27"/>
-			<lne id="2240" begin="22" end="28"/>
+			<lne id="2261" begin="25" end="25"/>
+			<lne id="2262" begin="23" end="27"/>
+			<lne id="2263" begin="22" end="28"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="2" name="2237" begin="18" end="29"/>
+			<lve slot="2" name="2260" begin="18" end="29"/>
 			<lve slot="0" name="103" begin="0" end="29"/>
 			<lve slot="1" name="119" begin="0" end="29"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2241">
+	<operation name="2264">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1945"/>
-			<parameter name="114" type="1945"/>
+			<parameter name="105" type="1969"/>
+			<parameter name="114" type="1969"/>
 		</parameters>
 		<code>
 			<getasm/>
@@ -9861,19 +9994,19 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="2241"/>
+			<push arg="2264"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="2242"/>
+			<push arg="2265"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2243"/>
+			<push arg="2266"/>
 			<load arg="114"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2237"/>
-			<push arg="2241"/>
+			<push arg="2260"/>
+			<push arg="2264"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -9886,34 +10019,34 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2244"/>
+			<set arg="2267"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
 			<call arg="115"/>
-			<set arg="2245"/>
+			<set arg="2268"/>
 			<pop/>
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="2246" begin="29" end="29"/>
-			<lne id="2247" begin="27" end="31"/>
-			<lne id="2248" begin="34" end="34"/>
-			<lne id="2249" begin="32" end="36"/>
-			<lne id="2250" begin="26" end="37"/>
+			<lne id="2269" begin="29" end="29"/>
+			<lne id="2270" begin="27" end="31"/>
+			<lne id="2271" begin="34" end="34"/>
+			<lne id="2272" begin="32" end="36"/>
+			<lne id="2273" begin="26" end="37"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="2237" begin="22" end="38"/>
+			<lve slot="3" name="2260" begin="22" end="38"/>
 			<lve slot="0" name="103" begin="0" end="38"/>
-			<lve slot="1" name="2242" begin="0" end="38"/>
-			<lve slot="2" name="2243" begin="0" end="38"/>
+			<lve slot="1" name="2265" begin="0" end="38"/>
+			<lve slot="2" name="2266" begin="0" end="38"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2251">
+	<operation name="2274">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1945"/>
-			<parameter name="114" type="1945"/>
+			<parameter name="105" type="1969"/>
+			<parameter name="114" type="1969"/>
 		</parameters>
 		<code>
 			<getasm/>
@@ -9922,19 +10055,19 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="2251"/>
+			<push arg="2274"/>
 			<pcall arg="133"/>
 			<dup/>
-			<push arg="2252"/>
+			<push arg="2275"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2253"/>
+			<push arg="2276"/>
 			<load arg="114"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2254"/>
-			<push arg="2251"/>
+			<push arg="2277"/>
+			<push arg="2274"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -9947,34 +10080,34 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2255"/>
+			<set arg="2278"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
 			<call arg="115"/>
-			<set arg="2256"/>
+			<set arg="2279"/>
 			<pop/>
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="2257" begin="29" end="29"/>
-			<lne id="2258" begin="27" end="31"/>
-			<lne id="2259" begin="34" end="34"/>
-			<lne id="2260" begin="32" end="36"/>
-			<lne id="2261" begin="26" end="37"/>
+			<lne id="2280" begin="29" end="29"/>
+			<lne id="2281" begin="27" end="31"/>
+			<lne id="2282" begin="34" end="34"/>
+			<lne id="2283" begin="32" end="36"/>
+			<lne id="2284" begin="26" end="37"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="2254" begin="22" end="38"/>
+			<lve slot="3" name="2277" begin="22" end="38"/>
 			<lve slot="0" name="103" begin="0" end="38"/>
-			<lve slot="1" name="2252" begin="0" end="38"/>
-			<lve slot="2" name="2253" begin="0" end="38"/>
+			<lve slot="1" name="2275" begin="0" end="38"/>
+			<lve slot="2" name="2276" begin="0" end="38"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2262">
+	<operation name="2285">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1945"/>
-			<parameter name="114" type="1945"/>
+			<parameter name="105" type="1969"/>
+			<parameter name="114" type="1969"/>
 		</parameters>
 		<code>
 			<getasm/>
@@ -9983,19 +10116,19 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="2262"/>
+			<push arg="2285"/>
 			<pcall arg="133"/>
 			<dup/>
 			<push arg="472"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2263"/>
+			<push arg="2286"/>
 			<load arg="114"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2254"/>
-			<push arg="2262"/>
+			<push arg="2277"/>
+			<push arg="2285"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -10008,34 +10141,34 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2264"/>
+			<set arg="2287"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
 			<call arg="115"/>
-			<set arg="2265"/>
+			<set arg="2288"/>
 			<pop/>
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="2266" begin="29" end="29"/>
-			<lne id="2267" begin="27" end="31"/>
-			<lne id="2268" begin="34" end="34"/>
-			<lne id="2269" begin="32" end="36"/>
-			<lne id="2270" begin="26" end="37"/>
+			<lne id="2289" begin="29" end="29"/>
+			<lne id="2290" begin="27" end="31"/>
+			<lne id="2291" begin="34" end="34"/>
+			<lne id="2292" begin="32" end="36"/>
+			<lne id="2293" begin="26" end="37"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="2254" begin="22" end="38"/>
+			<lve slot="3" name="2277" begin="22" end="38"/>
 			<lve slot="0" name="103" begin="0" end="38"/>
 			<lve slot="1" name="472" begin="0" end="38"/>
-			<lve slot="2" name="2263" begin="0" end="38"/>
+			<lve slot="2" name="2286" begin="0" end="38"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2271">
+	<operation name="2294">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="1945"/>
-			<parameter name="114" type="1945"/>
+			<parameter name="105" type="1969"/>
+			<parameter name="114" type="1969"/>
 		</parameters>
 		<code>
 			<getasm/>
@@ -10044,19 +10177,19 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="2271"/>
+			<push arg="2294"/>
 			<pcall arg="133"/>
 			<dup/>
 			<push arg="472"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2263"/>
+			<push arg="2286"/>
 			<load arg="114"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2254"/>
-			<push arg="2271"/>
+			<push arg="2277"/>
+			<push arg="2294"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -10069,36 +10202,36 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2264"/>
+			<set arg="2287"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
 			<call arg="115"/>
-			<set arg="2265"/>
+			<set arg="2288"/>
 			<pop/>
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="2272" begin="29" end="29"/>
-			<lne id="2273" begin="27" end="31"/>
-			<lne id="2274" begin="34" end="34"/>
-			<lne id="2275" begin="32" end="36"/>
-			<lne id="2276" begin="26" end="37"/>
+			<lne id="2295" begin="29" end="29"/>
+			<lne id="2296" begin="27" end="31"/>
+			<lne id="2297" begin="34" end="34"/>
+			<lne id="2298" begin="32" end="36"/>
+			<lne id="2299" begin="26" end="37"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="2254" begin="22" end="38"/>
+			<lve slot="3" name="2277" begin="22" end="38"/>
 			<lve slot="0" name="103" begin="0" end="38"/>
 			<lve slot="1" name="472" begin="0" end="38"/>
-			<lve slot="2" name="2263" begin="0" end="38"/>
+			<lve slot="2" name="2286" begin="0" end="38"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2277">
+	<operation name="2300">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 		</parameters>
 		<code>
-			<push arg="2278"/>
+			<push arg="2301"/>
 			<push arg="50"/>
 			<new/>
 			<store arg="114"/>
@@ -10112,26 +10245,26 @@
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2279" begin="7" end="7"/>
-			<lne id="2280" begin="5" end="9"/>
-			<lne id="2281" begin="11" end="11"/>
-			<lne id="2282" begin="11" end="11"/>
-			<lne id="2283" begin="11" end="11"/>
+			<lne id="2302" begin="7" end="7"/>
+			<lne id="2303" begin="5" end="9"/>
+			<lne id="2304" begin="11" end="11"/>
+			<lne id="2305" begin="11" end="11"/>
+			<lne id="2306" begin="11" end="11"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="2" name="2284" begin="3" end="11"/>
+			<lve slot="2" name="2307" begin="3" end="11"/>
 			<lve slot="0" name="103" begin="0" end="11"/>
-			<lve slot="1" name="826" begin="0" end="11"/>
+			<lve slot="1" name="855" begin="0" end="11"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2285">
+	<operation name="2308">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 			<parameter name="114" type="4"/>
 		</parameters>
 		<code>
-			<push arg="2286"/>
+			<push arg="2309"/>
 			<push arg="50"/>
 			<new/>
 			<store arg="200"/>
@@ -10140,105 +10273,105 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2287"/>
+			<set arg="2310"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
 			<call arg="115"/>
-			<set arg="2288"/>
-			<pop/>
-			<load arg="200"/>
-		</code>
-		<linenumbertable>
-			<lne id="2289" begin="7" end="7"/>
-			<lne id="2290" begin="5" end="9"/>
-			<lne id="2291" begin="12" end="12"/>
-			<lne id="2292" begin="10" end="14"/>
-			<lne id="2293" begin="16" end="16"/>
-			<lne id="2294" begin="16" end="16"/>
-			<lne id="2295" begin="16" end="16"/>
-		</linenumbertable>
-		<localvariabletable>
-			<lve slot="3" name="2296" begin="3" end="16"/>
-			<lve slot="0" name="103" begin="0" end="16"/>
-			<lve slot="1" name="2297" begin="0" end="16"/>
-			<lve slot="2" name="2298" begin="0" end="16"/>
-		</localvariabletable>
-	</operation>
-	<operation name="2299">
-		<context type="24"/>
-		<parameters>
-			<parameter name="105" type="4"/>
-			<parameter name="114" type="4"/>
-		</parameters>
-		<code>
-			<push arg="2300"/>
-			<push arg="50"/>
-			<new/>
-			<store arg="200"/>
-			<load arg="200"/>
-			<dup/>
-			<getasm/>
-			<load arg="105"/>
-			<call arg="115"/>
-			<set arg="2287"/>
-			<dup/>
-			<getasm/>
-			<load arg="114"/>
-			<call arg="115"/>
-			<set arg="2288"/>
-			<pop/>
-			<load arg="200"/>
-		</code>
-		<linenumbertable>
-			<lne id="2301" begin="7" end="7"/>
-			<lne id="2302" begin="5" end="9"/>
-			<lne id="2303" begin="12" end="12"/>
-			<lne id="2304" begin="10" end="14"/>
-			<lne id="2305" begin="16" end="16"/>
-			<lne id="2306" begin="16" end="16"/>
-			<lne id="2307" begin="16" end="16"/>
-		</linenumbertable>
-		<localvariabletable>
-			<lve slot="3" name="2308" begin="3" end="16"/>
-			<lve slot="0" name="103" begin="0" end="16"/>
-			<lve slot="1" name="2297" begin="0" end="16"/>
-			<lve slot="2" name="2298" begin="0" end="16"/>
-		</localvariabletable>
-	</operation>
-	<operation name="2309">
-		<context type="24"/>
-		<parameters>
-			<parameter name="105" type="4"/>
-		</parameters>
-		<code>
-			<push arg="2310"/>
-			<push arg="50"/>
-			<new/>
-			<store arg="114"/>
-			<load arg="114"/>
-			<dup/>
-			<getasm/>
-			<load arg="105"/>
-			<call arg="115"/>
 			<set arg="2311"/>
 			<pop/>
-			<load arg="114"/>
+			<load arg="200"/>
 		</code>
 		<linenumbertable>
 			<lne id="2312" begin="7" end="7"/>
 			<lne id="2313" begin="5" end="9"/>
-			<lne id="2314" begin="11" end="11"/>
-			<lne id="2315" begin="11" end="11"/>
-			<lne id="2316" begin="11" end="11"/>
+			<lne id="2314" begin="12" end="12"/>
+			<lne id="2315" begin="10" end="14"/>
+			<lne id="2316" begin="16" end="16"/>
+			<lne id="2317" begin="16" end="16"/>
+			<lne id="2318" begin="16" end="16"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="2" name="2317" begin="3" end="11"/>
+			<lve slot="3" name="2319" begin="3" end="16"/>
+			<lve slot="0" name="103" begin="0" end="16"/>
+			<lve slot="1" name="2320" begin="0" end="16"/>
+			<lve slot="2" name="2321" begin="0" end="16"/>
+		</localvariabletable>
+	</operation>
+	<operation name="2322">
+		<context type="24"/>
+		<parameters>
+			<parameter name="105" type="4"/>
+			<parameter name="114" type="4"/>
+		</parameters>
+		<code>
+			<push arg="2323"/>
+			<push arg="50"/>
+			<new/>
+			<store arg="200"/>
+			<load arg="200"/>
+			<dup/>
+			<getasm/>
+			<load arg="105"/>
+			<call arg="115"/>
+			<set arg="2310"/>
+			<dup/>
+			<getasm/>
+			<load arg="114"/>
+			<call arg="115"/>
+			<set arg="2311"/>
+			<pop/>
+			<load arg="200"/>
+		</code>
+		<linenumbertable>
+			<lne id="2324" begin="7" end="7"/>
+			<lne id="2325" begin="5" end="9"/>
+			<lne id="2326" begin="12" end="12"/>
+			<lne id="2327" begin="10" end="14"/>
+			<lne id="2328" begin="16" end="16"/>
+			<lne id="2329" begin="16" end="16"/>
+			<lne id="2330" begin="16" end="16"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="3" name="2331" begin="3" end="16"/>
+			<lve slot="0" name="103" begin="0" end="16"/>
+			<lve slot="1" name="2320" begin="0" end="16"/>
+			<lve slot="2" name="2321" begin="0" end="16"/>
+		</localvariabletable>
+	</operation>
+	<operation name="2332">
+		<context type="24"/>
+		<parameters>
+			<parameter name="105" type="4"/>
+		</parameters>
+		<code>
+			<push arg="2333"/>
+			<push arg="50"/>
+			<new/>
+			<store arg="114"/>
+			<load arg="114"/>
+			<dup/>
+			<getasm/>
+			<load arg="105"/>
+			<call arg="115"/>
+			<set arg="2334"/>
+			<pop/>
+			<load arg="114"/>
+		</code>
+		<linenumbertable>
+			<lne id="2335" begin="7" end="7"/>
+			<lne id="2336" begin="5" end="9"/>
+			<lne id="2337" begin="11" end="11"/>
+			<lne id="2338" begin="11" end="11"/>
+			<lne id="2339" begin="11" end="11"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="2" name="2340" begin="3" end="11"/>
 			<lve slot="0" name="103" begin="0" end="11"/>
 			<lve slot="1" name="118" begin="0" end="11"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2318">
+	<operation name="2341">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -10257,18 +10390,18 @@
 			<load arg="105"/>
 			<store arg="207"/>
 			<load arg="105"/>
-			<call arg="1097"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="145"/>
-			<if arg="1736"/>
+			<if arg="1760"/>
 			<load arg="207"/>
 			<call arg="141"/>
 			<store arg="114"/>
 			<load arg="207"/>
 			<pushi arg="114"/>
 			<load arg="207"/>
-			<call arg="1097"/>
-			<call arg="2319"/>
+			<call arg="535"/>
+			<call arg="2342"/>
 			<store arg="207"/>
 			<load arg="207"/>
 			<call arg="141"/>
@@ -10276,13 +10409,13 @@
 			<load arg="207"/>
 			<pushi arg="114"/>
 			<load arg="207"/>
-			<call arg="1097"/>
-			<call arg="2319"/>
+			<call arg="535"/>
+			<call arg="2342"/>
 			<store arg="207"/>
 			<getasm/>
 			<load arg="114"/>
 			<load arg="200"/>
-			<call arg="2320"/>
+			<call arg="2343"/>
 			<store arg="114"/>
 			<load arg="207"/>
 			<iterate/>
@@ -10290,75 +10423,75 @@
 			<getasm/>
 			<load arg="114"/>
 			<load arg="210"/>
-			<call arg="2320"/>
+			<call arg="2343"/>
 			<store arg="200"/>
 			<load arg="200"/>
 			<store arg="114"/>
 			<enditerate/>
-			<goto arg="2321"/>
+			<goto arg="2344"/>
 			<load arg="105"/>
 			<call arg="141"/>
 			<store arg="114"/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2322" begin="0" end="3"/>
-			<lne id="2323" begin="5" end="8"/>
-			<lne id="2324" begin="10" end="10"/>
-			<lne id="2325" begin="12" end="12"/>
-			<lne id="2326" begin="12" end="13"/>
-			<lne id="2327" begin="14" end="14"/>
-			<lne id="2328" begin="12" end="15"/>
-			<lne id="2329" begin="17" end="17"/>
-			<lne id="2330" begin="17" end="18"/>
-			<lne id="2331" begin="17" end="19"/>
-			<lne id="2332" begin="20" end="20"/>
-			<lne id="2333" begin="21" end="21"/>
-			<lne id="2334" begin="22" end="22"/>
-			<lne id="2335" begin="22" end="23"/>
-			<lne id="2336" begin="20" end="24"/>
-			<lne id="2337" begin="20" end="25"/>
-			<lne id="2338" begin="26" end="26"/>
-			<lne id="2339" begin="26" end="27"/>
-			<lne id="2340" begin="26" end="28"/>
-			<lne id="2341" begin="29" end="29"/>
-			<lne id="2342" begin="30" end="30"/>
-			<lne id="2343" begin="31" end="31"/>
-			<lne id="2344" begin="31" end="32"/>
-			<lne id="2345" begin="29" end="33"/>
-			<lne id="2346" begin="29" end="34"/>
-			<lne id="2347" begin="35" end="35"/>
-			<lne id="2348" begin="36" end="36"/>
-			<lne id="2349" begin="37" end="37"/>
-			<lne id="2350" begin="35" end="38"/>
-			<lne id="2351" begin="35" end="39"/>
-			<lne id="2352" begin="40" end="40"/>
-			<lne id="2353" begin="43" end="43"/>
-			<lne id="2354" begin="44" end="44"/>
-			<lne id="2355" begin="45" end="45"/>
-			<lne id="2356" begin="43" end="46"/>
-			<lne id="2357" begin="43" end="47"/>
-			<lne id="2358" begin="48" end="48"/>
-			<lne id="2359" begin="48" end="49"/>
-			<lne id="2360" begin="40" end="50"/>
-			<lne id="2361" begin="52" end="52"/>
-			<lne id="2362" begin="52" end="53"/>
-			<lne id="2363" begin="52" end="54"/>
-			<lne id="2364" begin="12" end="54"/>
-			<lne id="2365" begin="55" end="55"/>
-			<lne id="2366" begin="55" end="55"/>
-			<lne id="2367" begin="12" end="55"/>
+			<lne id="2345" begin="0" end="3"/>
+			<lne id="2346" begin="5" end="8"/>
+			<lne id="2347" begin="10" end="10"/>
+			<lne id="2348" begin="12" end="12"/>
+			<lne id="2349" begin="12" end="13"/>
+			<lne id="2350" begin="14" end="14"/>
+			<lne id="2351" begin="12" end="15"/>
+			<lne id="2352" begin="17" end="17"/>
+			<lne id="2353" begin="17" end="18"/>
+			<lne id="2354" begin="17" end="19"/>
+			<lne id="2355" begin="20" end="20"/>
+			<lne id="2356" begin="21" end="21"/>
+			<lne id="2357" begin="22" end="22"/>
+			<lne id="2358" begin="22" end="23"/>
+			<lne id="2359" begin="20" end="24"/>
+			<lne id="2360" begin="20" end="25"/>
+			<lne id="2361" begin="26" end="26"/>
+			<lne id="2362" begin="26" end="27"/>
+			<lne id="2363" begin="26" end="28"/>
+			<lne id="2364" begin="29" end="29"/>
+			<lne id="2365" begin="30" end="30"/>
+			<lne id="2366" begin="31" end="31"/>
+			<lne id="2367" begin="31" end="32"/>
+			<lne id="2368" begin="29" end="33"/>
+			<lne id="2369" begin="29" end="34"/>
+			<lne id="2370" begin="35" end="35"/>
+			<lne id="2371" begin="36" end="36"/>
+			<lne id="2372" begin="37" end="37"/>
+			<lne id="2373" begin="35" end="38"/>
+			<lne id="2374" begin="35" end="39"/>
+			<lne id="2375" begin="40" end="40"/>
+			<lne id="2376" begin="43" end="43"/>
+			<lne id="2377" begin="44" end="44"/>
+			<lne id="2378" begin="45" end="45"/>
+			<lne id="2379" begin="43" end="46"/>
+			<lne id="2380" begin="43" end="47"/>
+			<lne id="2381" begin="48" end="48"/>
+			<lne id="2382" begin="48" end="49"/>
+			<lne id="2383" begin="40" end="50"/>
+			<lne id="2384" begin="52" end="52"/>
+			<lne id="2385" begin="52" end="53"/>
+			<lne id="2386" begin="52" end="54"/>
+			<lne id="2387" begin="12" end="54"/>
+			<lne id="2388" begin="55" end="55"/>
+			<lne id="2389" begin="55" end="55"/>
+			<lne id="2390" begin="12" end="55"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="5" name="1088" begin="42" end="49"/>
-			<lve slot="2" name="2368" begin="4" end="55"/>
-			<lve slot="3" name="2369" begin="9" end="55"/>
-			<lve slot="4" name="2370" begin="11" end="55"/>
+			<lve slot="5" name="1114" begin="42" end="49"/>
+			<lve slot="2" name="2391" begin="4" end="55"/>
+			<lve slot="3" name="2392" begin="9" end="55"/>
+			<lve slot="4" name="2393" begin="11" end="55"/>
 			<lve slot="0" name="103" begin="0" end="55"/>
-			<lve slot="1" name="2371" begin="0" end="55"/>
+			<lve slot="1" name="2394" begin="0" end="55"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2372">
+	<operation name="2395">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -10377,18 +10510,18 @@
 			<load arg="105"/>
 			<store arg="207"/>
 			<load arg="105"/>
-			<call arg="1097"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="145"/>
-			<if arg="1736"/>
+			<if arg="1760"/>
 			<load arg="207"/>
 			<call arg="141"/>
 			<store arg="114"/>
 			<load arg="207"/>
 			<pushi arg="114"/>
 			<load arg="207"/>
-			<call arg="1097"/>
-			<call arg="2319"/>
+			<call arg="535"/>
+			<call arg="2342"/>
 			<store arg="207"/>
 			<load arg="207"/>
 			<call arg="141"/>
@@ -10396,13 +10529,13 @@
 			<load arg="207"/>
 			<pushi arg="114"/>
 			<load arg="207"/>
-			<call arg="1097"/>
-			<call arg="2319"/>
+			<call arg="535"/>
+			<call arg="2342"/>
 			<store arg="207"/>
 			<getasm/>
 			<load arg="114"/>
 			<load arg="200"/>
-			<call arg="2373"/>
+			<call arg="2396"/>
 			<store arg="114"/>
 			<load arg="207"/>
 			<iterate/>
@@ -10410,81 +10543,81 @@
 			<getasm/>
 			<load arg="114"/>
 			<load arg="210"/>
-			<call arg="2373"/>
+			<call arg="2396"/>
 			<store arg="200"/>
 			<load arg="200"/>
 			<store arg="114"/>
 			<enditerate/>
-			<goto arg="2321"/>
+			<goto arg="2344"/>
 			<load arg="105"/>
 			<call arg="141"/>
 			<store arg="114"/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2374" begin="0" end="3"/>
-			<lne id="2375" begin="5" end="8"/>
-			<lne id="2376" begin="10" end="10"/>
-			<lne id="2377" begin="12" end="12"/>
-			<lne id="2378" begin="12" end="13"/>
-			<lne id="2379" begin="14" end="14"/>
-			<lne id="2380" begin="12" end="15"/>
-			<lne id="2381" begin="17" end="17"/>
-			<lne id="2382" begin="17" end="18"/>
-			<lne id="2383" begin="17" end="19"/>
-			<lne id="2384" begin="20" end="20"/>
-			<lne id="2385" begin="21" end="21"/>
-			<lne id="2386" begin="22" end="22"/>
-			<lne id="2387" begin="22" end="23"/>
-			<lne id="2388" begin="20" end="24"/>
-			<lne id="2389" begin="20" end="25"/>
-			<lne id="2390" begin="26" end="26"/>
-			<lne id="2391" begin="26" end="27"/>
-			<lne id="2392" begin="26" end="28"/>
-			<lne id="2393" begin="29" end="29"/>
-			<lne id="2394" begin="30" end="30"/>
-			<lne id="2395" begin="31" end="31"/>
-			<lne id="2396" begin="31" end="32"/>
-			<lne id="2397" begin="29" end="33"/>
-			<lne id="2398" begin="29" end="34"/>
-			<lne id="2399" begin="35" end="35"/>
-			<lne id="2400" begin="36" end="36"/>
-			<lne id="2401" begin="37" end="37"/>
-			<lne id="2402" begin="35" end="38"/>
-			<lne id="2403" begin="35" end="39"/>
-			<lne id="2404" begin="40" end="40"/>
-			<lne id="2405" begin="43" end="43"/>
-			<lne id="2406" begin="44" end="44"/>
-			<lne id="2407" begin="45" end="45"/>
-			<lne id="2408" begin="43" end="46"/>
-			<lne id="2409" begin="43" end="47"/>
-			<lne id="2410" begin="48" end="48"/>
-			<lne id="2411" begin="48" end="49"/>
-			<lne id="2412" begin="40" end="50"/>
-			<lne id="2413" begin="52" end="52"/>
-			<lne id="2414" begin="52" end="53"/>
-			<lne id="2415" begin="52" end="54"/>
-			<lne id="2416" begin="12" end="54"/>
-			<lne id="2417" begin="55" end="55"/>
-			<lne id="2418" begin="55" end="55"/>
-			<lne id="2419" begin="12" end="55"/>
+			<lne id="2397" begin="0" end="3"/>
+			<lne id="2398" begin="5" end="8"/>
+			<lne id="2399" begin="10" end="10"/>
+			<lne id="2400" begin="12" end="12"/>
+			<lne id="2401" begin="12" end="13"/>
+			<lne id="2402" begin="14" end="14"/>
+			<lne id="2403" begin="12" end="15"/>
+			<lne id="2404" begin="17" end="17"/>
+			<lne id="2405" begin="17" end="18"/>
+			<lne id="2406" begin="17" end="19"/>
+			<lne id="2407" begin="20" end="20"/>
+			<lne id="2408" begin="21" end="21"/>
+			<lne id="2409" begin="22" end="22"/>
+			<lne id="2410" begin="22" end="23"/>
+			<lne id="2411" begin="20" end="24"/>
+			<lne id="2412" begin="20" end="25"/>
+			<lne id="2413" begin="26" end="26"/>
+			<lne id="2414" begin="26" end="27"/>
+			<lne id="2415" begin="26" end="28"/>
+			<lne id="2416" begin="29" end="29"/>
+			<lne id="2417" begin="30" end="30"/>
+			<lne id="2418" begin="31" end="31"/>
+			<lne id="2419" begin="31" end="32"/>
+			<lne id="2420" begin="29" end="33"/>
+			<lne id="2421" begin="29" end="34"/>
+			<lne id="2422" begin="35" end="35"/>
+			<lne id="2423" begin="36" end="36"/>
+			<lne id="2424" begin="37" end="37"/>
+			<lne id="2425" begin="35" end="38"/>
+			<lne id="2426" begin="35" end="39"/>
+			<lne id="2427" begin="40" end="40"/>
+			<lne id="2428" begin="43" end="43"/>
+			<lne id="2429" begin="44" end="44"/>
+			<lne id="2430" begin="45" end="45"/>
+			<lne id="2431" begin="43" end="46"/>
+			<lne id="2432" begin="43" end="47"/>
+			<lne id="2433" begin="48" end="48"/>
+			<lne id="2434" begin="48" end="49"/>
+			<lne id="2435" begin="40" end="50"/>
+			<lne id="2436" begin="52" end="52"/>
+			<lne id="2437" begin="52" end="53"/>
+			<lne id="2438" begin="52" end="54"/>
+			<lne id="2439" begin="12" end="54"/>
+			<lne id="2440" begin="55" end="55"/>
+			<lne id="2441" begin="55" end="55"/>
+			<lne id="2442" begin="12" end="55"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="5" name="1088" begin="42" end="49"/>
-			<lve slot="2" name="2368" begin="4" end="55"/>
-			<lve slot="3" name="2369" begin="9" end="55"/>
-			<lve slot="4" name="2370" begin="11" end="55"/>
+			<lve slot="5" name="1114" begin="42" end="49"/>
+			<lve slot="2" name="2391" begin="4" end="55"/>
+			<lve slot="3" name="2392" begin="9" end="55"/>
+			<lve slot="4" name="2393" begin="11" end="55"/>
 			<lve slot="0" name="103" begin="0" end="55"/>
-			<lve slot="1" name="2371" begin="0" end="55"/>
+			<lve slot="1" name="2394" begin="0" end="55"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2420">
+	<operation name="2443">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 		</parameters>
 		<code>
-			<push arg="2421"/>
+			<push arg="2444"/>
 			<push arg="50"/>
 			<new/>
 			<store arg="114"/>
@@ -10498,19 +10631,19 @@
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2422" begin="7" end="7"/>
-			<lne id="2423" begin="5" end="9"/>
-			<lne id="2424" begin="11" end="11"/>
-			<lne id="2425" begin="11" end="11"/>
-			<lne id="2426" begin="11" end="11"/>
+			<lne id="2445" begin="7" end="7"/>
+			<lne id="2446" begin="5" end="9"/>
+			<lne id="2447" begin="11" end="11"/>
+			<lne id="2448" begin="11" end="11"/>
+			<lne id="2449" begin="11" end="11"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="2" name="2427" begin="3" end="11"/>
+			<lve slot="2" name="2450" begin="3" end="11"/>
 			<lve slot="0" name="103" begin="0" end="11"/>
 			<lve slot="1" name="118" begin="0" end="11"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2428">
+	<operation name="2451">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -10534,32 +10667,32 @@
 			<load arg="105"/>
 			<call arg="493"/>
 			<call arg="217"/>
-			<if arg="1148"/>
-			<goto arg="2429"/>
+			<if arg="1172"/>
+			<goto arg="2452"/>
 			<load arg="105"/>
-			<push arg="2430"/>
-			<call arg="717"/>
+			<push arg="2453"/>
+			<call arg="746"/>
 			<store arg="207"/>
 			<load arg="207"/>
-			<call arg="1097"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
-			<call arg="1098"/>
-			<if arg="2431"/>
+			<call arg="536"/>
+			<if arg="2454"/>
 			<load arg="105"/>
-			<push arg="2432"/>
-			<call arg="717"/>
+			<push arg="2455"/>
+			<call arg="746"/>
 			<store arg="207"/>
 			<load arg="207"/>
-			<call arg="1097"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
-			<call arg="1098"/>
-			<if arg="1735"/>
+			<call arg="536"/>
+			<if arg="1759"/>
 			<getasm/>
 			<load arg="207"/>
 			<call arg="141"/>
-			<call arg="522"/>
+			<call arg="527"/>
 			<store arg="210"/>
-			<goto arg="2433"/>
+			<goto arg="2456"/>
 			<getasm/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -10580,10 +10713,10 @@
 			<load arg="495"/>
 			<get arg="51"/>
 			<load arg="213"/>
-			<call arg="715"/>
+			<call arg="534"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="2434"/>
+			<if arg="2457"/>
 			<load arg="495"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -10594,12 +10727,12 @@
 			<store arg="213"/>
 			<getasm/>
 			<load arg="213"/>
-			<call arg="522"/>
+			<call arg="527"/>
 			<call arg="36"/>
 			<enditerate/>
-			<call arg="1102"/>
+			<call arg="1126"/>
 			<store arg="210"/>
-			<goto arg="2429"/>
+			<goto arg="2452"/>
 			<getasm/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -10620,10 +10753,10 @@
 			<load arg="495"/>
 			<get arg="51"/>
 			<load arg="213"/>
-			<call arg="715"/>
+			<call arg="534"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="2435"/>
+			<if arg="2458"/>
 			<load arg="495"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -10635,103 +10768,103 @@
 			<store arg="213"/>
 			<getasm/>
 			<load arg="213"/>
-			<call arg="522"/>
+			<call arg="527"/>
 			<call arg="36"/>
 			<enditerate/>
-			<call arg="1153"/>
+			<call arg="1177"/>
 			<store arg="210"/>
 			<load arg="210"/>
 		</code>
 		<linenumbertable>
-			<lne id="2436" begin="0" end="0"/>
-			<lne id="2437" begin="1" end="1"/>
-			<lne id="2438" begin="0" end="2"/>
-			<lne id="2439" begin="4" end="7"/>
-			<lne id="2440" begin="9" end="12"/>
-			<lne id="2441" begin="14" end="14"/>
-			<lne id="2442" begin="14" end="15"/>
-			<lne id="2443" begin="14" end="16"/>
-			<lne id="2444" begin="19" end="19"/>
-			<lne id="2445" begin="20" end="20"/>
-			<lne id="2446" begin="19" end="21"/>
-			<lne id="2447" begin="19" end="22"/>
-			<lne id="2448" begin="23" end="23"/>
-			<lne id="2449" begin="23" end="24"/>
-			<lne id="2450" begin="25" end="25"/>
-			<lne id="2451" begin="23" end="26"/>
-			<lne id="2452" begin="28" end="28"/>
-			<lne id="2453" begin="29" end="29"/>
-			<lne id="2454" begin="28" end="30"/>
-			<lne id="2455" begin="28" end="31"/>
-			<lne id="2456" begin="32" end="32"/>
-			<lne id="2457" begin="32" end="33"/>
-			<lne id="2458" begin="34" end="34"/>
-			<lne id="2459" begin="32" end="35"/>
-			<lne id="2460" begin="37" end="37"/>
-			<lne id="2461" begin="38" end="38"/>
-			<lne id="2462" begin="38" end="39"/>
-			<lne id="2463" begin="37" end="40"/>
-			<lne id="2464" begin="37" end="41"/>
-			<lne id="2465" begin="43" end="43"/>
-			<lne id="2466" begin="50" end="50"/>
-			<lne id="2467" begin="56" end="56"/>
-			<lne id="2468" begin="56" end="57"/>
-			<lne id="2469" begin="60" end="60"/>
-			<lne id="2470" begin="60" end="61"/>
-			<lne id="2471" begin="62" end="62"/>
-			<lne id="2472" begin="62" end="63"/>
-			<lne id="2473" begin="60" end="64"/>
-			<lne id="2474" begin="53" end="69"/>
-			<lne id="2475" begin="47" end="71"/>
-			<lne id="2476" begin="47" end="72"/>
-			<lne id="2477" begin="75" end="75"/>
-			<lne id="2478" begin="76" end="76"/>
-			<lne id="2479" begin="75" end="77"/>
-			<lne id="2480" begin="44" end="79"/>
-			<lne id="2481" begin="43" end="80"/>
-			<lne id="2482" begin="43" end="81"/>
-			<lne id="2483" begin="32" end="81"/>
-			<lne id="2484" begin="83" end="83"/>
-			<lne id="2485" begin="90" end="90"/>
-			<lne id="2486" begin="96" end="96"/>
-			<lne id="2487" begin="96" end="97"/>
-			<lne id="2488" begin="100" end="100"/>
-			<lne id="2489" begin="100" end="101"/>
-			<lne id="2490" begin="102" end="102"/>
-			<lne id="2491" begin="102" end="103"/>
-			<lne id="2492" begin="100" end="104"/>
-			<lne id="2493" begin="93" end="109"/>
-			<lne id="2494" begin="93" end="110"/>
-			<lne id="2495" begin="87" end="112"/>
-			<lne id="2496" begin="87" end="113"/>
-			<lne id="2497" begin="116" end="116"/>
-			<lne id="2498" begin="117" end="117"/>
-			<lne id="2499" begin="116" end="118"/>
-			<lne id="2500" begin="84" end="120"/>
-			<lne id="2501" begin="83" end="121"/>
-			<lne id="2502" begin="83" end="122"/>
-			<lne id="2503" begin="23" end="122"/>
-			<lne id="2504" begin="14" end="122"/>
-			<lne id="2505" begin="123" end="123"/>
-			<lne id="2506" begin="123" end="123"/>
-			<lne id="2507" begin="14" end="123"/>
+			<lne id="2459" begin="0" end="0"/>
+			<lne id="2460" begin="1" end="1"/>
+			<lne id="2461" begin="0" end="2"/>
+			<lne id="2462" begin="4" end="7"/>
+			<lne id="2463" begin="9" end="12"/>
+			<lne id="2464" begin="14" end="14"/>
+			<lne id="2465" begin="14" end="15"/>
+			<lne id="2466" begin="14" end="16"/>
+			<lne id="2467" begin="19" end="19"/>
+			<lne id="2468" begin="20" end="20"/>
+			<lne id="2469" begin="19" end="21"/>
+			<lne id="2470" begin="19" end="22"/>
+			<lne id="2471" begin="23" end="23"/>
+			<lne id="2472" begin="23" end="24"/>
+			<lne id="2473" begin="25" end="25"/>
+			<lne id="2474" begin="23" end="26"/>
+			<lne id="2475" begin="28" end="28"/>
+			<lne id="2476" begin="29" end="29"/>
+			<lne id="2477" begin="28" end="30"/>
+			<lne id="2478" begin="28" end="31"/>
+			<lne id="2479" begin="32" end="32"/>
+			<lne id="2480" begin="32" end="33"/>
+			<lne id="2481" begin="34" end="34"/>
+			<lne id="2482" begin="32" end="35"/>
+			<lne id="2483" begin="37" end="37"/>
+			<lne id="2484" begin="38" end="38"/>
+			<lne id="2485" begin="38" end="39"/>
+			<lne id="2486" begin="37" end="40"/>
+			<lne id="2487" begin="37" end="41"/>
+			<lne id="2488" begin="43" end="43"/>
+			<lne id="2489" begin="50" end="50"/>
+			<lne id="2490" begin="56" end="56"/>
+			<lne id="2491" begin="56" end="57"/>
+			<lne id="2492" begin="60" end="60"/>
+			<lne id="2493" begin="60" end="61"/>
+			<lne id="2494" begin="62" end="62"/>
+			<lne id="2495" begin="62" end="63"/>
+			<lne id="2496" begin="60" end="64"/>
+			<lne id="2497" begin="53" end="69"/>
+			<lne id="2498" begin="47" end="71"/>
+			<lne id="2499" begin="47" end="72"/>
+			<lne id="2500" begin="75" end="75"/>
+			<lne id="2501" begin="76" end="76"/>
+			<lne id="2502" begin="75" end="77"/>
+			<lne id="2503" begin="44" end="79"/>
+			<lne id="2504" begin="43" end="80"/>
+			<lne id="2505" begin="43" end="81"/>
+			<lne id="2506" begin="32" end="81"/>
+			<lne id="2507" begin="83" end="83"/>
+			<lne id="2508" begin="90" end="90"/>
+			<lne id="2509" begin="96" end="96"/>
+			<lne id="2510" begin="96" end="97"/>
+			<lne id="2511" begin="100" end="100"/>
+			<lne id="2512" begin="100" end="101"/>
+			<lne id="2513" begin="102" end="102"/>
+			<lne id="2514" begin="102" end="103"/>
+			<lne id="2515" begin="100" end="104"/>
+			<lne id="2516" begin="93" end="109"/>
+			<lne id="2517" begin="93" end="110"/>
+			<lne id="2518" begin="87" end="112"/>
+			<lne id="2519" begin="87" end="113"/>
+			<lne id="2520" begin="116" end="116"/>
+			<lne id="2521" begin="117" end="117"/>
+			<lne id="2522" begin="116" end="118"/>
+			<lne id="2523" begin="84" end="120"/>
+			<lne id="2524" begin="83" end="121"/>
+			<lne id="2525" begin="83" end="122"/>
+			<lne id="2526" begin="23" end="122"/>
+			<lne id="2527" begin="14" end="122"/>
+			<lne id="2528" begin="123" end="123"/>
+			<lne id="2529" begin="123" end="123"/>
+			<lne id="2530" begin="14" end="123"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="7" name="1088" begin="59" end="68"/>
+			<lve slot="7" name="1114" begin="59" end="68"/>
 			<lve slot="6" name="208" begin="52" end="70"/>
-			<lve slot="6" name="1088" begin="74" end="78"/>
-			<lve slot="7" name="2508" begin="99" end="108"/>
-			<lve slot="6" name="1088" begin="92" end="111"/>
-			<lve slot="6" name="1088" begin="115" end="119"/>
+			<lve slot="6" name="1114" begin="74" end="78"/>
+			<lve slot="7" name="2531" begin="99" end="108"/>
+			<lve slot="6" name="1114" begin="92" end="111"/>
+			<lve slot="6" name="1114" begin="115" end="119"/>
 			<lve slot="3" name="485" begin="3" end="123"/>
-			<lve slot="4" name="2509" begin="8" end="123"/>
-			<lve slot="5" name="2510" begin="13" end="123"/>
+			<lve slot="4" name="2532" begin="8" end="123"/>
+			<lve slot="5" name="2533" begin="13" end="123"/>
 			<lve slot="0" name="103" begin="0" end="123"/>
-			<lve slot="1" name="2511" begin="0" end="123"/>
+			<lve slot="1" name="2534" begin="0" end="123"/>
 			<lve slot="2" name="484" begin="0" end="123"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2512">
+	<operation name="2535">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -10740,104 +10873,104 @@
 		<code>
 			<load arg="105"/>
 			<load arg="114"/>
-			<set arg="1154"/>
+			<set arg="1178"/>
 			<load arg="105"/>
-			<push arg="2286"/>
+			<push arg="2309"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="2513"/>
+			<call arg="881"/>
+			<if arg="2536"/>
 			<load arg="105"/>
-			<push arg="2300"/>
+			<push arg="2323"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="1615"/>
+			<call arg="881"/>
+			<if arg="1639"/>
 			<load arg="105"/>
-			<push arg="2310"/>
+			<push arg="2333"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="2514"/>
-			<goto arg="1614"/>
+			<call arg="881"/>
+			<if arg="2537"/>
+			<goto arg="1638"/>
+			<getasm/>
+			<load arg="105"/>
+			<get arg="2334"/>
+			<load arg="114"/>
+			<pcall arg="257"/>
+			<goto arg="1640"/>
+			<getasm/>
+			<load arg="105"/>
+			<get arg="2310"/>
+			<load arg="114"/>
+			<pcall arg="257"/>
 			<getasm/>
 			<load arg="105"/>
 			<get arg="2311"/>
 			<load arg="114"/>
 			<pcall arg="257"/>
-			<goto arg="1616"/>
+			<goto arg="2538"/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2287"/>
+			<get arg="2310"/>
 			<load arg="114"/>
 			<pcall arg="257"/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2288"/>
-			<load arg="114"/>
-			<pcall arg="257"/>
-			<goto arg="2515"/>
-			<getasm/>
-			<load arg="105"/>
-			<get arg="2287"/>
-			<load arg="114"/>
-			<pcall arg="257"/>
-			<getasm/>
-			<load arg="105"/>
-			<get arg="2288"/>
+			<get arg="2311"/>
 			<load arg="114"/>
 			<pcall arg="257"/>
 		</code>
 		<linenumbertable>
-			<lne id="2516" begin="0" end="0"/>
-			<lne id="2517" begin="1" end="1"/>
-			<lne id="2518" begin="0" end="2"/>
-			<lne id="2519" begin="3" end="3"/>
-			<lne id="2520" begin="4" end="6"/>
-			<lne id="2521" begin="3" end="7"/>
-			<lne id="2522" begin="9" end="9"/>
-			<lne id="2523" begin="10" end="12"/>
-			<lne id="2524" begin="9" end="13"/>
-			<lne id="2525" begin="15" end="15"/>
-			<lne id="2526" begin="16" end="18"/>
-			<lne id="2527" begin="15" end="19"/>
-			<lne id="2528" begin="22" end="22"/>
-			<lne id="2529" begin="23" end="23"/>
-			<lne id="2530" begin="23" end="24"/>
-			<lne id="2531" begin="25" end="25"/>
-			<lne id="2532" begin="22" end="26"/>
-			<lne id="2533" begin="15" end="26"/>
-			<lne id="2534" begin="28" end="28"/>
-			<lne id="2535" begin="29" end="29"/>
-			<lne id="2536" begin="29" end="30"/>
-			<lne id="2537" begin="31" end="31"/>
-			<lne id="2538" begin="28" end="32"/>
-			<lne id="2539" begin="33" end="33"/>
-			<lne id="2540" begin="34" end="34"/>
-			<lne id="2541" begin="34" end="35"/>
-			<lne id="2542" begin="36" end="36"/>
-			<lne id="2543" begin="33" end="37"/>
-			<lne id="2544" begin="9" end="37"/>
-			<lne id="2545" begin="39" end="39"/>
-			<lne id="2546" begin="40" end="40"/>
-			<lne id="2547" begin="40" end="41"/>
-			<lne id="2548" begin="42" end="42"/>
-			<lne id="2549" begin="39" end="43"/>
-			<lne id="2550" begin="44" end="44"/>
-			<lne id="2551" begin="45" end="45"/>
-			<lne id="2552" begin="45" end="46"/>
-			<lne id="2553" begin="47" end="47"/>
-			<lne id="2554" begin="44" end="48"/>
-			<lne id="2555" begin="3" end="48"/>
-			<lne id="2556" begin="0" end="48"/>
+			<lne id="2539" begin="0" end="0"/>
+			<lne id="2540" begin="1" end="1"/>
+			<lne id="2541" begin="0" end="2"/>
+			<lne id="2542" begin="3" end="3"/>
+			<lne id="2543" begin="4" end="6"/>
+			<lne id="2544" begin="3" end="7"/>
+			<lne id="2545" begin="9" end="9"/>
+			<lne id="2546" begin="10" end="12"/>
+			<lne id="2547" begin="9" end="13"/>
+			<lne id="2548" begin="15" end="15"/>
+			<lne id="2549" begin="16" end="18"/>
+			<lne id="2550" begin="15" end="19"/>
+			<lne id="2551" begin="22" end="22"/>
+			<lne id="2552" begin="23" end="23"/>
+			<lne id="2553" begin="23" end="24"/>
+			<lne id="2554" begin="25" end="25"/>
+			<lne id="2555" begin="22" end="26"/>
+			<lne id="2556" begin="15" end="26"/>
+			<lne id="2557" begin="28" end="28"/>
+			<lne id="2558" begin="29" end="29"/>
+			<lne id="2559" begin="29" end="30"/>
+			<lne id="2560" begin="31" end="31"/>
+			<lne id="2561" begin="28" end="32"/>
+			<lne id="2562" begin="33" end="33"/>
+			<lne id="2563" begin="34" end="34"/>
+			<lne id="2564" begin="34" end="35"/>
+			<lne id="2565" begin="36" end="36"/>
+			<lne id="2566" begin="33" end="37"/>
+			<lne id="2567" begin="9" end="37"/>
+			<lne id="2568" begin="39" end="39"/>
+			<lne id="2569" begin="40" end="40"/>
+			<lne id="2570" begin="40" end="41"/>
+			<lne id="2571" begin="42" end="42"/>
+			<lne id="2572" begin="39" end="43"/>
+			<lne id="2573" begin="44" end="44"/>
+			<lne id="2574" begin="45" end="45"/>
+			<lne id="2575" begin="45" end="46"/>
+			<lne id="2576" begin="47" end="47"/>
+			<lne id="2577" begin="44" end="48"/>
+			<lne id="2578" begin="3" end="48"/>
+			<lne id="2579" begin="0" end="48"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="48"/>
-			<lve slot="1" name="2557" begin="0" end="48"/>
+			<lve slot="1" name="2580" begin="0" end="48"/>
 			<lve slot="2" name="474" begin="0" end="48"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2558">
+	<operation name="2581">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -10846,21 +10979,21 @@
 		<code>
 			<load arg="105"/>
 			<load arg="114"/>
-			<set arg="2559"/>
+			<set arg="2582"/>
 		</code>
 		<linenumbertable>
-			<lne id="2560" begin="0" end="0"/>
-			<lne id="2561" begin="1" end="1"/>
-			<lne id="2562" begin="0" end="2"/>
-			<lne id="2563" begin="0" end="2"/>
+			<lne id="2583" begin="0" end="0"/>
+			<lne id="2584" begin="1" end="1"/>
+			<lne id="2585" begin="0" end="2"/>
+			<lne id="2586" begin="0" end="2"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="2"/>
-			<lve slot="1" name="2564" begin="0" end="2"/>
+			<lve slot="1" name="2587" begin="0" end="2"/>
 			<lve slot="2" name="475" begin="0" end="2"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2565">
+	<operation name="2588">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -10869,29 +11002,29 @@
 		<code>
 			<load arg="105"/>
 			<load arg="114"/>
-			<set arg="2559"/>
+			<set arg="2582"/>
 		</code>
 		<linenumbertable>
-			<lne id="2566" begin="0" end="0"/>
-			<lne id="2567" begin="1" end="1"/>
-			<lne id="2568" begin="0" end="2"/>
-			<lne id="2569" begin="0" end="2"/>
+			<lne id="2589" begin="0" end="0"/>
+			<lne id="2590" begin="1" end="1"/>
+			<lne id="2591" begin="0" end="2"/>
+			<lne id="2592" begin="0" end="2"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="2"/>
-			<lve slot="1" name="2564" begin="0" end="2"/>
+			<lve slot="1" name="2587" begin="0" end="2"/>
 			<lve slot="2" name="476" begin="0" end="2"/>
 		</localvariabletable>
 	</operation>
-	<operation name="664">
+	<operation name="694">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="2570"/>
+			<parameter name="105" type="2593"/>
 		</parameters>
 		<code>
 			<getasm/>
 			<get arg="1"/>
-			<push arg="664"/>
+			<push arg="694"/>
 			<load arg="105"/>
 			<call arg="190"/>
 			<dup/>
@@ -10899,38 +11032,38 @@
 			<if arg="191"/>
 			<load arg="105"/>
 			<call arg="111"/>
-			<goto arg="1149"/>
+			<goto arg="1173"/>
 			<getasm/>
 			<get arg="1"/>
 			<push arg="132"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="664"/>
+			<push arg="694"/>
 			<pcall arg="133"/>
 			<dup/>
 			<push arg="477"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2571"/>
-			<push arg="664"/>
+			<push arg="2594"/>
+			<push arg="694"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
 			<store arg="114"/>
 			<pcall arg="211"/>
 			<dup/>
-			<push arg="2572"/>
-			<push arg="666"/>
+			<push arg="2595"/>
+			<push arg="696"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
 			<store arg="200"/>
 			<pcall arg="211"/>
 			<dup/>
-			<push arg="2573"/>
-			<push arg="2574"/>
+			<push arg="2596"/>
+			<push arg="2597"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -10942,66 +11075,66 @@
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2575"/>
+			<get arg="2598"/>
 			<get arg="61"/>
 			<call arg="115"/>
 			<set arg="212"/>
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2576"/>
-			<call arg="1333"/>
+			<get arg="2599"/>
+			<call arg="1357"/>
 			<call arg="115"/>
-			<set arg="673"/>
+			<set arg="703"/>
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2577"/>
+			<get arg="2600"/>
 			<call arg="503"/>
 			<call arg="115"/>
-			<set arg="671"/>
+			<set arg="701"/>
 			<dup/>
 			<getasm/>
 			<load arg="200"/>
 			<call arg="115"/>
-			<set arg="674"/>
+			<set arg="704"/>
 			<pop/>
 			<load arg="200"/>
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2578"/>
-			<call arg="715"/>
-			<push arg="2579"/>
-			<call arg="2580"/>
-			<if arg="2581"/>
+			<get arg="2601"/>
+			<call arg="534"/>
+			<push arg="2602"/>
+			<call arg="2603"/>
+			<if arg="2604"/>
 			<load arg="105"/>
-			<get arg="2578"/>
-			<call arg="715"/>
-			<push arg="2582"/>
-			<call arg="2580"/>
-			<if arg="2583"/>
+			<get arg="2601"/>
+			<call arg="534"/>
+			<push arg="2605"/>
+			<call arg="2603"/>
+			<if arg="2606"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
-			<goto arg="728"/>
+			<goto arg="757"/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2578"/>
-			<call arg="2584"/>
-			<goto arg="1740"/>
+			<get arg="2601"/>
+			<call arg="2607"/>
+			<goto arg="1764"/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2578"/>
-			<call arg="2585"/>
+			<get arg="2601"/>
+			<call arg="2608"/>
 			<call arg="115"/>
-			<set arg="675"/>
+			<set arg="705"/>
 			<dup/>
 			<getasm/>
 			<load arg="207"/>
 			<call arg="115"/>
-			<set arg="678"/>
+			<set arg="708"/>
 			<pop/>
 			<load arg="207"/>
 			<pop/>
@@ -11025,12 +11158,12 @@
 			<iterate/>
 			<store arg="210"/>
 			<load arg="105"/>
-			<get arg="2057"/>
+			<get arg="2080"/>
 			<load arg="210"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<call arg="201"/>
 			<call arg="196"/>
-			<if arg="2587"/>
+			<if arg="2609"/>
 			<load arg="210"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -11039,7 +11172,7 @@
 			<load arg="210"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
+			<get arg="2610"/>
 			<call arg="36"/>
 			<enditerate/>
 			<iterate/>
@@ -11060,98 +11193,98 @@
 			<call arg="231"/>
 			<call arg="36"/>
 			<enditerate/>
-			<set arg="669"/>
+			<set arg="699"/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2589" begin="52" end="52"/>
-			<lne id="2590" begin="52" end="53"/>
-			<lne id="2591" begin="52" end="54"/>
-			<lne id="2592" begin="50" end="56"/>
-			<lne id="2593" begin="59" end="59"/>
-			<lne id="2594" begin="59" end="60"/>
-			<lne id="2595" begin="59" end="61"/>
-			<lne id="2596" begin="57" end="63"/>
-			<lne id="2597" begin="66" end="66"/>
-			<lne id="2598" begin="66" end="67"/>
-			<lne id="2599" begin="66" end="68"/>
-			<lne id="2600" begin="64" end="70"/>
-			<lne id="2601" begin="73" end="73"/>
-			<lne id="2602" begin="71" end="75"/>
-			<lne id="2603" begin="49" end="76"/>
-			<lne id="2604" begin="80" end="80"/>
-			<lne id="2605" begin="80" end="81"/>
-			<lne id="2606" begin="80" end="82"/>
-			<lne id="2607" begin="83" end="83"/>
-			<lne id="2608" begin="80" end="84"/>
-			<lne id="2609" begin="86" end="86"/>
-			<lne id="2610" begin="86" end="87"/>
-			<lne id="2611" begin="86" end="88"/>
-			<lne id="2612" begin="89" end="89"/>
-			<lne id="2613" begin="86" end="90"/>
-			<lne id="2614" begin="92" end="95"/>
-			<lne id="2615" begin="97" end="97"/>
-			<lne id="2616" begin="98" end="98"/>
-			<lne id="2617" begin="98" end="99"/>
-			<lne id="2618" begin="97" end="100"/>
-			<lne id="2619" begin="86" end="100"/>
-			<lne id="2620" begin="102" end="102"/>
-			<lne id="2621" begin="103" end="103"/>
-			<lne id="2622" begin="103" end="104"/>
-			<lne id="2623" begin="102" end="105"/>
-			<lne id="2624" begin="80" end="105"/>
-			<lne id="2625" begin="78" end="107"/>
-			<lne id="2626" begin="110" end="110"/>
-			<lne id="2627" begin="108" end="112"/>
-			<lne id="2628" begin="77" end="113"/>
-			<lne id="2629" begin="114" end="115"/>
-			<lne id="2630" begin="116" end="116"/>
-			<lne id="2631" begin="129" end="131"/>
-			<lne id="2632" begin="129" end="132"/>
-			<lne id="2633" begin="135" end="135"/>
-			<lne id="2634" begin="135" end="136"/>
-			<lne id="2635" begin="137" end="137"/>
-			<lne id="2636" begin="137" end="138"/>
-			<lne id="2637" begin="135" end="139"/>
-			<lne id="2638" begin="126" end="144"/>
-			<lne id="2639" begin="147" end="147"/>
-			<lne id="2640" begin="147" end="148"/>
-			<lne id="2641" begin="147" end="149"/>
-			<lne id="2642" begin="147" end="150"/>
-			<lne id="2643" begin="123" end="152"/>
-			<lne id="2644" begin="155" end="155"/>
-			<lne id="2645" begin="155" end="156"/>
-			<lne id="2646" begin="157" end="157"/>
-			<lne id="2647" begin="155" end="158"/>
-			<lne id="2648" begin="120" end="163"/>
-			<lne id="2649" begin="166" end="166"/>
-			<lne id="2650" begin="167" end="167"/>
-			<lne id="2651" begin="166" end="168"/>
-			<lne id="2652" begin="117" end="170"/>
-			<lne id="2653" begin="116" end="171"/>
-			<lne id="2654" begin="116" end="171"/>
+			<lne id="2611" begin="52" end="52"/>
+			<lne id="2612" begin="52" end="53"/>
+			<lne id="2613" begin="52" end="54"/>
+			<lne id="2614" begin="50" end="56"/>
+			<lne id="2615" begin="59" end="59"/>
+			<lne id="2616" begin="59" end="60"/>
+			<lne id="2617" begin="59" end="61"/>
+			<lne id="2618" begin="57" end="63"/>
+			<lne id="2619" begin="66" end="66"/>
+			<lne id="2620" begin="66" end="67"/>
+			<lne id="2621" begin="66" end="68"/>
+			<lne id="2622" begin="64" end="70"/>
+			<lne id="2623" begin="73" end="73"/>
+			<lne id="2624" begin="71" end="75"/>
+			<lne id="2625" begin="49" end="76"/>
+			<lne id="2626" begin="80" end="80"/>
+			<lne id="2627" begin="80" end="81"/>
+			<lne id="2628" begin="80" end="82"/>
+			<lne id="2629" begin="83" end="83"/>
+			<lne id="2630" begin="80" end="84"/>
+			<lne id="2631" begin="86" end="86"/>
+			<lne id="2632" begin="86" end="87"/>
+			<lne id="2633" begin="86" end="88"/>
+			<lne id="2634" begin="89" end="89"/>
+			<lne id="2635" begin="86" end="90"/>
+			<lne id="2636" begin="92" end="95"/>
+			<lne id="2637" begin="97" end="97"/>
+			<lne id="2638" begin="98" end="98"/>
+			<lne id="2639" begin="98" end="99"/>
+			<lne id="2640" begin="97" end="100"/>
+			<lne id="2641" begin="86" end="100"/>
+			<lne id="2642" begin="102" end="102"/>
+			<lne id="2643" begin="103" end="103"/>
+			<lne id="2644" begin="103" end="104"/>
+			<lne id="2645" begin="102" end="105"/>
+			<lne id="2646" begin="80" end="105"/>
+			<lne id="2647" begin="78" end="107"/>
+			<lne id="2648" begin="110" end="110"/>
+			<lne id="2649" begin="108" end="112"/>
+			<lne id="2650" begin="77" end="113"/>
+			<lne id="2651" begin="114" end="115"/>
+			<lne id="2652" begin="116" end="116"/>
+			<lne id="2653" begin="129" end="131"/>
+			<lne id="2654" begin="129" end="132"/>
+			<lne id="2655" begin="135" end="135"/>
+			<lne id="2656" begin="135" end="136"/>
+			<lne id="2657" begin="137" end="137"/>
+			<lne id="2658" begin="137" end="138"/>
+			<lne id="2659" begin="135" end="139"/>
+			<lne id="2660" begin="126" end="144"/>
+			<lne id="2661" begin="147" end="147"/>
+			<lne id="2662" begin="147" end="148"/>
+			<lne id="2663" begin="147" end="149"/>
+			<lne id="2664" begin="147" end="150"/>
+			<lne id="2665" begin="123" end="152"/>
+			<lne id="2666" begin="155" end="155"/>
+			<lne id="2667" begin="155" end="156"/>
+			<lne id="2668" begin="157" end="157"/>
+			<lne id="2669" begin="155" end="158"/>
+			<lne id="2670" begin="120" end="163"/>
+			<lne id="2671" begin="166" end="166"/>
+			<lne id="2672" begin="167" end="167"/>
+			<lne id="2673" begin="166" end="168"/>
+			<lne id="2674" begin="117" end="170"/>
+			<lne id="2675" begin="116" end="171"/>
+			<lne id="2676" begin="116" end="171"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="5" name="2056" begin="134" end="143"/>
-			<lve slot="5" name="2056" begin="146" end="151"/>
+			<lve slot="5" name="681" begin="134" end="143"/>
+			<lve slot="5" name="681" begin="146" end="151"/>
 			<lve slot="5" name="470" begin="154" end="162"/>
 			<lve slot="5" name="470" begin="165" end="169"/>
-			<lve slot="2" name="2571" begin="29" end="172"/>
-			<lve slot="3" name="2572" begin="37" end="172"/>
-			<lve slot="4" name="2573" begin="45" end="172"/>
+			<lve slot="2" name="2594" begin="29" end="172"/>
+			<lve slot="3" name="2595" begin="37" end="172"/>
+			<lve slot="4" name="2596" begin="45" end="172"/>
 			<lve slot="0" name="103" begin="0" end="172"/>
 			<lve slot="1" name="477" begin="0" end="172"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2655">
+	<operation name="2677">
 		<context type="24"/>
 		<parameters>
-			<parameter name="105" type="2656"/>
+			<parameter name="105" type="2678"/>
 		</parameters>
 		<code>
 			<getasm/>
 			<get arg="1"/>
-			<push arg="2655"/>
+			<push arg="2677"/>
 			<load arg="105"/>
 			<call arg="190"/>
 			<dup/>
@@ -11159,38 +11292,38 @@
 			<if arg="191"/>
 			<load arg="105"/>
 			<call arg="111"/>
-			<goto arg="2657"/>
+			<goto arg="2679"/>
 			<getasm/>
 			<get arg="1"/>
 			<push arg="132"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="2655"/>
+			<push arg="2677"/>
 			<pcall arg="133"/>
 			<dup/>
 			<push arg="477"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<dup/>
-			<push arg="2571"/>
-			<push arg="2658"/>
+			<push arg="2594"/>
+			<push arg="2680"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
 			<store arg="114"/>
 			<pcall arg="211"/>
 			<dup/>
-			<push arg="2572"/>
-			<push arg="666"/>
+			<push arg="2595"/>
+			<push arg="696"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
 			<store arg="200"/>
 			<pcall arg="211"/>
 			<dup/>
-			<push arg="2573"/>
-			<push arg="2574"/>
+			<push arg="2596"/>
+			<push arg="2597"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -11202,66 +11335,66 @@
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2575"/>
+			<get arg="2598"/>
 			<get arg="61"/>
 			<call arg="115"/>
 			<set arg="212"/>
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2576"/>
-			<call arg="1333"/>
+			<get arg="2599"/>
+			<call arg="1357"/>
 			<call arg="115"/>
-			<set arg="2659"/>
+			<set arg="2681"/>
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2577"/>
+			<get arg="2600"/>
 			<call arg="503"/>
 			<call arg="115"/>
-			<set arg="671"/>
+			<set arg="701"/>
 			<dup/>
 			<getasm/>
 			<load arg="200"/>
 			<call arg="115"/>
-			<set arg="674"/>
+			<set arg="704"/>
 			<pop/>
 			<load arg="200"/>
 			<dup/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2578"/>
-			<call arg="715"/>
-			<push arg="2579"/>
-			<call arg="2580"/>
-			<if arg="2581"/>
+			<get arg="2601"/>
+			<call arg="534"/>
+			<push arg="2602"/>
+			<call arg="2603"/>
+			<if arg="2604"/>
 			<load arg="105"/>
-			<get arg="2578"/>
-			<call arg="715"/>
-			<push arg="2582"/>
-			<call arg="2580"/>
-			<if arg="2583"/>
+			<get arg="2601"/>
+			<call arg="534"/>
+			<push arg="2605"/>
+			<call arg="2603"/>
+			<if arg="2606"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
-			<goto arg="728"/>
+			<goto arg="757"/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2578"/>
-			<call arg="2584"/>
-			<goto arg="1740"/>
+			<get arg="2601"/>
+			<call arg="2607"/>
+			<goto arg="1764"/>
 			<getasm/>
 			<load arg="105"/>
-			<get arg="2578"/>
-			<call arg="2585"/>
+			<get arg="2601"/>
+			<call arg="2608"/>
 			<call arg="115"/>
-			<set arg="675"/>
+			<set arg="705"/>
 			<dup/>
 			<getasm/>
 			<load arg="207"/>
 			<call arg="115"/>
-			<set arg="678"/>
+			<set arg="708"/>
 			<pop/>
 			<load arg="207"/>
 			<pop/>
@@ -11282,12 +11415,12 @@
 			<iterate/>
 			<store arg="210"/>
 			<load arg="105"/>
-			<get arg="2057"/>
+			<get arg="2080"/>
 			<load arg="210"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<call arg="201"/>
 			<call arg="196"/>
-			<if arg="2660"/>
+			<if arg="2682"/>
 			<load arg="210"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -11296,7 +11429,7 @@
 			<load arg="210"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
+			<get arg="2610"/>
 			<call arg="36"/>
 			<enditerate/>
 			<iterate/>
@@ -11306,90 +11439,90 @@
 			<call arg="231"/>
 			<call arg="36"/>
 			<enditerate/>
-			<set arg="669"/>
+			<set arg="699"/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2661" begin="52" end="52"/>
-			<lne id="2662" begin="52" end="53"/>
-			<lne id="2663" begin="52" end="54"/>
-			<lne id="2664" begin="50" end="56"/>
-			<lne id="2665" begin="59" end="59"/>
-			<lne id="2666" begin="59" end="60"/>
-			<lne id="2667" begin="59" end="61"/>
-			<lne id="2668" begin="57" end="63"/>
-			<lne id="2669" begin="66" end="66"/>
-			<lne id="2670" begin="66" end="67"/>
-			<lne id="2671" begin="66" end="68"/>
-			<lne id="2672" begin="64" end="70"/>
-			<lne id="2673" begin="73" end="73"/>
-			<lne id="2674" begin="71" end="75"/>
-			<lne id="2675" begin="49" end="76"/>
-			<lne id="2676" begin="80" end="80"/>
-			<lne id="2677" begin="80" end="81"/>
-			<lne id="2678" begin="80" end="82"/>
-			<lne id="2679" begin="83" end="83"/>
-			<lne id="2680" begin="80" end="84"/>
-			<lne id="2681" begin="86" end="86"/>
-			<lne id="2682" begin="86" end="87"/>
-			<lne id="2683" begin="86" end="88"/>
-			<lne id="2684" begin="89" end="89"/>
-			<lne id="2685" begin="86" end="90"/>
-			<lne id="2686" begin="92" end="95"/>
-			<lne id="2687" begin="97" end="97"/>
-			<lne id="2688" begin="98" end="98"/>
-			<lne id="2689" begin="98" end="99"/>
-			<lne id="2690" begin="97" end="100"/>
-			<lne id="2691" begin="86" end="100"/>
-			<lne id="2692" begin="102" end="102"/>
-			<lne id="2693" begin="103" end="103"/>
-			<lne id="2694" begin="103" end="104"/>
-			<lne id="2695" begin="102" end="105"/>
-			<lne id="2696" begin="80" end="105"/>
-			<lne id="2697" begin="78" end="107"/>
-			<lne id="2698" begin="110" end="110"/>
-			<lne id="2699" begin="108" end="112"/>
-			<lne id="2700" begin="77" end="113"/>
-			<lne id="2701" begin="114" end="115"/>
-			<lne id="2702" begin="116" end="116"/>
-			<lne id="2703" begin="126" end="128"/>
-			<lne id="2704" begin="126" end="129"/>
-			<lne id="2705" begin="132" end="132"/>
-			<lne id="2706" begin="132" end="133"/>
-			<lne id="2707" begin="134" end="134"/>
-			<lne id="2708" begin="134" end="135"/>
-			<lne id="2709" begin="132" end="136"/>
-			<lne id="2710" begin="123" end="141"/>
-			<lne id="2711" begin="144" end="144"/>
-			<lne id="2712" begin="144" end="145"/>
-			<lne id="2713" begin="144" end="146"/>
-			<lne id="2714" begin="144" end="147"/>
-			<lne id="2715" begin="120" end="149"/>
-			<lne id="2716" begin="152" end="152"/>
-			<lne id="2717" begin="153" end="153"/>
-			<lne id="2718" begin="152" end="154"/>
-			<lne id="2719" begin="117" end="156"/>
-			<lne id="2720" begin="116" end="157"/>
-			<lne id="2721" begin="116" end="157"/>
+			<lne id="2683" begin="52" end="52"/>
+			<lne id="2684" begin="52" end="53"/>
+			<lne id="2685" begin="52" end="54"/>
+			<lne id="2686" begin="50" end="56"/>
+			<lne id="2687" begin="59" end="59"/>
+			<lne id="2688" begin="59" end="60"/>
+			<lne id="2689" begin="59" end="61"/>
+			<lne id="2690" begin="57" end="63"/>
+			<lne id="2691" begin="66" end="66"/>
+			<lne id="2692" begin="66" end="67"/>
+			<lne id="2693" begin="66" end="68"/>
+			<lne id="2694" begin="64" end="70"/>
+			<lne id="2695" begin="73" end="73"/>
+			<lne id="2696" begin="71" end="75"/>
+			<lne id="2697" begin="49" end="76"/>
+			<lne id="2698" begin="80" end="80"/>
+			<lne id="2699" begin="80" end="81"/>
+			<lne id="2700" begin="80" end="82"/>
+			<lne id="2701" begin="83" end="83"/>
+			<lne id="2702" begin="80" end="84"/>
+			<lne id="2703" begin="86" end="86"/>
+			<lne id="2704" begin="86" end="87"/>
+			<lne id="2705" begin="86" end="88"/>
+			<lne id="2706" begin="89" end="89"/>
+			<lne id="2707" begin="86" end="90"/>
+			<lne id="2708" begin="92" end="95"/>
+			<lne id="2709" begin="97" end="97"/>
+			<lne id="2710" begin="98" end="98"/>
+			<lne id="2711" begin="98" end="99"/>
+			<lne id="2712" begin="97" end="100"/>
+			<lne id="2713" begin="86" end="100"/>
+			<lne id="2714" begin="102" end="102"/>
+			<lne id="2715" begin="103" end="103"/>
+			<lne id="2716" begin="103" end="104"/>
+			<lne id="2717" begin="102" end="105"/>
+			<lne id="2718" begin="80" end="105"/>
+			<lne id="2719" begin="78" end="107"/>
+			<lne id="2720" begin="110" end="110"/>
+			<lne id="2721" begin="108" end="112"/>
+			<lne id="2722" begin="77" end="113"/>
+			<lne id="2723" begin="114" end="115"/>
+			<lne id="2724" begin="116" end="116"/>
+			<lne id="2725" begin="126" end="128"/>
+			<lne id="2726" begin="126" end="129"/>
+			<lne id="2727" begin="132" end="132"/>
+			<lne id="2728" begin="132" end="133"/>
+			<lne id="2729" begin="134" end="134"/>
+			<lne id="2730" begin="134" end="135"/>
+			<lne id="2731" begin="132" end="136"/>
+			<lne id="2732" begin="123" end="141"/>
+			<lne id="2733" begin="144" end="144"/>
+			<lne id="2734" begin="144" end="145"/>
+			<lne id="2735" begin="144" end="146"/>
+			<lne id="2736" begin="144" end="147"/>
+			<lne id="2737" begin="120" end="149"/>
+			<lne id="2738" begin="152" end="152"/>
+			<lne id="2739" begin="153" end="153"/>
+			<lne id="2740" begin="152" end="154"/>
+			<lne id="2741" begin="117" end="156"/>
+			<lne id="2742" begin="116" end="157"/>
+			<lne id="2743" begin="116" end="157"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="5" name="2056" begin="131" end="140"/>
-			<lve slot="5" name="2056" begin="143" end="148"/>
+			<lve slot="5" name="681" begin="131" end="140"/>
+			<lve slot="5" name="681" begin="143" end="148"/>
 			<lve slot="5" name="470" begin="151" end="155"/>
-			<lve slot="2" name="2571" begin="29" end="158"/>
-			<lve slot="3" name="2572" begin="37" end="158"/>
-			<lve slot="4" name="2573" begin="45" end="158"/>
+			<lve slot="2" name="2594" begin="29" end="158"/>
+			<lve slot="3" name="2595" begin="37" end="158"/>
+			<lve slot="4" name="2596" begin="45" end="158"/>
 			<lve slot="0" name="103" begin="0" end="158"/>
 			<lve slot="1" name="477" begin="0" end="158"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2722">
+	<operation name="2744">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 		</parameters>
 		<code>
-			<push arg="2723"/>
+			<push arg="2745"/>
 			<push arg="50"/>
 			<new/>
 			<store arg="114"/>
@@ -11398,57 +11531,57 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2724"/>
+			<set arg="2746"/>
 			<pop/>
 			<getasm/>
-			<get arg="2725"/>
+			<get arg="2747"/>
 			<load arg="114"/>
-			<pcall arg="2066"/>
+			<pcall arg="2089"/>
 		</code>
 		<linenumbertable>
-			<lne id="2726" begin="7" end="7"/>
-			<lne id="2727" begin="5" end="9"/>
-			<lne id="2728" begin="11" end="11"/>
-			<lne id="2729" begin="11" end="12"/>
-			<lne id="2730" begin="13" end="13"/>
-			<lne id="2731" begin="11" end="14"/>
-			<lne id="2732" begin="11" end="14"/>
+			<lne id="2748" begin="7" end="7"/>
+			<lne id="2749" begin="5" end="9"/>
+			<lne id="2750" begin="11" end="11"/>
+			<lne id="2751" begin="11" end="12"/>
+			<lne id="2752" begin="13" end="13"/>
+			<lne id="2753" begin="11" end="14"/>
+			<lne id="2754" begin="11" end="14"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="2" name="2733" begin="3" end="14"/>
+			<lve slot="2" name="2755" begin="3" end="14"/>
 			<lve slot="0" name="103" begin="0" end="14"/>
-			<lve slot="1" name="517" begin="0" end="14"/>
+			<lve slot="1" name="522" begin="0" end="14"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2734">
+	<operation name="2756">
 		<context type="24"/>
 		<parameters>
 		</parameters>
 		<code>
-			<push arg="2735"/>
+			<push arg="2757"/>
 			<push arg="50"/>
 			<new/>
 			<store arg="105"/>
 			<load arg="105"/>
 			<pop/>
 			<getasm/>
-			<get arg="2736"/>
+			<get arg="2758"/>
 			<load arg="105"/>
-			<pcall arg="2066"/>
+			<pcall arg="2089"/>
 		</code>
 		<linenumbertable>
-			<lne id="2737" begin="6" end="6"/>
-			<lne id="2738" begin="6" end="7"/>
-			<lne id="2739" begin="8" end="8"/>
-			<lne id="2740" begin="6" end="9"/>
-			<lne id="2741" begin="6" end="9"/>
+			<lne id="2759" begin="6" end="6"/>
+			<lne id="2760" begin="6" end="7"/>
+			<lne id="2761" begin="8" end="8"/>
+			<lne id="2762" begin="6" end="9"/>
+			<lne id="2763" begin="6" end="9"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="2742" begin="3" end="9"/>
+			<lve slot="1" name="2764" begin="3" end="9"/>
 			<lve slot="0" name="103" begin="0" end="9"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2743">
+	<operation name="2765">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="121"/>
@@ -11460,29 +11593,29 @@
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="2743"/>
+			<push arg="2765"/>
 			<pcall arg="133"/>
 			<dup/>
 			<push arg="208"/>
 			<load arg="105"/>
 			<pcall arg="135"/>
 			<load arg="105"/>
-			<push arg="2061"/>
-			<push arg="713"/>
-			<call arg="714"/>
-			<call arg="715"/>
+			<push arg="2084"/>
+			<push arg="743"/>
+			<call arg="744"/>
+			<call arg="534"/>
 			<store arg="114"/>
 			<dup/>
-			<push arg="519"/>
-			<push arg="2744"/>
+			<push arg="524"/>
+			<push arg="2766"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
 			<store arg="200"/>
 			<pcall arg="211"/>
 			<dup/>
-			<push arg="2237"/>
-			<push arg="1514"/>
+			<push arg="2260"/>
+			<push arg="1538"/>
 			<push arg="50"/>
 			<new/>
 			<dup/>
@@ -11495,102 +11628,22 @@
 			<getasm/>
 			<load arg="207"/>
 			<call arg="115"/>
-			<set arg="2745"/>
+			<set arg="2767"/>
 			<pop/>
 			<load arg="207"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
-			<push arg="2579"/>
-			<call arg="1097"/>
+			<push arg="2602"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="500"/>
 			<load arg="114"/>
-			<call arg="1097"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
+			<call arg="535"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
 			<call arg="115"/>
-			<set arg="1517"/>
-			<pop/>
-			<load arg="200"/>
-		</code>
-		<linenumbertable>
-			<lne id="2746" begin="12" end="12"/>
-			<lne id="2747" begin="13" end="13"/>
-			<lne id="2748" begin="14" end="14"/>
-			<lne id="2749" begin="12" end="15"/>
-			<lne id="2750" begin="12" end="16"/>
-			<lne id="2751" begin="39" end="39"/>
-			<lne id="2752" begin="37" end="41"/>
-			<lne id="2753" begin="36" end="42"/>
-			<lne id="2754" begin="46" end="46"/>
-			<lne id="2755" begin="47" end="47"/>
-			<lne id="2756" begin="47" end="48"/>
-			<lne id="2757" begin="49" end="49"/>
-			<lne id="2758" begin="47" end="50"/>
-			<lne id="2759" begin="51" end="51"/>
-			<lne id="2760" begin="51" end="52"/>
-			<lne id="2761" begin="46" end="53"/>
-			<lne id="2762" begin="46" end="54"/>
-			<lne id="2763" begin="44" end="56"/>
-			<lne id="2764" begin="43" end="57"/>
-		</linenumbertable>
-		<localvariabletable>
-			<lve slot="3" name="519" begin="24" end="58"/>
-			<lve slot="4" name="2237" begin="32" end="58"/>
-			<lve slot="2" name="2765" begin="17" end="58"/>
-			<lve slot="0" name="103" begin="0" end="58"/>
-			<lve slot="1" name="208" begin="0" end="58"/>
-		</localvariabletable>
-	</operation>
-	<operation name="2766">
-		<context type="24"/>
-		<parameters>
-			<parameter name="105" type="121"/>
-		</parameters>
-		<code>
-			<getasm/>
-			<get arg="1"/>
-			<push arg="132"/>
-			<push arg="26"/>
-			<new/>
-			<dup/>
-			<push arg="2766"/>
-			<pcall arg="133"/>
-			<dup/>
-			<push arg="208"/>
-			<load arg="105"/>
-			<pcall arg="135"/>
-			<load arg="105"/>
-			<push arg="2061"/>
-			<push arg="713"/>
-			<call arg="714"/>
-			<call arg="715"/>
-			<store arg="114"/>
-			<dup/>
-			<push arg="519"/>
-			<push arg="2767"/>
-			<push arg="50"/>
-			<new/>
-			<dup/>
-			<store arg="200"/>
-			<pcall arg="211"/>
-			<pushf/>
-			<pcall arg="136"/>
-			<load arg="200"/>
-			<dup/>
-			<getasm/>
-			<load arg="114"/>
-			<push arg="2582"/>
-			<call arg="1097"/>
-			<pushi arg="105"/>
-			<call arg="500"/>
-			<load arg="114"/>
-			<call arg="1097"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
-			<call arg="115"/>
-			<set arg="1946"/>
+			<set arg="1541"/>
 			<pop/>
 			<load arg="200"/>
 		</code>
@@ -11600,33 +11653,113 @@
 			<lne id="2770" begin="14" end="14"/>
 			<lne id="2771" begin="12" end="15"/>
 			<lne id="2772" begin="12" end="16"/>
-			<lne id="2773" begin="31" end="31"/>
-			<lne id="2774" begin="32" end="32"/>
-			<lne id="2775" begin="32" end="33"/>
-			<lne id="2776" begin="34" end="34"/>
-			<lne id="2777" begin="32" end="35"/>
-			<lne id="2778" begin="36" end="36"/>
-			<lne id="2779" begin="36" end="37"/>
-			<lne id="2780" begin="31" end="38"/>
-			<lne id="2781" begin="31" end="39"/>
-			<lne id="2782" begin="29" end="41"/>
-			<lne id="2783" begin="28" end="42"/>
+			<lne id="2773" begin="39" end="39"/>
+			<lne id="2774" begin="37" end="41"/>
+			<lne id="2775" begin="36" end="42"/>
+			<lne id="2776" begin="46" end="46"/>
+			<lne id="2777" begin="47" end="47"/>
+			<lne id="2778" begin="47" end="48"/>
+			<lne id="2779" begin="49" end="49"/>
+			<lne id="2780" begin="47" end="50"/>
+			<lne id="2781" begin="51" end="51"/>
+			<lne id="2782" begin="51" end="52"/>
+			<lne id="2783" begin="46" end="53"/>
+			<lne id="2784" begin="46" end="54"/>
+			<lne id="2785" begin="44" end="56"/>
+			<lne id="2786" begin="43" end="57"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="519" begin="24" end="43"/>
-			<lve slot="2" name="2765" begin="17" end="43"/>
+			<lve slot="3" name="524" begin="24" end="58"/>
+			<lve slot="4" name="2260" begin="32" end="58"/>
+			<lve slot="2" name="2787" begin="17" end="58"/>
+			<lve slot="0" name="103" begin="0" end="58"/>
+			<lve slot="1" name="208" begin="0" end="58"/>
+		</localvariabletable>
+	</operation>
+	<operation name="2788">
+		<context type="24"/>
+		<parameters>
+			<parameter name="105" type="121"/>
+		</parameters>
+		<code>
+			<getasm/>
+			<get arg="1"/>
+			<push arg="132"/>
+			<push arg="26"/>
+			<new/>
+			<dup/>
+			<push arg="2788"/>
+			<pcall arg="133"/>
+			<dup/>
+			<push arg="208"/>
+			<load arg="105"/>
+			<pcall arg="135"/>
+			<load arg="105"/>
+			<push arg="2084"/>
+			<push arg="743"/>
+			<call arg="744"/>
+			<call arg="534"/>
+			<store arg="114"/>
+			<dup/>
+			<push arg="524"/>
+			<push arg="2789"/>
+			<push arg="50"/>
+			<new/>
+			<dup/>
+			<store arg="200"/>
+			<pcall arg="211"/>
+			<pushf/>
+			<pcall arg="136"/>
+			<load arg="200"/>
+			<dup/>
+			<getasm/>
+			<load arg="114"/>
+			<push arg="2605"/>
+			<call arg="535"/>
+			<pushi arg="105"/>
+			<call arg="500"/>
+			<load arg="114"/>
+			<call arg="535"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
+			<call arg="115"/>
+			<set arg="1970"/>
+			<pop/>
+			<load arg="200"/>
+		</code>
+		<linenumbertable>
+			<lne id="2790" begin="12" end="12"/>
+			<lne id="2791" begin="13" end="13"/>
+			<lne id="2792" begin="14" end="14"/>
+			<lne id="2793" begin="12" end="15"/>
+			<lne id="2794" begin="12" end="16"/>
+			<lne id="2795" begin="31" end="31"/>
+			<lne id="2796" begin="32" end="32"/>
+			<lne id="2797" begin="32" end="33"/>
+			<lne id="2798" begin="34" end="34"/>
+			<lne id="2799" begin="32" end="35"/>
+			<lne id="2800" begin="36" end="36"/>
+			<lne id="2801" begin="36" end="37"/>
+			<lne id="2802" begin="31" end="38"/>
+			<lne id="2803" begin="31" end="39"/>
+			<lne id="2804" begin="29" end="41"/>
+			<lne id="2805" begin="28" end="42"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="3" name="524" begin="24" end="43"/>
+			<lve slot="2" name="2787" begin="17" end="43"/>
 			<lve slot="0" name="103" begin="0" end="43"/>
 			<lve slot="1" name="208" begin="0" end="43"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2784">
+	<operation name="2806">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 			<parameter name="114" type="4"/>
 		</parameters>
 		<code>
-			<push arg="2735"/>
+			<push arg="2757"/>
 			<push arg="50"/>
 			<new/>
 			<store arg="200"/>
@@ -11635,39 +11768,39 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2297"/>
+			<set arg="2320"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
 			<call arg="115"/>
-			<set arg="2298"/>
+			<set arg="2321"/>
 			<pop/>
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="2785" begin="7" end="7"/>
-			<lne id="2786" begin="5" end="9"/>
-			<lne id="2787" begin="12" end="12"/>
-			<lne id="2788" begin="10" end="14"/>
-			<lne id="2789" begin="16" end="16"/>
-			<lne id="2790" begin="16" end="16"/>
-			<lne id="2791" begin="16" end="16"/>
+			<lne id="2807" begin="7" end="7"/>
+			<lne id="2808" begin="5" end="9"/>
+			<lne id="2809" begin="12" end="12"/>
+			<lne id="2810" begin="10" end="14"/>
+			<lne id="2811" begin="16" end="16"/>
+			<lne id="2812" begin="16" end="16"/>
+			<lne id="2813" begin="16" end="16"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="3" name="118" begin="3" end="16"/>
 			<lve slot="0" name="103" begin="0" end="16"/>
-			<lve slot="1" name="2792" begin="0" end="16"/>
-			<lve slot="2" name="2793" begin="0" end="16"/>
+			<lve slot="1" name="2814" begin="0" end="16"/>
+			<lve slot="2" name="2815" begin="0" end="16"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2794">
+	<operation name="2816">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 			<parameter name="114" type="4"/>
 		</parameters>
 		<code>
-			<push arg="2795"/>
+			<push arg="2817"/>
 			<push arg="50"/>
 			<new/>
 			<store arg="200"/>
@@ -11676,38 +11809,38 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2297"/>
+			<set arg="2320"/>
 			<dup/>
 			<getasm/>
 			<load arg="114"/>
 			<call arg="115"/>
-			<set arg="2298"/>
+			<set arg="2321"/>
 			<pop/>
 			<load arg="200"/>
 		</code>
 		<linenumbertable>
-			<lne id="2796" begin="7" end="7"/>
-			<lne id="2797" begin="5" end="9"/>
-			<lne id="2798" begin="12" end="12"/>
-			<lne id="2799" begin="10" end="14"/>
-			<lne id="2800" begin="16" end="16"/>
-			<lne id="2801" begin="16" end="16"/>
-			<lne id="2802" begin="16" end="16"/>
+			<lne id="2818" begin="7" end="7"/>
+			<lne id="2819" begin="5" end="9"/>
+			<lne id="2820" begin="12" end="12"/>
+			<lne id="2821" begin="10" end="14"/>
+			<lne id="2822" begin="16" end="16"/>
+			<lne id="2823" begin="16" end="16"/>
+			<lne id="2824" begin="16" end="16"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="3" name="118" begin="3" end="16"/>
 			<lve slot="0" name="103" begin="0" end="16"/>
-			<lve slot="1" name="2792" begin="0" end="16"/>
-			<lve slot="2" name="2793" begin="0" end="16"/>
+			<lve slot="1" name="2814" begin="0" end="16"/>
+			<lve slot="2" name="2815" begin="0" end="16"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2803">
+	<operation name="2825">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 		</parameters>
 		<code>
-			<push arg="2723"/>
+			<push arg="2745"/>
 			<push arg="50"/>
 			<new/>
 			<store arg="114"/>
@@ -11716,24 +11849,24 @@
 			<getasm/>
 			<load arg="105"/>
 			<call arg="115"/>
-			<set arg="2724"/>
+			<set arg="2746"/>
 			<pop/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2804" begin="7" end="7"/>
-			<lne id="2805" begin="5" end="9"/>
-			<lne id="2806" begin="11" end="11"/>
-			<lne id="2807" begin="11" end="11"/>
-			<lne id="2808" begin="11" end="11"/>
+			<lne id="2826" begin="7" end="7"/>
+			<lne id="2827" begin="5" end="9"/>
+			<lne id="2828" begin="11" end="11"/>
+			<lne id="2829" begin="11" end="11"/>
+			<lne id="2830" begin="11" end="11"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="2" name="118" begin="3" end="11"/>
 			<lve slot="0" name="103" begin="0" end="11"/>
-			<lve slot="1" name="517" begin="0" end="11"/>
+			<lve slot="1" name="522" begin="0" end="11"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2809">
+	<operation name="2831">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -11752,18 +11885,18 @@
 			<load arg="105"/>
 			<store arg="207"/>
 			<load arg="105"/>
-			<call arg="1097"/>
+			<call arg="535"/>
 			<pushi arg="105"/>
 			<call arg="145"/>
-			<if arg="1616"/>
+			<if arg="1640"/>
 			<load arg="207"/>
 			<call arg="141"/>
 			<store arg="114"/>
 			<load arg="207"/>
 			<pushi arg="114"/>
 			<load arg="207"/>
-			<call arg="1097"/>
-			<call arg="2319"/>
+			<call arg="535"/>
+			<call arg="2342"/>
 			<store arg="207"/>
 			<load arg="207"/>
 			<iterate/>
@@ -11771,61 +11904,61 @@
 			<getasm/>
 			<load arg="114"/>
 			<load arg="210"/>
-			<call arg="2810"/>
+			<call arg="2832"/>
 			<store arg="200"/>
 			<load arg="200"/>
 			<store arg="114"/>
 			<enditerate/>
-			<goto arg="2811"/>
+			<goto arg="2833"/>
 			<load arg="105"/>
 			<call arg="141"/>
 			<store arg="114"/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2812" begin="0" end="3"/>
-			<lne id="2813" begin="5" end="8"/>
-			<lne id="2814" begin="10" end="10"/>
-			<lne id="2815" begin="12" end="12"/>
-			<lne id="2816" begin="12" end="13"/>
-			<lne id="2817" begin="14" end="14"/>
-			<lne id="2818" begin="12" end="15"/>
-			<lne id="2819" begin="17" end="17"/>
-			<lne id="2820" begin="17" end="18"/>
-			<lne id="2821" begin="17" end="19"/>
-			<lne id="2822" begin="20" end="20"/>
-			<lne id="2823" begin="21" end="21"/>
-			<lne id="2824" begin="22" end="22"/>
-			<lne id="2825" begin="22" end="23"/>
-			<lne id="2826" begin="20" end="24"/>
-			<lne id="2827" begin="20" end="25"/>
-			<lne id="2828" begin="26" end="26"/>
-			<lne id="2829" begin="29" end="29"/>
-			<lne id="2830" begin="30" end="30"/>
-			<lne id="2831" begin="31" end="31"/>
-			<lne id="2832" begin="29" end="32"/>
-			<lne id="2833" begin="29" end="33"/>
-			<lne id="2834" begin="34" end="34"/>
-			<lne id="2835" begin="34" end="35"/>
-			<lne id="2836" begin="26" end="36"/>
-			<lne id="2837" begin="38" end="38"/>
-			<lne id="2838" begin="38" end="39"/>
-			<lne id="2839" begin="38" end="40"/>
-			<lne id="2840" begin="12" end="40"/>
-			<lne id="2841" begin="41" end="41"/>
-			<lne id="2842" begin="41" end="41"/>
-			<lne id="2843" begin="12" end="41"/>
+			<lne id="2834" begin="0" end="3"/>
+			<lne id="2835" begin="5" end="8"/>
+			<lne id="2836" begin="10" end="10"/>
+			<lne id="2837" begin="12" end="12"/>
+			<lne id="2838" begin="12" end="13"/>
+			<lne id="2839" begin="14" end="14"/>
+			<lne id="2840" begin="12" end="15"/>
+			<lne id="2841" begin="17" end="17"/>
+			<lne id="2842" begin="17" end="18"/>
+			<lne id="2843" begin="17" end="19"/>
+			<lne id="2844" begin="20" end="20"/>
+			<lne id="2845" begin="21" end="21"/>
+			<lne id="2846" begin="22" end="22"/>
+			<lne id="2847" begin="22" end="23"/>
+			<lne id="2848" begin="20" end="24"/>
+			<lne id="2849" begin="20" end="25"/>
+			<lne id="2850" begin="26" end="26"/>
+			<lne id="2851" begin="29" end="29"/>
+			<lne id="2852" begin="30" end="30"/>
+			<lne id="2853" begin="31" end="31"/>
+			<lne id="2854" begin="29" end="32"/>
+			<lne id="2855" begin="29" end="33"/>
+			<lne id="2856" begin="34" end="34"/>
+			<lne id="2857" begin="34" end="35"/>
+			<lne id="2858" begin="26" end="36"/>
+			<lne id="2859" begin="38" end="38"/>
+			<lne id="2860" begin="38" end="39"/>
+			<lne id="2861" begin="38" end="40"/>
+			<lne id="2862" begin="12" end="40"/>
+			<lne id="2863" begin="41" end="41"/>
+			<lne id="2864" begin="41" end="41"/>
+			<lne id="2865" begin="12" end="41"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="5" name="2844" begin="28" end="35"/>
-			<lve slot="2" name="2368" begin="4" end="41"/>
-			<lve slot="3" name="2369" begin="9" end="41"/>
-			<lve slot="4" name="2370" begin="11" end="41"/>
+			<lve slot="5" name="2866" begin="28" end="35"/>
+			<lve slot="2" name="2391" begin="4" end="41"/>
+			<lve slot="3" name="2392" begin="9" end="41"/>
+			<lve slot="4" name="2393" begin="11" end="41"/>
 			<lve slot="0" name="103" begin="0" end="41"/>
-			<lve slot="1" name="2845" begin="0" end="41"/>
+			<lve slot="1" name="2867" begin="0" end="41"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2846">
+	<operation name="2868">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -11845,35 +11978,35 @@
 			<store arg="200"/>
 			<getasm/>
 			<load arg="200"/>
-			<call arg="2847"/>
+			<call arg="2869"/>
 			<call arg="36"/>
 			<enditerate/>
-			<call arg="2848"/>
+			<call arg="2870"/>
 			<store arg="114"/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="2849" begin="0" end="3"/>
-			<lne id="2850" begin="5" end="5"/>
-			<lne id="2851" begin="9" end="9"/>
-			<lne id="2852" begin="12" end="12"/>
-			<lne id="2853" begin="13" end="13"/>
-			<lne id="2854" begin="12" end="14"/>
-			<lne id="2855" begin="6" end="16"/>
-			<lne id="2856" begin="5" end="17"/>
-			<lne id="2857" begin="5" end="18"/>
-			<lne id="2858" begin="19" end="19"/>
-			<lne id="2859" begin="19" end="19"/>
-			<lne id="2860" begin="5" end="19"/>
+			<lne id="2871" begin="0" end="3"/>
+			<lne id="2872" begin="5" end="5"/>
+			<lne id="2873" begin="9" end="9"/>
+			<lne id="2874" begin="12" end="12"/>
+			<lne id="2875" begin="13" end="13"/>
+			<lne id="2876" begin="12" end="14"/>
+			<lne id="2877" begin="6" end="16"/>
+			<lne id="2878" begin="5" end="17"/>
+			<lne id="2879" begin="5" end="18"/>
+			<lne id="2880" begin="19" end="19"/>
+			<lne id="2881" begin="19" end="19"/>
+			<lne id="2882" begin="5" end="19"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="517" begin="11" end="15"/>
-			<lve slot="2" name="2861" begin="4" end="19"/>
+			<lve slot="3" name="522" begin="11" end="15"/>
+			<lve slot="2" name="2883" begin="4" end="19"/>
 			<lve slot="0" name="103" begin="0" end="19"/>
-			<lve slot="1" name="2862" begin="0" end="19"/>
+			<lve slot="1" name="2884" begin="0" end="19"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2863">
+	<operation name="2885">
 		<context type="24"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -11885,32 +12018,32 @@
 			<call arg="226"/>
 			<store arg="114"/>
 			<load arg="105"/>
-			<get arg="2864"/>
+			<get arg="2886"/>
 			<iterate/>
 			<store arg="200"/>
 			<load arg="105"/>
-			<get arg="2865"/>
+			<get arg="2887"/>
 			<iterate/>
 			<store arg="207"/>
 			<getasm/>
 			<load arg="207"/>
 			<call arg="231"/>
-			<get arg="676"/>
+			<get arg="706"/>
 			<iterate/>
 			<store arg="210"/>
 			<getasm/>
 			<load arg="210"/>
-			<call arg="1977"/>
+			<call arg="2001"/>
 			<load arg="200"/>
-			<call arg="1016"/>
+			<call arg="1042"/>
 			<store arg="114"/>
 			<load arg="114"/>
 			<load arg="210"/>
-			<set arg="1017"/>
+			<set arg="1043"/>
 			<load arg="114"/>
 			<load arg="200"/>
 			<get arg="61"/>
-			<push arg="2866"/>
+			<push arg="2888"/>
 			<call arg="500"/>
 			<load arg="210"/>
 			<get arg="212"/>
@@ -11921,48 +12054,48 @@
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="2867" begin="0" end="3"/>
-			<lne id="2868" begin="5" end="5"/>
-			<lne id="2869" begin="5" end="6"/>
-			<lne id="2870" begin="9" end="9"/>
-			<lne id="2871" begin="9" end="10"/>
-			<lne id="2872" begin="13" end="13"/>
-			<lne id="2873" begin="14" end="14"/>
-			<lne id="2874" begin="13" end="15"/>
-			<lne id="2875" begin="13" end="16"/>
-			<lne id="2876" begin="19" end="19"/>
-			<lne id="2877" begin="20" end="20"/>
-			<lne id="2878" begin="20" end="21"/>
-			<lne id="2879" begin="22" end="22"/>
-			<lne id="2880" begin="19" end="23"/>
-			<lne id="2881" begin="19" end="24"/>
-			<lne id="2882" begin="25" end="25"/>
-			<lne id="2883" begin="26" end="26"/>
-			<lne id="2884" begin="25" end="27"/>
-			<lne id="2885" begin="28" end="28"/>
-			<lne id="2886" begin="29" end="29"/>
-			<lne id="2887" begin="29" end="30"/>
-			<lne id="2888" begin="31" end="31"/>
-			<lne id="2889" begin="29" end="32"/>
-			<lne id="2890" begin="33" end="33"/>
-			<lne id="2891" begin="33" end="34"/>
-			<lne id="2892" begin="29" end="35"/>
-			<lne id="2893" begin="28" end="36"/>
-			<lne id="2894" begin="13" end="37"/>
-			<lne id="2895" begin="9" end="38"/>
-			<lne id="2896" begin="5" end="39"/>
-			<lne id="2897" begin="5" end="39"/>
+			<lne id="2889" begin="0" end="3"/>
+			<lne id="2890" begin="5" end="5"/>
+			<lne id="2891" begin="5" end="6"/>
+			<lne id="2892" begin="9" end="9"/>
+			<lne id="2893" begin="9" end="10"/>
+			<lne id="2894" begin="13" end="13"/>
+			<lne id="2895" begin="14" end="14"/>
+			<lne id="2896" begin="13" end="15"/>
+			<lne id="2897" begin="13" end="16"/>
+			<lne id="2898" begin="19" end="19"/>
+			<lne id="2899" begin="20" end="20"/>
+			<lne id="2900" begin="20" end="21"/>
+			<lne id="2901" begin="22" end="22"/>
+			<lne id="2902" begin="19" end="23"/>
+			<lne id="2903" begin="19" end="24"/>
+			<lne id="2904" begin="25" end="25"/>
+			<lne id="2905" begin="26" end="26"/>
+			<lne id="2906" begin="25" end="27"/>
+			<lne id="2907" begin="28" end="28"/>
+			<lne id="2908" begin="29" end="29"/>
+			<lne id="2909" begin="29" end="30"/>
+			<lne id="2910" begin="31" end="31"/>
+			<lne id="2911" begin="29" end="32"/>
+			<lne id="2912" begin="33" end="33"/>
+			<lne id="2913" begin="33" end="34"/>
+			<lne id="2914" begin="29" end="35"/>
+			<lne id="2915" begin="28" end="36"/>
+			<lne id="2916" begin="13" end="37"/>
+			<lne id="2917" begin="9" end="38"/>
+			<lne id="2918" begin="5" end="39"/>
+			<lne id="2919" begin="5" end="39"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="5" name="517" begin="18" end="36"/>
-			<lve slot="4" name="2898" begin="12" end="37"/>
-			<lve slot="3" name="2899" begin="8" end="38"/>
-			<lve slot="2" name="2900" begin="4" end="39"/>
+			<lve slot="5" name="522" begin="18" end="36"/>
+			<lve slot="4" name="2920" begin="12" end="37"/>
+			<lve slot="3" name="2921" begin="8" end="38"/>
+			<lve slot="2" name="2922" begin="4" end="39"/>
 			<lve slot="0" name="103" begin="0" end="39"/>
 			<lve slot="1" name="472" begin="0" end="39"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2901">
+	<operation name="2923">
 		<context type="189"/>
 		<parameters>
 		</parameters>
@@ -11978,7 +12111,7 @@
 			<store arg="105"/>
 			<load arg="105"/>
 			<get arg="221"/>
-			<get arg="2902"/>
+			<get arg="2924"/>
 			<load arg="505"/>
 			<get arg="206"/>
 			<call arg="141"/>
@@ -11986,31 +12119,31 @@
 			<call arg="141"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="2514"/>
+			<if arg="2537"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="2903" begin="3" end="5"/>
-			<lne id="2904" begin="3" end="6"/>
-			<lne id="2905" begin="9" end="9"/>
-			<lne id="2906" begin="9" end="10"/>
-			<lne id="2907" begin="9" end="11"/>
-			<lne id="2908" begin="12" end="12"/>
-			<lne id="2909" begin="12" end="13"/>
-			<lne id="2910" begin="12" end="14"/>
-			<lne id="2911" begin="12" end="15"/>
-			<lne id="2912" begin="12" end="16"/>
-			<lne id="2913" begin="9" end="17"/>
-			<lne id="2914" begin="0" end="22"/>
+			<lne id="2925" begin="3" end="5"/>
+			<lne id="2926" begin="3" end="6"/>
+			<lne id="2927" begin="9" end="9"/>
+			<lne id="2928" begin="9" end="10"/>
+			<lne id="2929" begin="9" end="11"/>
+			<lne id="2930" begin="12" end="12"/>
+			<lne id="2931" begin="12" end="13"/>
+			<lne id="2932" begin="12" end="14"/>
+			<lne id="2933" begin="12" end="15"/>
+			<lne id="2934" begin="12" end="16"/>
+			<lne id="2935" begin="9" end="17"/>
+			<lne id="2936" begin="0" end="22"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="472" begin="8" end="21"/>
 			<lve slot="0" name="103" begin="0" end="22"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2915">
+	<operation name="2937">
 		<context type="189"/>
 		<parameters>
 		</parameters>
@@ -12023,32 +12156,32 @@
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="2864"/>
+			<get arg="2886"/>
 			<load arg="105"/>
-			<get arg="2865"/>
+			<get arg="2887"/>
 			<call arg="199"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="205"/>
 		</code>
 		<linenumbertable>
-			<lne id="2916" begin="3" end="3"/>
-			<lne id="2917" begin="3" end="4"/>
-			<lne id="2918" begin="7" end="7"/>
-			<lne id="2919" begin="7" end="8"/>
-			<lne id="2920" begin="9" end="9"/>
-			<lne id="2921" begin="9" end="10"/>
-			<lne id="2922" begin="7" end="11"/>
-			<lne id="2923" begin="0" end="13"/>
-			<lne id="2924" begin="0" end="14"/>
+			<lne id="2938" begin="3" end="3"/>
+			<lne id="2939" begin="3" end="4"/>
+			<lne id="2940" begin="7" end="7"/>
+			<lne id="2941" begin="7" end="8"/>
+			<lne id="2942" begin="9" end="9"/>
+			<lne id="2943" begin="9" end="10"/>
+			<lne id="2944" begin="7" end="11"/>
+			<lne id="2945" begin="0" end="13"/>
+			<lne id="2946" begin="0" end="14"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="472" begin="6" end="12"/>
 			<lve slot="0" name="103" begin="0" end="14"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2925">
-		<context type="2926"/>
+	<operation name="2947">
+		<context type="2948"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 		</parameters>
@@ -12057,14 +12190,14 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<get arg="676"/>
+			<get arg="706"/>
 			<iterate/>
 			<store arg="114"/>
 			<load arg="114"/>
 			<get arg="51"/>
-			<call arg="715"/>
+			<call arg="534"/>
 			<load arg="105"/>
-			<call arg="715"/>
+			<call arg="534"/>
 			<call arg="145"/>
 			<call arg="196"/>
 			<if arg="112"/>
@@ -12075,26 +12208,26 @@
 			<call arg="217"/>
 		</code>
 		<linenumbertable>
-			<lne id="2927" begin="3" end="3"/>
-			<lne id="2928" begin="3" end="4"/>
-			<lne id="2929" begin="7" end="7"/>
-			<lne id="2930" begin="7" end="8"/>
-			<lne id="2931" begin="7" end="9"/>
-			<lne id="2932" begin="10" end="10"/>
-			<lne id="2933" begin="10" end="11"/>
-			<lne id="2934" begin="7" end="12"/>
-			<lne id="2935" begin="0" end="17"/>
-			<lne id="2936" begin="0" end="18"/>
-			<lne id="2937" begin="0" end="19"/>
+			<lne id="2949" begin="3" end="3"/>
+			<lne id="2950" begin="3" end="4"/>
+			<lne id="2951" begin="7" end="7"/>
+			<lne id="2952" begin="7" end="8"/>
+			<lne id="2953" begin="7" end="9"/>
+			<lne id="2954" begin="10" end="10"/>
+			<lne id="2955" begin="10" end="11"/>
+			<lne id="2956" begin="7" end="12"/>
+			<lne id="2957" begin="0" end="17"/>
+			<lne id="2958" begin="0" end="18"/>
+			<lne id="2959" begin="0" end="19"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="2" name="826" begin="6" end="16"/>
+			<lve slot="2" name="855" begin="6" end="16"/>
 			<lve slot="0" name="103" begin="0" end="19"/>
-			<lve slot="1" name="517" begin="0" end="19"/>
+			<lve slot="1" name="522" begin="0" end="19"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2938">
-		<context type="2926"/>
+	<operation name="2960">
+		<context type="2948"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 		</parameters>
@@ -12108,9 +12241,9 @@
 			<store arg="114"/>
 			<load arg="114"/>
 			<get arg="51"/>
-			<call arg="715"/>
+			<call arg="534"/>
 			<load arg="105"/>
-			<call arg="715"/>
+			<call arg="534"/>
 			<call arg="145"/>
 			<call arg="196"/>
 			<if arg="112"/>
@@ -12121,26 +12254,26 @@
 			<call arg="217"/>
 		</code>
 		<linenumbertable>
-			<lne id="2939" begin="3" end="3"/>
-			<lne id="2940" begin="3" end="4"/>
-			<lne id="2941" begin="7" end="7"/>
-			<lne id="2942" begin="7" end="8"/>
-			<lne id="2943" begin="7" end="9"/>
-			<lne id="2944" begin="10" end="10"/>
-			<lne id="2945" begin="10" end="11"/>
-			<lne id="2946" begin="7" end="12"/>
-			<lne id="2947" begin="0" end="17"/>
-			<lne id="2948" begin="0" end="18"/>
-			<lne id="2949" begin="0" end="19"/>
+			<lne id="2961" begin="3" end="3"/>
+			<lne id="2962" begin="3" end="4"/>
+			<lne id="2963" begin="7" end="7"/>
+			<lne id="2964" begin="7" end="8"/>
+			<lne id="2965" begin="7" end="9"/>
+			<lne id="2966" begin="10" end="10"/>
+			<lne id="2967" begin="10" end="11"/>
+			<lne id="2968" begin="7" end="12"/>
+			<lne id="2969" begin="0" end="17"/>
+			<lne id="2970" begin="0" end="18"/>
+			<lne id="2971" begin="0" end="19"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="2" name="826" begin="6" end="16"/>
+			<lve slot="2" name="855" begin="6" end="16"/>
 			<lve slot="0" name="103" begin="0" end="19"/>
-			<lve slot="1" name="517" begin="0" end="19"/>
+			<lve slot="1" name="522" begin="0" end="19"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2950">
-		<context type="2951"/>
+	<operation name="2972">
+		<context type="2973"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -12154,7 +12287,7 @@
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="1510"/>
+			<get arg="1534"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
@@ -12165,36 +12298,36 @@
 			<call arg="141"/>
 		</code>
 		<linenumbertable>
-			<lne id="2952" begin="3" end="5"/>
-			<lne id="2953" begin="3" end="6"/>
-			<lne id="2954" begin="9" end="9"/>
-			<lne id="2955" begin="9" end="10"/>
-			<lne id="2956" begin="11" end="11"/>
-			<lne id="2957" begin="9" end="12"/>
-			<lne id="2958" begin="0" end="17"/>
-			<lne id="2959" begin="0" end="18"/>
+			<lne id="2974" begin="3" end="5"/>
+			<lne id="2975" begin="3" end="6"/>
+			<lne id="2976" begin="9" end="9"/>
+			<lne id="2977" begin="9" end="10"/>
+			<lne id="2978" begin="11" end="11"/>
+			<lne id="2979" begin="9" end="12"/>
+			<lne id="2980" begin="0" end="17"/>
+			<lne id="2981" begin="0" end="18"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="826" begin="8" end="16"/>
+			<lve slot="1" name="855" begin="8" end="16"/>
 			<lve slot="0" name="103" begin="0" end="18"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2960">
-		<context type="2961"/>
+	<operation name="2982">
+		<context type="2983"/>
 		<parameters>
 		</parameters>
 		<code>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
-			<push arg="2962"/>
+			<push arg="2984"/>
 			<push arg="35"/>
 			<findme/>
 			<call arg="194"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="2963"/>
+			<get arg="2985"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
@@ -12205,59 +12338,59 @@
 			<call arg="141"/>
 		</code>
 		<linenumbertable>
-			<lne id="2964" begin="3" end="5"/>
-			<lne id="2965" begin="3" end="6"/>
-			<lne id="2966" begin="9" end="9"/>
-			<lne id="2967" begin="9" end="10"/>
-			<lne id="2968" begin="11" end="11"/>
-			<lne id="2969" begin="9" end="12"/>
-			<lne id="2970" begin="0" end="17"/>
-			<lne id="2971" begin="0" end="18"/>
+			<lne id="2986" begin="3" end="5"/>
+			<lne id="2987" begin="3" end="6"/>
+			<lne id="2988" begin="9" end="9"/>
+			<lne id="2989" begin="9" end="10"/>
+			<lne id="2990" begin="11" end="11"/>
+			<lne id="2991" begin="9" end="12"/>
+			<lne id="2992" begin="0" end="17"/>
+			<lne id="2993" begin="0" end="18"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="118" begin="8" end="16"/>
 			<lve slot="0" name="103" begin="0" end="18"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2972">
-		<context type="1473"/>
+	<operation name="2994">
+		<context type="1497"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<push arg="840"/>
+			<push arg="868"/>
 			<push arg="35"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<if arg="496"/>
 			<pushf/>
 			<goto arg="112"/>
 			<load arg="505"/>
-			<get arg="850"/>
-			<push arg="851"/>
+			<get arg="877"/>
+			<push arg="878"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="2973"/>
+			<push arg="2995"/>
 			<set arg="61"/>
 			<call arg="145"/>
 		</code>
 		<linenumbertable>
-			<lne id="2974" begin="0" end="0"/>
-			<lne id="2975" begin="1" end="3"/>
-			<lne id="2976" begin="0" end="4"/>
-			<lne id="2977" begin="6" end="6"/>
-			<lne id="2978" begin="8" end="8"/>
-			<lne id="2979" begin="8" end="9"/>
-			<lne id="2980" begin="10" end="15"/>
-			<lne id="2981" begin="8" end="16"/>
-			<lne id="2982" begin="0" end="16"/>
+			<lne id="2996" begin="0" end="0"/>
+			<lne id="2997" begin="1" end="3"/>
+			<lne id="2998" begin="0" end="4"/>
+			<lne id="2999" begin="6" end="6"/>
+			<lne id="3000" begin="8" end="8"/>
+			<lne id="3001" begin="8" end="9"/>
+			<lne id="3002" begin="10" end="15"/>
+			<lne id="3003" begin="8" end="16"/>
+			<lne id="3004" begin="0" end="16"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="16"/>
 		</localvariabletable>
 	</operation>
-	<operation name="2983">
+	<operation name="3005">
 		<context type="121"/>
 		<parameters>
 			<parameter name="105" type="4"/>
@@ -12265,83 +12398,22 @@
 		<code>
 			<load arg="505"/>
 			<load arg="105"/>
-			<push arg="1014"/>
+			<push arg="1040"/>
 			<call arg="500"/>
 			<push arg="494"/>
-			<call arg="714"/>
+			<call arg="744"/>
 		</code>
 		<linenumbertable>
-			<lne id="2984" begin="0" end="0"/>
-			<lne id="2985" begin="1" end="1"/>
-			<lne id="2986" begin="2" end="2"/>
-			<lne id="2987" begin="1" end="3"/>
-			<lne id="2988" begin="4" end="4"/>
-			<lne id="2989" begin="0" end="5"/>
+			<lne id="3006" begin="0" end="0"/>
+			<lne id="3007" begin="1" end="1"/>
+			<lne id="3008" begin="2" end="2"/>
+			<lne id="3009" begin="1" end="3"/>
+			<lne id="3010" begin="4" end="4"/>
+			<lne id="3011" begin="0" end="5"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="5"/>
-			<lve slot="1" name="2990" begin="0" end="5"/>
-		</localvariabletable>
-	</operation>
-	<operation name="52">
-		<context type="2991"/>
-		<parameters>
-		</parameters>
-		<code>
-			<load arg="505"/>
-			<get arg="212"/>
-			<load arg="505"/>
-			<get arg="486"/>
-			<get arg="212"/>
-			<call arg="2992"/>
-			<store arg="105"/>
-			<load arg="105"/>
-			<pushi arg="210"/>
-			<load arg="105"/>
-			<call arg="1097"/>
-			<call arg="2070"/>
-		</code>
-		<linenumbertable>
-			<lne id="2993" begin="0" end="0"/>
-			<lne id="2994" begin="0" end="1"/>
-			<lne id="2995" begin="2" end="2"/>
-			<lne id="2996" begin="2" end="3"/>
-			<lne id="2997" begin="2" end="4"/>
-			<lne id="2998" begin="0" end="5"/>
-			<lne id="2999" begin="7" end="7"/>
-			<lne id="3000" begin="8" end="8"/>
-			<lne id="3001" begin="9" end="9"/>
-			<lne id="3002" begin="9" end="10"/>
-			<lne id="3003" begin="7" end="11"/>
-			<lne id="3004" begin="0" end="11"/>
-		</linenumbertable>
-		<localvariabletable>
-			<lve slot="1" name="3005" begin="6" end="11"/>
-			<lve slot="0" name="103" begin="0" end="11"/>
-		</localvariabletable>
-	</operation>
-	<operation name="52">
-		<context type="3006"/>
-		<parameters>
-		</parameters>
-		<code>
-			<load arg="505"/>
-			<get arg="212"/>
-			<load arg="505"/>
-			<get arg="486"/>
-			<get arg="212"/>
-			<call arg="2992"/>
-		</code>
-		<linenumbertable>
-			<lne id="3007" begin="0" end="0"/>
-			<lne id="3008" begin="0" end="1"/>
-			<lne id="3009" begin="2" end="2"/>
-			<lne id="3010" begin="2" end="3"/>
-			<lne id="3011" begin="2" end="4"/>
-			<lne id="3012" begin="0" end="5"/>
-		</linenumbertable>
-		<localvariabletable>
-			<lve slot="0" name="103" begin="0" end="5"/>
+			<lve slot="1" name="3012" begin="0" end="5"/>
 		</localvariabletable>
 	</operation>
 	<operation name="52">
@@ -12354,22 +12426,83 @@
 			<load arg="505"/>
 			<get arg="486"/>
 			<get arg="212"/>
-			<call arg="2992"/>
+			<call arg="3014"/>
+			<store arg="105"/>
+			<load arg="105"/>
+			<pushi arg="210"/>
+			<load arg="105"/>
+			<call arg="535"/>
+			<call arg="2093"/>
 		</code>
 		<linenumbertable>
-			<lne id="3014" begin="0" end="0"/>
-			<lne id="3015" begin="0" end="1"/>
-			<lne id="3016" begin="2" end="2"/>
-			<lne id="3017" begin="2" end="3"/>
-			<lne id="3018" begin="2" end="4"/>
-			<lne id="3019" begin="0" end="5"/>
+			<lne id="3015" begin="0" end="0"/>
+			<lne id="3016" begin="0" end="1"/>
+			<lne id="3017" begin="2" end="2"/>
+			<lne id="3018" begin="2" end="3"/>
+			<lne id="3019" begin="2" end="4"/>
+			<lne id="3020" begin="0" end="5"/>
+			<lne id="3021" begin="7" end="7"/>
+			<lne id="3022" begin="8" end="8"/>
+			<lne id="3023" begin="9" end="9"/>
+			<lne id="3024" begin="9" end="10"/>
+			<lne id="3025" begin="7" end="11"/>
+			<lne id="3026" begin="0" end="11"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="1" name="3027" begin="6" end="11"/>
+			<lve slot="0" name="103" begin="0" end="11"/>
+		</localvariabletable>
+	</operation>
+	<operation name="52">
+		<context type="3028"/>
+		<parameters>
+		</parameters>
+		<code>
+			<load arg="505"/>
+			<get arg="212"/>
+			<load arg="505"/>
+			<get arg="486"/>
+			<get arg="212"/>
+			<call arg="3014"/>
+		</code>
+		<linenumbertable>
+			<lne id="3029" begin="0" end="0"/>
+			<lne id="3030" begin="0" end="1"/>
+			<lne id="3031" begin="2" end="2"/>
+			<lne id="3032" begin="2" end="3"/>
+			<lne id="3033" begin="2" end="4"/>
+			<lne id="3034" begin="0" end="5"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="0" name="103" begin="0" end="5"/>
+		</localvariabletable>
+	</operation>
+	<operation name="52">
+		<context type="3035"/>
+		<parameters>
+		</parameters>
+		<code>
+			<load arg="505"/>
+			<get arg="212"/>
+			<load arg="505"/>
+			<get arg="486"/>
+			<get arg="212"/>
+			<call arg="3014"/>
+		</code>
+		<linenumbertable>
+			<lne id="3036" begin="0" end="0"/>
+			<lne id="3037" begin="0" end="1"/>
+			<lne id="3038" begin="2" end="2"/>
+			<lne id="3039" begin="2" end="3"/>
+			<lne id="3040" begin="2" end="4"/>
+			<lne id="3041" begin="0" end="5"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="5"/>
 		</localvariabletable>
 	</operation>
 	<operation name="58">
-		<context type="3020"/>
+		<context type="3042"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -12377,223 +12510,223 @@
 			<get arg="212"/>
 		</code>
 		<linenumbertable>
-			<lne id="3021" begin="0" end="0"/>
-			<lne id="3022" begin="0" end="1"/>
+			<lne id="3043" begin="0" end="0"/>
+			<lne id="3044" begin="0" end="1"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="1"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3023">
-		<context type="2991"/>
-		<parameters>
-		</parameters>
-		<code>
-			<load arg="505"/>
-			<get arg="51"/>
-			<push arg="1013"/>
-			<call arg="717"/>
-			<pushi arg="105"/>
-			<call arg="3024"/>
-		</code>
-		<linenumbertable>
-			<lne id="3025" begin="0" end="0"/>
-			<lne id="3026" begin="0" end="1"/>
-			<lne id="3027" begin="2" end="2"/>
-			<lne id="3028" begin="0" end="3"/>
-			<lne id="3029" begin="4" end="4"/>
-			<lne id="3030" begin="0" end="5"/>
-		</linenumbertable>
-		<localvariabletable>
-			<lve slot="0" name="103" begin="0" end="5"/>
-		</localvariabletable>
-	</operation>
-	<operation name="3031">
-		<context type="2991"/>
-		<parameters>
-		</parameters>
-		<code>
-			<load arg="505"/>
-			<get arg="51"/>
-			<push arg="1013"/>
-			<call arg="717"/>
-			<pushi arg="114"/>
-			<call arg="3024"/>
-		</code>
-		<linenumbertable>
-			<lne id="3032" begin="0" end="0"/>
-			<lne id="3033" begin="0" end="1"/>
-			<lne id="3034" begin="2" end="2"/>
-			<lne id="3035" begin="0" end="3"/>
-			<lne id="3036" begin="4" end="4"/>
-			<lne id="3037" begin="0" end="5"/>
-		</linenumbertable>
-		<localvariabletable>
-			<lve slot="0" name="103" begin="0" end="5"/>
-		</localvariabletable>
-	</operation>
-	<operation name="3023">
+	<operation name="3045">
 		<context type="3013"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
 			<get arg="51"/>
-			<push arg="1013"/>
-			<call arg="717"/>
+			<push arg="1039"/>
+			<call arg="746"/>
 			<pushi arg="105"/>
-			<call arg="3024"/>
+			<call arg="3046"/>
 		</code>
 		<linenumbertable>
-			<lne id="3038" begin="0" end="0"/>
-			<lne id="3039" begin="0" end="1"/>
-			<lne id="3040" begin="2" end="2"/>
-			<lne id="3041" begin="0" end="3"/>
-			<lne id="3042" begin="4" end="4"/>
-			<lne id="3043" begin="0" end="5"/>
+			<lne id="3047" begin="0" end="0"/>
+			<lne id="3048" begin="0" end="1"/>
+			<lne id="3049" begin="2" end="2"/>
+			<lne id="3050" begin="0" end="3"/>
+			<lne id="3051" begin="4" end="4"/>
+			<lne id="3052" begin="0" end="5"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="5"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3031">
+	<operation name="3053">
 		<context type="3013"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
 			<get arg="51"/>
-			<push arg="1013"/>
-			<call arg="717"/>
+			<push arg="1039"/>
+			<call arg="746"/>
 			<pushi arg="114"/>
-			<call arg="3024"/>
+			<call arg="3046"/>
 		</code>
 		<linenumbertable>
-			<lne id="3044" begin="0" end="0"/>
-			<lne id="3045" begin="0" end="1"/>
-			<lne id="3046" begin="2" end="2"/>
-			<lne id="3047" begin="0" end="3"/>
-			<lne id="3048" begin="4" end="4"/>
-			<lne id="3049" begin="0" end="5"/>
+			<lne id="3054" begin="0" end="0"/>
+			<lne id="3055" begin="0" end="1"/>
+			<lne id="3056" begin="2" end="2"/>
+			<lne id="3057" begin="0" end="3"/>
+			<lne id="3058" begin="4" end="4"/>
+			<lne id="3059" begin="0" end="5"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="5"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3050">
+	<operation name="3045">
+		<context type="3035"/>
+		<parameters>
+		</parameters>
+		<code>
+			<load arg="505"/>
+			<get arg="51"/>
+			<push arg="1039"/>
+			<call arg="746"/>
+			<pushi arg="105"/>
+			<call arg="3046"/>
+		</code>
+		<linenumbertable>
+			<lne id="3060" begin="0" end="0"/>
+			<lne id="3061" begin="0" end="1"/>
+			<lne id="3062" begin="2" end="2"/>
+			<lne id="3063" begin="0" end="3"/>
+			<lne id="3064" begin="4" end="4"/>
+			<lne id="3065" begin="0" end="5"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="0" name="103" begin="0" end="5"/>
+		</localvariabletable>
+	</operation>
+	<operation name="3053">
+		<context type="3035"/>
+		<parameters>
+		</parameters>
+		<code>
+			<load arg="505"/>
+			<get arg="51"/>
+			<push arg="1039"/>
+			<call arg="746"/>
+			<pushi arg="114"/>
+			<call arg="3046"/>
+		</code>
+		<linenumbertable>
+			<lne id="3066" begin="0" end="0"/>
+			<lne id="3067" begin="0" end="1"/>
+			<lne id="3068" begin="2" end="2"/>
+			<lne id="3069" begin="0" end="3"/>
+			<lne id="3070" begin="4" end="4"/>
+			<lne id="3071" begin="0" end="5"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="0" name="103" begin="0" end="5"/>
+		</localvariabletable>
+	</operation>
+	<operation name="3072">
 		<context type="121"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<call arg="715"/>
-			<call arg="3051"/>
+			<call arg="534"/>
+			<call arg="3073"/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<push arg="2511"/>
-			<call arg="2580"/>
-			<if arg="841"/>
+			<push arg="2534"/>
+			<call arg="2603"/>
+			<if arg="869"/>
 			<load arg="105"/>
-			<push arg="3052"/>
-			<call arg="2580"/>
-			<if arg="3053"/>
+			<push arg="3074"/>
+			<call arg="2603"/>
+			<if arg="3075"/>
 			<load arg="105"/>
-			<push arg="3054"/>
-			<call arg="2580"/>
-			<if arg="3055"/>
+			<push arg="3076"/>
+			<call arg="2603"/>
+			<if arg="3077"/>
 			<load arg="105"/>
-			<push arg="3056"/>
-			<call arg="2580"/>
+			<push arg="3078"/>
+			<call arg="2603"/>
 			<load arg="105"/>
-			<push arg="3057"/>
-			<call arg="2580"/>
-			<call arg="3058"/>
+			<push arg="3079"/>
+			<call arg="2603"/>
+			<call arg="3080"/>
 			<if arg="483"/>
 			<load arg="105"/>
-			<push arg="3059"/>
-			<call arg="2580"/>
-			<if arg="2513"/>
+			<push arg="3081"/>
+			<call arg="2603"/>
+			<if arg="2536"/>
 			<load arg="105"/>
-			<push arg="3060"/>
-			<call arg="2580"/>
-			<if arg="3061"/>
+			<push arg="3082"/>
+			<call arg="2603"/>
+			<if arg="3083"/>
 			<getasm/>
 			<pushi arg="505"/>
-			<call arg="3062"/>
-			<goto arg="1616"/>
+			<call arg="3084"/>
+			<goto arg="1640"/>
 			<load arg="105"/>
-			<call arg="3063"/>
-			<goto arg="2811"/>
+			<call arg="3085"/>
+			<goto arg="2833"/>
 			<load arg="105"/>
-			<call arg="3064"/>
-			<goto arg="3065"/>
+			<call arg="3086"/>
+			<goto arg="3087"/>
 			<load arg="105"/>
-			<call arg="3066"/>
-			<goto arg="3067"/>
+			<call arg="3088"/>
+			<goto arg="3089"/>
 			<load arg="105"/>
-			<call arg="3068"/>
-			<goto arg="3069"/>
+			<call arg="3090"/>
+			<goto arg="3091"/>
 			<load arg="105"/>
-			<call arg="3070"/>
-			<goto arg="1737"/>
+			<call arg="3092"/>
+			<goto arg="1761"/>
 			<load arg="105"/>
-			<call arg="3071"/>
+			<call arg="3093"/>
 		</code>
 		<linenumbertable>
-			<lne id="3072" begin="0" end="0"/>
-			<lne id="3073" begin="0" end="1"/>
-			<lne id="3074" begin="0" end="2"/>
-			<lne id="3075" begin="4" end="4"/>
-			<lne id="3076" begin="5" end="5"/>
-			<lne id="3077" begin="4" end="6"/>
-			<lne id="3078" begin="8" end="8"/>
-			<lne id="3079" begin="9" end="9"/>
-			<lne id="3080" begin="8" end="10"/>
-			<lne id="3081" begin="12" end="12"/>
-			<lne id="3082" begin="13" end="13"/>
-			<lne id="3083" begin="12" end="14"/>
-			<lne id="3084" begin="16" end="16"/>
-			<lne id="3085" begin="17" end="17"/>
-			<lne id="3086" begin="16" end="18"/>
-			<lne id="3087" begin="19" end="19"/>
-			<lne id="3088" begin="20" end="20"/>
-			<lne id="3089" begin="19" end="21"/>
-			<lne id="3090" begin="16" end="22"/>
-			<lne id="3091" begin="24" end="24"/>
-			<lne id="3092" begin="25" end="25"/>
-			<lne id="3093" begin="24" end="26"/>
-			<lne id="3094" begin="28" end="28"/>
-			<lne id="3095" begin="29" end="29"/>
-			<lne id="3096" begin="28" end="30"/>
-			<lne id="3097" begin="32" end="32"/>
-			<lne id="3098" begin="33" end="33"/>
-			<lne id="3099" begin="32" end="34"/>
-			<lne id="3100" begin="36" end="36"/>
-			<lne id="3101" begin="36" end="37"/>
-			<lne id="3102" begin="28" end="37"/>
-			<lne id="3103" begin="39" end="39"/>
-			<lne id="3104" begin="39" end="40"/>
-			<lne id="3105" begin="24" end="40"/>
-			<lne id="3106" begin="42" end="42"/>
-			<lne id="3107" begin="42" end="43"/>
-			<lne id="3108" begin="16" end="43"/>
-			<lne id="3109" begin="45" end="45"/>
-			<lne id="3110" begin="45" end="46"/>
-			<lne id="3111" begin="12" end="46"/>
-			<lne id="3112" begin="48" end="48"/>
-			<lne id="3113" begin="48" end="49"/>
-			<lne id="3114" begin="8" end="49"/>
-			<lne id="3115" begin="51" end="51"/>
-			<lne id="3116" begin="51" end="52"/>
-			<lne id="3117" begin="4" end="52"/>
-			<lne id="3118" begin="0" end="52"/>
+			<lne id="3094" begin="0" end="0"/>
+			<lne id="3095" begin="0" end="1"/>
+			<lne id="3096" begin="0" end="2"/>
+			<lne id="3097" begin="4" end="4"/>
+			<lne id="3098" begin="5" end="5"/>
+			<lne id="3099" begin="4" end="6"/>
+			<lne id="3100" begin="8" end="8"/>
+			<lne id="3101" begin="9" end="9"/>
+			<lne id="3102" begin="8" end="10"/>
+			<lne id="3103" begin="12" end="12"/>
+			<lne id="3104" begin="13" end="13"/>
+			<lne id="3105" begin="12" end="14"/>
+			<lne id="3106" begin="16" end="16"/>
+			<lne id="3107" begin="17" end="17"/>
+			<lne id="3108" begin="16" end="18"/>
+			<lne id="3109" begin="19" end="19"/>
+			<lne id="3110" begin="20" end="20"/>
+			<lne id="3111" begin="19" end="21"/>
+			<lne id="3112" begin="16" end="22"/>
+			<lne id="3113" begin="24" end="24"/>
+			<lne id="3114" begin="25" end="25"/>
+			<lne id="3115" begin="24" end="26"/>
+			<lne id="3116" begin="28" end="28"/>
+			<lne id="3117" begin="29" end="29"/>
+			<lne id="3118" begin="28" end="30"/>
+			<lne id="3119" begin="32" end="32"/>
+			<lne id="3120" begin="33" end="33"/>
+			<lne id="3121" begin="32" end="34"/>
+			<lne id="3122" begin="36" end="36"/>
+			<lne id="3123" begin="36" end="37"/>
+			<lne id="3124" begin="28" end="37"/>
+			<lne id="3125" begin="39" end="39"/>
+			<lne id="3126" begin="39" end="40"/>
+			<lne id="3127" begin="24" end="40"/>
+			<lne id="3128" begin="42" end="42"/>
+			<lne id="3129" begin="42" end="43"/>
+			<lne id="3130" begin="16" end="43"/>
+			<lne id="3131" begin="45" end="45"/>
+			<lne id="3132" begin="45" end="46"/>
+			<lne id="3133" begin="12" end="46"/>
+			<lne id="3134" begin="48" end="48"/>
+			<lne id="3135" begin="48" end="49"/>
+			<lne id="3136" begin="8" end="49"/>
+			<lne id="3137" begin="51" end="51"/>
+			<lne id="3138" begin="51" end="52"/>
+			<lne id="3139" begin="4" end="52"/>
+			<lne id="3140" begin="0" end="52"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="3119" begin="3" end="52"/>
+			<lve slot="1" name="3141" begin="3" end="52"/>
 			<lve slot="0" name="103" begin="0" end="52"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3120">
+	<operation name="3142">
 		<context type="121"/>
 		<parameters>
 		</parameters>
@@ -12601,37 +12734,37 @@
 			<getasm/>
 			<load arg="505"/>
 			<load arg="505"/>
-			<push arg="3121"/>
-			<call arg="723"/>
+			<push arg="3143"/>
+			<call arg="752"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<push arg="3122"/>
-			<call arg="723"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
-			<call arg="3062"/>
+			<push arg="3144"/>
+			<call arg="752"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
+			<call arg="3084"/>
 		</code>
 		<linenumbertable>
-			<lne id="3123" begin="0" end="0"/>
-			<lne id="3124" begin="1" end="1"/>
-			<lne id="3125" begin="2" end="2"/>
-			<lne id="3126" begin="3" end="3"/>
-			<lne id="3127" begin="2" end="4"/>
-			<lne id="3128" begin="5" end="5"/>
-			<lne id="3129" begin="2" end="6"/>
-			<lne id="3130" begin="7" end="7"/>
-			<lne id="3131" begin="8" end="8"/>
-			<lne id="3132" begin="7" end="9"/>
-			<lne id="3133" begin="1" end="10"/>
-			<lne id="3134" begin="1" end="11"/>
-			<lne id="3135" begin="0" end="12"/>
+			<lne id="3145" begin="0" end="0"/>
+			<lne id="3146" begin="1" end="1"/>
+			<lne id="3147" begin="2" end="2"/>
+			<lne id="3148" begin="3" end="3"/>
+			<lne id="3149" begin="2" end="4"/>
+			<lne id="3150" begin="5" end="5"/>
+			<lne id="3151" begin="2" end="6"/>
+			<lne id="3152" begin="7" end="7"/>
+			<lne id="3153" begin="8" end="8"/>
+			<lne id="3154" begin="7" end="9"/>
+			<lne id="3155" begin="1" end="10"/>
+			<lne id="3156" begin="1" end="11"/>
+			<lne id="3157" begin="0" end="12"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="12"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3136">
+	<operation name="3158">
 		<context type="121"/>
 		<parameters>
 		</parameters>
@@ -12639,281 +12772,281 @@
 			<getasm/>
 			<load arg="505"/>
 			<load arg="505"/>
-			<push arg="3121"/>
-			<call arg="723"/>
+			<push arg="3143"/>
+			<call arg="752"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<push arg="3122"/>
-			<call arg="723"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
+			<push arg="3144"/>
+			<call arg="752"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
 			<call arg="506"/>
 		</code>
 		<linenumbertable>
-			<lne id="3137" begin="0" end="0"/>
-			<lne id="3138" begin="1" end="1"/>
-			<lne id="3139" begin="2" end="2"/>
-			<lne id="3140" begin="3" end="3"/>
-			<lne id="3141" begin="2" end="4"/>
-			<lne id="3142" begin="5" end="5"/>
-			<lne id="3143" begin="2" end="6"/>
-			<lne id="3144" begin="7" end="7"/>
-			<lne id="3145" begin="8" end="8"/>
-			<lne id="3146" begin="7" end="9"/>
-			<lne id="3147" begin="1" end="10"/>
-			<lne id="3148" begin="1" end="11"/>
-			<lne id="3149" begin="0" end="12"/>
+			<lne id="3159" begin="0" end="0"/>
+			<lne id="3160" begin="1" end="1"/>
+			<lne id="3161" begin="2" end="2"/>
+			<lne id="3162" begin="3" end="3"/>
+			<lne id="3163" begin="2" end="4"/>
+			<lne id="3164" begin="5" end="5"/>
+			<lne id="3165" begin="2" end="6"/>
+			<lne id="3166" begin="7" end="7"/>
+			<lne id="3167" begin="8" end="8"/>
+			<lne id="3168" begin="7" end="9"/>
+			<lne id="3169" begin="1" end="10"/>
+			<lne id="3170" begin="1" end="11"/>
+			<lne id="3171" begin="0" end="12"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="12"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3150">
+	<operation name="3172">
 		<context type="121"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<push arg="721"/>
-			<call arg="723"/>
+			<push arg="750"/>
+			<call arg="752"/>
 			<store arg="105"/>
 			<getasm/>
 			<load arg="505"/>
 			<load arg="505"/>
-			<push arg="3121"/>
-			<call arg="723"/>
+			<push arg="3143"/>
+			<call arg="752"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="105"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
 			<load arg="505"/>
 			<load arg="105"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<push arg="3122"/>
-			<call arg="723"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
-			<call arg="3151"/>
+			<push arg="3144"/>
+			<call arg="752"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
+			<call arg="3173"/>
 		</code>
 		<linenumbertable>
-			<lne id="3152" begin="0" end="0"/>
-			<lne id="3153" begin="1" end="1"/>
-			<lne id="3154" begin="0" end="2"/>
-			<lne id="3155" begin="4" end="4"/>
-			<lne id="3156" begin="5" end="5"/>
-			<lne id="3157" begin="6" end="6"/>
-			<lne id="3158" begin="7" end="7"/>
-			<lne id="3159" begin="6" end="8"/>
-			<lne id="3160" begin="9" end="9"/>
-			<lne id="3161" begin="6" end="10"/>
-			<lne id="3162" begin="11" end="11"/>
-			<lne id="3163" begin="5" end="12"/>
-			<lne id="3164" begin="5" end="13"/>
-			<lne id="3165" begin="14" end="14"/>
-			<lne id="3166" begin="15" end="15"/>
-			<lne id="3167" begin="16" end="16"/>
-			<lne id="3168" begin="15" end="17"/>
-			<lne id="3169" begin="18" end="18"/>
-			<lne id="3170" begin="19" end="19"/>
-			<lne id="3171" begin="18" end="20"/>
-			<lne id="3172" begin="14" end="21"/>
-			<lne id="3173" begin="14" end="22"/>
-			<lne id="3174" begin="4" end="23"/>
-			<lne id="3175" begin="0" end="23"/>
+			<lne id="3174" begin="0" end="0"/>
+			<lne id="3175" begin="1" end="1"/>
+			<lne id="3176" begin="0" end="2"/>
+			<lne id="3177" begin="4" end="4"/>
+			<lne id="3178" begin="5" end="5"/>
+			<lne id="3179" begin="6" end="6"/>
+			<lne id="3180" begin="7" end="7"/>
+			<lne id="3181" begin="6" end="8"/>
+			<lne id="3182" begin="9" end="9"/>
+			<lne id="3183" begin="6" end="10"/>
+			<lne id="3184" begin="11" end="11"/>
+			<lne id="3185" begin="5" end="12"/>
+			<lne id="3186" begin="5" end="13"/>
+			<lne id="3187" begin="14" end="14"/>
+			<lne id="3188" begin="15" end="15"/>
+			<lne id="3189" begin="16" end="16"/>
+			<lne id="3190" begin="15" end="17"/>
+			<lne id="3191" begin="18" end="18"/>
+			<lne id="3192" begin="19" end="19"/>
+			<lne id="3193" begin="18" end="20"/>
+			<lne id="3194" begin="14" end="21"/>
+			<lne id="3195" begin="14" end="22"/>
+			<lne id="3196" begin="4" end="23"/>
+			<lne id="3197" begin="0" end="23"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="3176" begin="3" end="23"/>
+			<lve slot="1" name="3198" begin="3" end="23"/>
 			<lve slot="0" name="103" begin="0" end="23"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3177">
+	<operation name="3199">
 		<context type="121"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<push arg="721"/>
-			<call arg="723"/>
+			<push arg="750"/>
+			<call arg="752"/>
 			<store arg="105"/>
 			<getasm/>
 			<load arg="505"/>
 			<load arg="505"/>
-			<push arg="3121"/>
-			<call arg="723"/>
+			<push arg="3143"/>
+			<call arg="752"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="105"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
 			<load arg="505"/>
 			<load arg="105"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<push arg="3122"/>
-			<call arg="723"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
-			<call arg="3178"/>
+			<push arg="3144"/>
+			<call arg="752"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
+			<call arg="3200"/>
 		</code>
 		<linenumbertable>
-			<lne id="3179" begin="0" end="0"/>
-			<lne id="3180" begin="1" end="1"/>
-			<lne id="3181" begin="0" end="2"/>
-			<lne id="3182" begin="4" end="4"/>
-			<lne id="3183" begin="5" end="5"/>
-			<lne id="3184" begin="6" end="6"/>
-			<lne id="3185" begin="7" end="7"/>
-			<lne id="3186" begin="6" end="8"/>
-			<lne id="3187" begin="9" end="9"/>
-			<lne id="3188" begin="6" end="10"/>
-			<lne id="3189" begin="11" end="11"/>
-			<lne id="3190" begin="5" end="12"/>
-			<lne id="3191" begin="5" end="13"/>
-			<lne id="3192" begin="14" end="14"/>
-			<lne id="3193" begin="15" end="15"/>
-			<lne id="3194" begin="16" end="16"/>
-			<lne id="3195" begin="15" end="17"/>
-			<lne id="3196" begin="18" end="18"/>
-			<lne id="3197" begin="19" end="19"/>
-			<lne id="3198" begin="18" end="20"/>
-			<lne id="3199" begin="14" end="21"/>
-			<lne id="3200" begin="14" end="22"/>
-			<lne id="3201" begin="4" end="23"/>
-			<lne id="3202" begin="0" end="23"/>
+			<lne id="3201" begin="0" end="0"/>
+			<lne id="3202" begin="1" end="1"/>
+			<lne id="3203" begin="0" end="2"/>
+			<lne id="3204" begin="4" end="4"/>
+			<lne id="3205" begin="5" end="5"/>
+			<lne id="3206" begin="6" end="6"/>
+			<lne id="3207" begin="7" end="7"/>
+			<lne id="3208" begin="6" end="8"/>
+			<lne id="3209" begin="9" end="9"/>
+			<lne id="3210" begin="6" end="10"/>
+			<lne id="3211" begin="11" end="11"/>
+			<lne id="3212" begin="5" end="12"/>
+			<lne id="3213" begin="5" end="13"/>
+			<lne id="3214" begin="14" end="14"/>
+			<lne id="3215" begin="15" end="15"/>
+			<lne id="3216" begin="16" end="16"/>
+			<lne id="3217" begin="15" end="17"/>
+			<lne id="3218" begin="18" end="18"/>
+			<lne id="3219" begin="19" end="19"/>
+			<lne id="3220" begin="18" end="20"/>
+			<lne id="3221" begin="14" end="21"/>
+			<lne id="3222" begin="14" end="22"/>
+			<lne id="3223" begin="4" end="23"/>
+			<lne id="3224" begin="0" end="23"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="3176" begin="3" end="23"/>
+			<lve slot="1" name="3198" begin="3" end="23"/>
 			<lve slot="0" name="103" begin="0" end="23"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3203">
+	<operation name="3225">
 		<context type="121"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<push arg="721"/>
-			<call arg="723"/>
+			<push arg="750"/>
+			<call arg="752"/>
 			<store arg="105"/>
 			<getasm/>
 			<load arg="505"/>
 			<load arg="505"/>
-			<push arg="3121"/>
-			<call arg="723"/>
+			<push arg="3143"/>
+			<call arg="752"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="105"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
 			<load arg="505"/>
 			<load arg="105"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<push arg="3122"/>
-			<call arg="723"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
-			<call arg="3204"/>
+			<push arg="3144"/>
+			<call arg="752"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
+			<call arg="3226"/>
 		</code>
 		<linenumbertable>
-			<lne id="3205" begin="0" end="0"/>
-			<lne id="3206" begin="1" end="1"/>
-			<lne id="3207" begin="0" end="2"/>
-			<lne id="3208" begin="4" end="4"/>
-			<lne id="3209" begin="5" end="5"/>
-			<lne id="3210" begin="6" end="6"/>
-			<lne id="3211" begin="7" end="7"/>
-			<lne id="3212" begin="6" end="8"/>
-			<lne id="3213" begin="9" end="9"/>
-			<lne id="3214" begin="6" end="10"/>
-			<lne id="3215" begin="11" end="11"/>
-			<lne id="3216" begin="5" end="12"/>
-			<lne id="3217" begin="5" end="13"/>
-			<lne id="3218" begin="14" end="14"/>
-			<lne id="3219" begin="15" end="15"/>
-			<lne id="3220" begin="16" end="16"/>
-			<lne id="3221" begin="15" end="17"/>
-			<lne id="3222" begin="18" end="18"/>
-			<lne id="3223" begin="19" end="19"/>
-			<lne id="3224" begin="18" end="20"/>
-			<lne id="3225" begin="14" end="21"/>
-			<lne id="3226" begin="14" end="22"/>
-			<lne id="3227" begin="4" end="23"/>
-			<lne id="3228" begin="0" end="23"/>
+			<lne id="3227" begin="0" end="0"/>
+			<lne id="3228" begin="1" end="1"/>
+			<lne id="3229" begin="0" end="2"/>
+			<lne id="3230" begin="4" end="4"/>
+			<lne id="3231" begin="5" end="5"/>
+			<lne id="3232" begin="6" end="6"/>
+			<lne id="3233" begin="7" end="7"/>
+			<lne id="3234" begin="6" end="8"/>
+			<lne id="3235" begin="9" end="9"/>
+			<lne id="3236" begin="6" end="10"/>
+			<lne id="3237" begin="11" end="11"/>
+			<lne id="3238" begin="5" end="12"/>
+			<lne id="3239" begin="5" end="13"/>
+			<lne id="3240" begin="14" end="14"/>
+			<lne id="3241" begin="15" end="15"/>
+			<lne id="3242" begin="16" end="16"/>
+			<lne id="3243" begin="15" end="17"/>
+			<lne id="3244" begin="18" end="18"/>
+			<lne id="3245" begin="19" end="19"/>
+			<lne id="3246" begin="18" end="20"/>
+			<lne id="3247" begin="14" end="21"/>
+			<lne id="3248" begin="14" end="22"/>
+			<lne id="3249" begin="4" end="23"/>
+			<lne id="3250" begin="0" end="23"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="3176" begin="3" end="23"/>
+			<lve slot="1" name="3198" begin="3" end="23"/>
 			<lve slot="0" name="103" begin="0" end="23"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3229">
+	<operation name="3251">
 		<context type="121"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<push arg="721"/>
-			<call arg="723"/>
+			<push arg="750"/>
+			<call arg="752"/>
 			<store arg="105"/>
 			<getasm/>
 			<load arg="505"/>
 			<load arg="505"/>
-			<push arg="3121"/>
-			<call arg="723"/>
+			<push arg="3143"/>
+			<call arg="752"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="105"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
 			<load arg="505"/>
 			<load arg="105"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<push arg="3122"/>
-			<call arg="723"/>
-			<call arg="2070"/>
-			<call arg="1333"/>
-			<call arg="3230"/>
+			<push arg="3144"/>
+			<call arg="752"/>
+			<call arg="2093"/>
+			<call arg="1357"/>
+			<call arg="3252"/>
 		</code>
 		<linenumbertable>
-			<lne id="3231" begin="0" end="0"/>
-			<lne id="3232" begin="1" end="1"/>
-			<lne id="3233" begin="0" end="2"/>
-			<lne id="3234" begin="4" end="4"/>
-			<lne id="3235" begin="5" end="5"/>
-			<lne id="3236" begin="6" end="6"/>
-			<lne id="3237" begin="7" end="7"/>
-			<lne id="3238" begin="6" end="8"/>
-			<lne id="3239" begin="9" end="9"/>
-			<lne id="3240" begin="6" end="10"/>
-			<lne id="3241" begin="11" end="11"/>
-			<lne id="3242" begin="5" end="12"/>
-			<lne id="3243" begin="5" end="13"/>
-			<lne id="3244" begin="14" end="14"/>
-			<lne id="3245" begin="15" end="15"/>
-			<lne id="3246" begin="16" end="16"/>
-			<lne id="3247" begin="15" end="17"/>
-			<lne id="3248" begin="18" end="18"/>
-			<lne id="3249" begin="19" end="19"/>
-			<lne id="3250" begin="18" end="20"/>
-			<lne id="3251" begin="14" end="21"/>
-			<lne id="3252" begin="14" end="22"/>
-			<lne id="3253" begin="4" end="23"/>
-			<lne id="3254" begin="0" end="23"/>
+			<lne id="3253" begin="0" end="0"/>
+			<lne id="3254" begin="1" end="1"/>
+			<lne id="3255" begin="0" end="2"/>
+			<lne id="3256" begin="4" end="4"/>
+			<lne id="3257" begin="5" end="5"/>
+			<lne id="3258" begin="6" end="6"/>
+			<lne id="3259" begin="7" end="7"/>
+			<lne id="3260" begin="6" end="8"/>
+			<lne id="3261" begin="9" end="9"/>
+			<lne id="3262" begin="6" end="10"/>
+			<lne id="3263" begin="11" end="11"/>
+			<lne id="3264" begin="5" end="12"/>
+			<lne id="3265" begin="5" end="13"/>
+			<lne id="3266" begin="14" end="14"/>
+			<lne id="3267" begin="15" end="15"/>
+			<lne id="3268" begin="16" end="16"/>
+			<lne id="3269" begin="15" end="17"/>
+			<lne id="3270" begin="18" end="18"/>
+			<lne id="3271" begin="19" end="19"/>
+			<lne id="3272" begin="18" end="20"/>
+			<lne id="3273" begin="14" end="21"/>
+			<lne id="3274" begin="14" end="22"/>
+			<lne id="3275" begin="4" end="23"/>
+			<lne id="3276" begin="0" end="23"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="3176" begin="3" end="23"/>
+			<lve slot="1" name="3198" begin="3" end="23"/>
 			<lve slot="0" name="103" begin="0" end="23"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3255">
+	<operation name="3277">
 		<context type="482"/>
 		<parameters>
 		</parameters>
@@ -12923,16 +13056,16 @@
 			<call arg="141"/>
 		</code>
 		<linenumbertable>
-			<lne id="3256" begin="0" end="0"/>
-			<lne id="3257" begin="0" end="1"/>
-			<lne id="3258" begin="0" end="2"/>
+			<lne id="3278" begin="0" end="0"/>
+			<lne id="3279" begin="0" end="1"/>
+			<lne id="3280" begin="0" end="2"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="2"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3259">
-		<context type="3260"/>
+	<operation name="3281">
+		<context type="3282"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -12946,7 +13079,7 @@
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="3261"/>
+			<get arg="3283"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
@@ -12957,21 +13090,21 @@
 			<call arg="141"/>
 		</code>
 		<linenumbertable>
-			<lne id="3262" begin="3" end="5"/>
-			<lne id="3263" begin="3" end="6"/>
-			<lne id="3264" begin="9" end="9"/>
-			<lne id="3265" begin="9" end="10"/>
-			<lne id="3266" begin="11" end="11"/>
-			<lne id="3267" begin="9" end="12"/>
-			<lne id="3268" begin="0" end="17"/>
-			<lne id="3269" begin="0" end="18"/>
+			<lne id="3284" begin="3" end="5"/>
+			<lne id="3285" begin="3" end="6"/>
+			<lne id="3286" begin="9" end="9"/>
+			<lne id="3287" begin="9" end="10"/>
+			<lne id="3288" begin="11" end="11"/>
+			<lne id="3289" begin="9" end="12"/>
+			<lne id="3290" begin="0" end="17"/>
+			<lne id="3291" begin="0" end="18"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="3270" begin="8" end="16"/>
+			<lve slot="1" name="3292" begin="8" end="16"/>
 			<lve slot="0" name="103" begin="0" end="18"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3259">
+	<operation name="3281">
 		<context type="482"/>
 		<parameters>
 		</parameters>
@@ -12986,7 +13119,7 @@
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="3271"/>
+			<get arg="3293"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
@@ -13004,7 +13137,7 @@
 			<call arg="227"/>
 			<if arg="483"/>
 			<load arg="505"/>
-			<call arg="3272"/>
+			<call arg="3294"/>
 			<store arg="114"/>
 			<load arg="114"/>
 			<push arg="32"/>
@@ -13014,46 +13147,46 @@
 			<call arg="145"/>
 			<if arg="197"/>
 			<load arg="114"/>
-			<call arg="3273"/>
-			<goto arg="2811"/>
+			<call arg="3295"/>
+			<goto arg="2833"/>
 			<load arg="114"/>
-			<goto arg="1735"/>
+			<goto arg="1759"/>
 			<load arg="105"/>
 		</code>
 		<linenumbertable>
-			<lne id="3274" begin="3" end="5"/>
-			<lne id="3275" begin="3" end="6"/>
-			<lne id="3276" begin="9" end="9"/>
-			<lne id="3277" begin="9" end="10"/>
-			<lne id="3278" begin="11" end="11"/>
-			<lne id="3279" begin="9" end="12"/>
-			<lne id="3280" begin="0" end="17"/>
-			<lne id="3281" begin="0" end="18"/>
-			<lne id="3282" begin="20" end="20"/>
-			<lne id="3283" begin="21" end="24"/>
-			<lne id="3284" begin="20" end="25"/>
-			<lne id="3285" begin="27" end="27"/>
-			<lne id="3286" begin="27" end="28"/>
-			<lne id="3287" begin="30" end="30"/>
-			<lne id="3288" begin="31" end="34"/>
-			<lne id="3289" begin="30" end="35"/>
-			<lne id="3290" begin="37" end="37"/>
-			<lne id="3291" begin="37" end="38"/>
-			<lne id="3292" begin="40" end="40"/>
-			<lne id="3293" begin="30" end="40"/>
-			<lne id="3294" begin="27" end="40"/>
-			<lne id="3295" begin="42" end="42"/>
-			<lne id="3296" begin="20" end="42"/>
-			<lne id="3297" begin="0" end="42"/>
+			<lne id="3296" begin="3" end="5"/>
+			<lne id="3297" begin="3" end="6"/>
+			<lne id="3298" begin="9" end="9"/>
+			<lne id="3299" begin="9" end="10"/>
+			<lne id="3300" begin="11" end="11"/>
+			<lne id="3301" begin="9" end="12"/>
+			<lne id="3302" begin="0" end="17"/>
+			<lne id="3303" begin="0" end="18"/>
+			<lne id="3304" begin="20" end="20"/>
+			<lne id="3305" begin="21" end="24"/>
+			<lne id="3306" begin="20" end="25"/>
+			<lne id="3307" begin="27" end="27"/>
+			<lne id="3308" begin="27" end="28"/>
+			<lne id="3309" begin="30" end="30"/>
+			<lne id="3310" begin="31" end="34"/>
+			<lne id="3311" begin="30" end="35"/>
+			<lne id="3312" begin="37" end="37"/>
+			<lne id="3313" begin="37" end="38"/>
+			<lne id="3314" begin="40" end="40"/>
+			<lne id="3315" begin="30" end="40"/>
+			<lne id="3316" begin="27" end="40"/>
+			<lne id="3317" begin="42" end="42"/>
+			<lne id="3318" begin="20" end="42"/>
+			<lne id="3319" begin="0" end="42"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="3270" begin="8" end="16"/>
-			<lve slot="2" name="3298" begin="29" end="40"/>
-			<lve slot="1" name="3299" begin="19" end="42"/>
+			<lve slot="1" name="3292" begin="8" end="16"/>
+			<lve slot="2" name="3320" begin="29" end="40"/>
+			<lve slot="1" name="3321" begin="19" end="42"/>
 			<lve slot="0" name="103" begin="0" end="42"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3300">
+	<operation name="3322">
 		<context type="482"/>
 		<parameters>
 		</parameters>
@@ -13067,22 +13200,22 @@
 			<call arg="227"/>
 		</code>
 		<linenumbertable>
-			<lne id="3301" begin="0" end="0"/>
-			<lne id="3302" begin="0" end="1"/>
-			<lne id="3303" begin="2" end="5"/>
-			<lne id="3304" begin="0" end="6"/>
+			<lne id="3323" begin="0" end="0"/>
+			<lne id="3324" begin="0" end="1"/>
+			<lne id="3325" begin="2" end="5"/>
+			<lne id="3326" begin="0" end="6"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="6"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3305">
+	<operation name="3327">
 		<context type="482"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<call arg="3306"/>
+			<call arg="3328"/>
 			<store arg="105"/>
 			<load arg="105"/>
 			<push arg="32"/>
@@ -13090,34 +13223,34 @@
 			<new/>
 			<call arg="226"/>
 			<call arg="145"/>
-			<if arg="515"/>
+			<if arg="520"/>
 			<load arg="105"/>
-			<goto arg="1145"/>
+			<goto arg="1169"/>
 			<load arg="505"/>
 			<get arg="214"/>
 			<call arg="141"/>
-			<call arg="3307"/>
+			<call arg="3329"/>
 		</code>
 		<linenumbertable>
-			<lne id="3308" begin="0" end="0"/>
-			<lne id="3309" begin="0" end="1"/>
-			<lne id="3310" begin="3" end="3"/>
-			<lne id="3311" begin="4" end="7"/>
-			<lne id="3312" begin="3" end="8"/>
-			<lne id="3313" begin="10" end="10"/>
-			<lne id="3314" begin="12" end="12"/>
-			<lne id="3315" begin="12" end="13"/>
-			<lne id="3316" begin="12" end="14"/>
-			<lne id="3317" begin="12" end="15"/>
-			<lne id="3318" begin="3" end="15"/>
-			<lne id="3319" begin="0" end="15"/>
+			<lne id="3330" begin="0" end="0"/>
+			<lne id="3331" begin="0" end="1"/>
+			<lne id="3332" begin="3" end="3"/>
+			<lne id="3333" begin="4" end="7"/>
+			<lne id="3334" begin="3" end="8"/>
+			<lne id="3335" begin="10" end="10"/>
+			<lne id="3336" begin="12" end="12"/>
+			<lne id="3337" begin="12" end="13"/>
+			<lne id="3338" begin="12" end="14"/>
+			<lne id="3339" begin="12" end="15"/>
+			<lne id="3340" begin="3" end="15"/>
+			<lne id="3341" begin="0" end="15"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="208" begin="2" end="15"/>
 			<lve slot="0" name="103" begin="0" end="15"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3320">
+	<operation name="3342">
 		<context type="482"/>
 		<parameters>
 		</parameters>
@@ -13140,38 +13273,38 @@
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="3271"/>
+			<get arg="3293"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="1096"/>
+			<if arg="1122"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="141"/>
 		</code>
 		<linenumbertable>
-			<lne id="3321" begin="6" end="6"/>
-			<lne id="3322" begin="6" end="7"/>
-			<lne id="3323" begin="10" end="10"/>
-			<lne id="3324" begin="10" end="11"/>
-			<lne id="3325" begin="3" end="13"/>
-			<lne id="3326" begin="3" end="14"/>
-			<lne id="3327" begin="17" end="17"/>
-			<lne id="3328" begin="17" end="18"/>
-			<lne id="3329" begin="19" end="19"/>
-			<lne id="3330" begin="17" end="20"/>
-			<lne id="3331" begin="0" end="25"/>
-			<lne id="3332" begin="0" end="26"/>
+			<lne id="3343" begin="6" end="6"/>
+			<lne id="3344" begin="6" end="7"/>
+			<lne id="3345" begin="10" end="10"/>
+			<lne id="3346" begin="10" end="11"/>
+			<lne id="3347" begin="3" end="13"/>
+			<lne id="3348" begin="3" end="14"/>
+			<lne id="3349" begin="17" end="17"/>
+			<lne id="3350" begin="17" end="18"/>
+			<lne id="3351" begin="19" end="19"/>
+			<lne id="3352" begin="17" end="20"/>
+			<lne id="3353" begin="0" end="25"/>
+			<lne id="3354" begin="0" end="26"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="208" begin="9" end="12"/>
-			<lve slot="1" name="655" begin="16" end="24"/>
+			<lve slot="1" name="685" begin="16" end="24"/>
 			<lve slot="0" name="103" begin="0" end="26"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3333">
-		<context type="3334"/>
+	<operation name="3355">
+		<context type="3356"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -13193,53 +13326,53 @@
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="3261"/>
+			<get arg="3283"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="1096"/>
+			<if arg="1122"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="141"/>
 		</code>
 		<linenumbertable>
-			<lne id="3335" begin="6" end="6"/>
-			<lne id="3336" begin="6" end="7"/>
-			<lne id="3337" begin="10" end="10"/>
-			<lne id="3338" begin="10" end="11"/>
-			<lne id="3339" begin="3" end="13"/>
-			<lne id="3340" begin="3" end="14"/>
-			<lne id="3341" begin="17" end="17"/>
-			<lne id="3342" begin="17" end="18"/>
-			<lne id="3343" begin="19" end="19"/>
-			<lne id="3344" begin="17" end="20"/>
-			<lne id="3345" begin="0" end="25"/>
-			<lne id="3346" begin="0" end="26"/>
+			<lne id="3357" begin="6" end="6"/>
+			<lne id="3358" begin="6" end="7"/>
+			<lne id="3359" begin="10" end="10"/>
+			<lne id="3360" begin="10" end="11"/>
+			<lne id="3361" begin="3" end="13"/>
+			<lne id="3362" begin="3" end="14"/>
+			<lne id="3363" begin="17" end="17"/>
+			<lne id="3364" begin="17" end="18"/>
+			<lne id="3365" begin="19" end="19"/>
+			<lne id="3366" begin="17" end="20"/>
+			<lne id="3367" begin="0" end="25"/>
+			<lne id="3368" begin="0" end="26"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="208" begin="9" end="12"/>
-			<lve slot="1" name="655" begin="16" end="24"/>
+			<lve slot="1" name="685" begin="16" end="24"/>
 			<lve slot="0" name="103" begin="0" end="26"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3347">
+	<operation name="3369">
 		<context type="482"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<call arg="3348"/>
+			<call arg="3370"/>
 			<load arg="505"/>
-			<call arg="3349"/>
+			<call arg="3371"/>
 			<call arg="215"/>
-			<call arg="3058"/>
-			<if arg="1965"/>
+			<call arg="3080"/>
+			<if arg="1989"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<call arg="3349"/>
+			<call arg="3371"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
@@ -13247,7 +13380,7 @@
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="205"/>
-			<goto arg="1096"/>
+			<goto arg="1122"/>
 			<push arg="33"/>
 			<push arg="26"/>
 			<new/>
@@ -13255,29 +13388,29 @@
 			<call arg="36"/>
 		</code>
 		<linenumbertable>
-			<lne id="3350" begin="0" end="0"/>
-			<lne id="3351" begin="0" end="1"/>
-			<lne id="3352" begin="2" end="2"/>
-			<lne id="3353" begin="2" end="3"/>
-			<lne id="3354" begin="2" end="4"/>
-			<lne id="3355" begin="0" end="5"/>
-			<lne id="3356" begin="10" end="10"/>
-			<lne id="3357" begin="10" end="11"/>
-			<lne id="3358" begin="14" end="14"/>
-			<lne id="3359" begin="14" end="15"/>
-			<lne id="3360" begin="7" end="17"/>
-			<lne id="3361" begin="7" end="18"/>
-			<lne id="3362" begin="23" end="23"/>
-			<lne id="3363" begin="20" end="24"/>
-			<lne id="3364" begin="0" end="24"/>
+			<lne id="3372" begin="0" end="0"/>
+			<lne id="3373" begin="0" end="1"/>
+			<lne id="3374" begin="2" end="2"/>
+			<lne id="3375" begin="2" end="3"/>
+			<lne id="3376" begin="2" end="4"/>
+			<lne id="3377" begin="0" end="5"/>
+			<lne id="3378" begin="10" end="10"/>
+			<lne id="3379" begin="10" end="11"/>
+			<lne id="3380" begin="14" end="14"/>
+			<lne id="3381" begin="14" end="15"/>
+			<lne id="3382" begin="7" end="17"/>
+			<lne id="3383" begin="7" end="18"/>
+			<lne id="3384" begin="23" end="23"/>
+			<lne id="3385" begin="20" end="24"/>
+			<lne id="3386" begin="0" end="24"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="470" begin="13" end="16"/>
 			<lve slot="0" name="103" begin="0" end="24"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3305">
-		<context type="2951"/>
+	<operation name="3327">
+		<context type="2973"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -13299,38 +13432,38 @@
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="1510"/>
+			<get arg="1534"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="1096"/>
+			<if arg="1122"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="141"/>
 		</code>
 		<linenumbertable>
-			<lne id="3365" begin="6" end="6"/>
-			<lne id="3366" begin="6" end="7"/>
-			<lne id="3367" begin="10" end="10"/>
-			<lne id="3368" begin="10" end="11"/>
-			<lne id="3369" begin="3" end="13"/>
-			<lne id="3370" begin="3" end="14"/>
-			<lne id="3371" begin="17" end="17"/>
-			<lne id="3372" begin="17" end="18"/>
-			<lne id="3373" begin="19" end="19"/>
-			<lne id="3374" begin="17" end="20"/>
-			<lne id="3375" begin="0" end="25"/>
-			<lne id="3376" begin="0" end="26"/>
+			<lne id="3387" begin="6" end="6"/>
+			<lne id="3388" begin="6" end="7"/>
+			<lne id="3389" begin="10" end="10"/>
+			<lne id="3390" begin="10" end="11"/>
+			<lne id="3391" begin="3" end="13"/>
+			<lne id="3392" begin="3" end="14"/>
+			<lne id="3393" begin="17" end="17"/>
+			<lne id="3394" begin="17" end="18"/>
+			<lne id="3395" begin="19" end="19"/>
+			<lne id="3396" begin="17" end="20"/>
+			<lne id="3397" begin="0" end="25"/>
+			<lne id="3398" begin="0" end="26"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="208" begin="9" end="12"/>
-			<lve slot="1" name="1946" begin="16" end="24"/>
+			<lve slot="1" name="1970" begin="16" end="24"/>
 			<lve slot="0" name="103" begin="0" end="26"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3300">
-		<context type="2951"/>
+	<operation name="3322">
+		<context type="2973"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -13340,16 +13473,16 @@
 			<call arg="217"/>
 		</code>
 		<linenumbertable>
-			<lne id="3377" begin="0" end="0"/>
-			<lne id="3378" begin="0" end="1"/>
-			<lne id="3379" begin="0" end="2"/>
-			<lne id="3380" begin="0" end="3"/>
+			<lne id="3399" begin="0" end="0"/>
+			<lne id="3400" begin="0" end="1"/>
+			<lne id="3401" begin="0" end="2"/>
+			<lne id="3402" begin="0" end="3"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="3"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3381">
+	<operation name="3403">
 		<context type="482"/>
 		<parameters>
 		</parameters>
@@ -13358,15 +13491,15 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<get arg="653"/>
+			<get arg="3404"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="2586"/>
-			<push arg="3382"/>
+			<get arg="510"/>
+			<push arg="512"/>
 			<push arg="60"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<call arg="196"/>
 			<if arg="112"/>
 			<load arg="105"/>
@@ -13374,20 +13507,20 @@
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="3383" begin="3" end="3"/>
-			<lne id="3384" begin="3" end="4"/>
-			<lne id="3385" begin="7" end="7"/>
-			<lne id="3386" begin="7" end="8"/>
-			<lne id="3387" begin="9" end="11"/>
-			<lne id="3388" begin="7" end="12"/>
-			<lne id="3389" begin="0" end="17"/>
+			<lne id="3405" begin="3" end="3"/>
+			<lne id="3406" begin="3" end="4"/>
+			<lne id="3407" begin="7" end="7"/>
+			<lne id="3408" begin="7" end="8"/>
+			<lne id="3409" begin="9" end="11"/>
+			<lne id="3410" begin="7" end="12"/>
+			<lne id="3411" begin="0" end="17"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="208" begin="6" end="16"/>
 			<lve slot="0" name="103" begin="0" end="17"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3390">
+	<operation name="3412">
 		<context type="482"/>
 		<parameters>
 		</parameters>
@@ -13396,15 +13529,15 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<get arg="653"/>
+			<get arg="3404"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="2586"/>
-			<push arg="3382"/>
+			<get arg="510"/>
+			<push arg="512"/>
 			<push arg="60"/>
 			<findme/>
-			<call arg="839"/>
+			<call arg="513"/>
 			<call arg="217"/>
 			<call arg="196"/>
 			<if arg="107"/>
@@ -13413,21 +13546,21 @@
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="3391" begin="3" end="3"/>
-			<lne id="3392" begin="3" end="4"/>
-			<lne id="3393" begin="7" end="7"/>
-			<lne id="3394" begin="7" end="8"/>
-			<lne id="3395" begin="9" end="11"/>
-			<lne id="3396" begin="7" end="12"/>
-			<lne id="3397" begin="7" end="13"/>
-			<lne id="3398" begin="0" end="18"/>
+			<lne id="3413" begin="3" end="3"/>
+			<lne id="3414" begin="3" end="4"/>
+			<lne id="3415" begin="7" end="7"/>
+			<lne id="3416" begin="7" end="8"/>
+			<lne id="3417" begin="9" end="11"/>
+			<lne id="3418" begin="7" end="12"/>
+			<lne id="3419" begin="7" end="13"/>
+			<lne id="3420" begin="0" end="18"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="208" begin="6" end="17"/>
 			<lve slot="0" name="103" begin="0" end="18"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3399">
+	<operation name="3421">
 		<context type="482"/>
 		<parameters>
 		</parameters>
@@ -13436,122 +13569,122 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<call arg="3400"/>
+			<call arg="3422"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
+			<get arg="2610"/>
 			<call arg="36"/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="3401" begin="3" end="3"/>
-			<lne id="3402" begin="3" end="4"/>
-			<lne id="3403" begin="7" end="7"/>
-			<lne id="3404" begin="7" end="8"/>
-			<lne id="3405" begin="7" end="9"/>
-			<lne id="3406" begin="7" end="10"/>
-			<lne id="3407" begin="0" end="12"/>
+			<lne id="3423" begin="3" end="3"/>
+			<lne id="3424" begin="3" end="4"/>
+			<lne id="3425" begin="7" end="7"/>
+			<lne id="3426" begin="7" end="8"/>
+			<lne id="3427" begin="7" end="9"/>
+			<lne id="3428" begin="7" end="10"/>
+			<lne id="3429" begin="0" end="12"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="208" begin="6" end="11"/>
 			<lve slot="0" name="103" begin="0" end="12"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3408">
+	<operation name="3430">
 		<context type="482"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 		</parameters>
 		<code>
 			<load arg="105"/>
-			<call arg="3349"/>
+			<call arg="3371"/>
 			<load arg="505"/>
 			<call arg="201"/>
 		</code>
 		<linenumbertable>
-			<lne id="3409" begin="0" end="0"/>
-			<lne id="3410" begin="0" end="1"/>
-			<lne id="3411" begin="2" end="2"/>
-			<lne id="3412" begin="0" end="3"/>
+			<lne id="3431" begin="0" end="0"/>
+			<lne id="3432" begin="0" end="1"/>
+			<lne id="3433" begin="2" end="2"/>
+			<lne id="3434" begin="0" end="3"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="3"/>
-			<lve slot="1" name="3413" begin="0" end="3"/>
+			<lve slot="1" name="3435" begin="0" end="3"/>
 		</localvariabletable>
 	</operation>
 	<operation name="62">
-		<context type="3414"/>
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<get arg="61"/>
 		</code>
 		<linenumbertable>
-			<lne id="3415" begin="0" end="0"/>
-			<lne id="3416" begin="0" end="1"/>
-			<lne id="3417" begin="0" end="2"/>
+			<lne id="3437" begin="0" end="0"/>
+			<lne id="3438" begin="0" end="1"/>
+			<lne id="3439" begin="0" end="2"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="2"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3418">
-		<context type="3414"/>
+	<operation name="3440">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="2586"/>
-			<call arg="1009"/>
+			<get arg="510"/>
+			<call arg="1035"/>
 		</code>
 		<linenumbertable>
-			<lne id="3419" begin="0" end="0"/>
-			<lne id="3420" begin="0" end="1"/>
-			<lne id="3421" begin="0" end="2"/>
+			<lne id="3441" begin="0" end="0"/>
+			<lne id="3442" begin="0" end="1"/>
+			<lne id="3443" begin="0" end="2"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="2"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3422">
-		<context type="3414"/>
+	<operation name="3444">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="2586"/>
-			<call arg="510"/>
+			<get arg="510"/>
+			<call arg="515"/>
 		</code>
 		<linenumbertable>
-			<lne id="3423" begin="0" end="0"/>
-			<lne id="3424" begin="0" end="1"/>
-			<lne id="3425" begin="0" end="2"/>
+			<lne id="3445" begin="0" end="0"/>
+			<lne id="3446" begin="0" end="1"/>
+			<lne id="3447" begin="0" end="2"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="2"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3418">
-		<context type="3426"/>
+	<operation name="3440">
+		<context type="3448"/>
 		<parameters>
 		</parameters>
 		<code>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
-			<push arg="3427"/>
+			<push arg="3449"/>
 			<push arg="220"/>
 			<findme/>
 			<call arg="194"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="3428"/>
+			<get arg="3450"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
@@ -13564,14 +13697,14 @@
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
-			<push arg="3429"/>
-			<push arg="3430"/>
+			<push arg="3451"/>
+			<push arg="3452"/>
 			<findme/>
 			<call arg="194"/>
 			<iterate/>
 			<store arg="114"/>
 			<load arg="114"/>
-			<get arg="3428"/>
+			<get arg="3450"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
@@ -13581,85 +13714,132 @@
 			<enditerate/>
 			<call arg="141"/>
 			<store arg="114"/>
+			<push arg="32"/>
+			<push arg="26"/>
+			<new/>
+			<push arg="3451"/>
+			<push arg="220"/>
+			<findme/>
+			<call arg="194"/>
+			<iterate/>
+			<store arg="200"/>
+			<load arg="200"/>
+			<get arg="3450"/>
+			<load arg="505"/>
+			<call arg="145"/>
+			<call arg="196"/>
+			<if arg="1992"/>
+			<load arg="200"/>
+			<call arg="36"/>
+			<enditerate/>
+			<call arg="141"/>
+			<store arg="200"/>
 			<load arg="105"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
 			<call arg="227"/>
-			<if arg="3431"/>
+			<if arg="3453"/>
 			<load arg="114"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
 			<call arg="227"/>
-			<if arg="3432"/>
+			<if arg="3454"/>
+			<load arg="200"/>
+			<push arg="32"/>
+			<push arg="26"/>
+			<new/>
+			<call arg="226"/>
+			<call arg="227"/>
+			<if arg="2454"/>
 			<pushf/>
-			<goto arg="3433"/>
+			<goto arg="3455"/>
+			<load arg="200"/>
+			<call arg="3456"/>
+			<goto arg="3457"/>
 			<load arg="114"/>
-			<call arg="1009"/>
-			<goto arg="1507"/>
+			<call arg="1035"/>
+			<goto arg="3458"/>
 			<load arg="105"/>
-			<call arg="1009"/>
+			<call arg="1035"/>
 		</code>
 		<linenumbertable>
-			<lne id="3434" begin="3" end="5"/>
-			<lne id="3435" begin="3" end="6"/>
-			<lne id="3436" begin="9" end="9"/>
-			<lne id="3437" begin="9" end="10"/>
-			<lne id="3438" begin="11" end="11"/>
-			<lne id="3439" begin="9" end="12"/>
-			<lne id="3440" begin="0" end="17"/>
-			<lne id="3441" begin="0" end="18"/>
-			<lne id="3442" begin="23" end="25"/>
-			<lne id="3443" begin="23" end="26"/>
-			<lne id="3444" begin="29" end="29"/>
-			<lne id="3445" begin="29" end="30"/>
-			<lne id="3446" begin="31" end="31"/>
-			<lne id="3447" begin="29" end="32"/>
-			<lne id="3448" begin="20" end="37"/>
-			<lne id="3449" begin="20" end="38"/>
-			<lne id="3450" begin="40" end="40"/>
-			<lne id="3451" begin="41" end="44"/>
-			<lne id="3452" begin="40" end="45"/>
-			<lne id="3453" begin="47" end="47"/>
-			<lne id="3454" begin="48" end="51"/>
-			<lne id="3455" begin="47" end="52"/>
-			<lne id="3456" begin="54" end="54"/>
-			<lne id="3457" begin="56" end="56"/>
-			<lne id="3458" begin="56" end="57"/>
-			<lne id="3459" begin="47" end="57"/>
-			<lne id="3460" begin="59" end="59"/>
-			<lne id="3461" begin="59" end="60"/>
-			<lne id="3462" begin="40" end="60"/>
-			<lne id="3463" begin="20" end="60"/>
-			<lne id="3464" begin="0" end="60"/>
+			<lne id="3459" begin="3" end="5"/>
+			<lne id="3460" begin="3" end="6"/>
+			<lne id="3461" begin="9" end="9"/>
+			<lne id="3462" begin="9" end="10"/>
+			<lne id="3463" begin="11" end="11"/>
+			<lne id="3464" begin="9" end="12"/>
+			<lne id="3465" begin="0" end="17"/>
+			<lne id="3466" begin="0" end="18"/>
+			<lne id="3467" begin="23" end="25"/>
+			<lne id="3468" begin="23" end="26"/>
+			<lne id="3469" begin="29" end="29"/>
+			<lne id="3470" begin="29" end="30"/>
+			<lne id="3471" begin="31" end="31"/>
+			<lne id="3472" begin="29" end="32"/>
+			<lne id="3473" begin="20" end="37"/>
+			<lne id="3474" begin="20" end="38"/>
+			<lne id="3475" begin="43" end="45"/>
+			<lne id="3476" begin="43" end="46"/>
+			<lne id="3477" begin="49" end="49"/>
+			<lne id="3478" begin="49" end="50"/>
+			<lne id="3479" begin="51" end="51"/>
+			<lne id="3480" begin="49" end="52"/>
+			<lne id="3481" begin="40" end="57"/>
+			<lne id="3482" begin="40" end="58"/>
+			<lne id="3483" begin="60" end="60"/>
+			<lne id="3484" begin="61" end="64"/>
+			<lne id="3485" begin="60" end="65"/>
+			<lne id="3486" begin="67" end="67"/>
+			<lne id="3487" begin="68" end="71"/>
+			<lne id="3488" begin="67" end="72"/>
+			<lne id="3489" begin="74" end="74"/>
+			<lne id="3490" begin="75" end="78"/>
+			<lne id="3491" begin="74" end="79"/>
+			<lne id="3492" begin="81" end="81"/>
+			<lne id="3493" begin="83" end="83"/>
+			<lne id="3494" begin="83" end="84"/>
+			<lne id="3495" begin="74" end="84"/>
+			<lne id="3496" begin="86" end="86"/>
+			<lne id="3497" begin="86" end="87"/>
+			<lne id="3498" begin="67" end="87"/>
+			<lne id="3499" begin="89" end="89"/>
+			<lne id="3500" begin="89" end="90"/>
+			<lne id="3501" begin="60" end="90"/>
+			<lne id="3502" begin="40" end="90"/>
+			<lne id="3503" begin="20" end="90"/>
+			<lne id="3504" begin="0" end="90"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="485" begin="8" end="16"/>
 			<lve slot="2" name="485" begin="28" end="36"/>
-			<lve slot="2" name="3465" begin="39" end="60"/>
-			<lve slot="1" name="3466" begin="19" end="60"/>
-			<lve slot="0" name="103" begin="0" end="60"/>
+			<lve slot="3" name="485" begin="48" end="56"/>
+			<lve slot="3" name="3505" begin="59" end="90"/>
+			<lve slot="2" name="3506" begin="39" end="90"/>
+			<lve slot="1" name="3507" begin="19" end="90"/>
+			<lve slot="0" name="103" begin="0" end="90"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3422">
-		<context type="3426"/>
+	<operation name="3444">
+		<context type="3448"/>
 		<parameters>
 		</parameters>
 		<code>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
-			<push arg="3427"/>
+			<push arg="3449"/>
 			<push arg="220"/>
 			<findme/>
 			<call arg="194"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="3428"/>
+			<get arg="3450"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
@@ -13672,14 +13852,14 @@
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
-			<push arg="3429"/>
-			<push arg="3430"/>
+			<push arg="3451"/>
+			<push arg="3452"/>
 			<findme/>
 			<call arg="194"/>
 			<iterate/>
 			<store arg="114"/>
 			<load arg="114"/>
-			<get arg="3428"/>
+			<get arg="3450"/>
 			<load arg="505"/>
 			<call arg="145"/>
 			<call arg="196"/>
@@ -13689,186 +13869,298 @@
 			<enditerate/>
 			<call arg="141"/>
 			<store arg="114"/>
+			<push arg="32"/>
+			<push arg="26"/>
+			<new/>
+			<push arg="3451"/>
+			<push arg="220"/>
+			<findme/>
+			<call arg="194"/>
+			<iterate/>
+			<store arg="200"/>
+			<load arg="200"/>
+			<get arg="3450"/>
+			<load arg="505"/>
+			<call arg="145"/>
+			<call arg="196"/>
+			<if arg="1992"/>
+			<load arg="200"/>
+			<call arg="36"/>
+			<enditerate/>
+			<call arg="141"/>
+			<store arg="200"/>
 			<load arg="105"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
 			<call arg="227"/>
-			<if arg="3431"/>
+			<if arg="3453"/>
 			<load arg="114"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
 			<call arg="226"/>
 			<call arg="227"/>
-			<if arg="3432"/>
+			<if arg="3454"/>
+			<load arg="200"/>
+			<push arg="32"/>
+			<push arg="26"/>
+			<new/>
+			<call arg="226"/>
+			<call arg="227"/>
+			<if arg="2454"/>
 			<pushf/>
-			<goto arg="3433"/>
+			<goto arg="3455"/>
+			<load arg="200"/>
+			<call arg="3508"/>
+			<goto arg="3457"/>
 			<load arg="114"/>
-			<call arg="510"/>
-			<goto arg="1507"/>
+			<call arg="515"/>
+			<goto arg="3458"/>
 			<load arg="105"/>
-			<call arg="510"/>
+			<call arg="515"/>
 		</code>
 		<linenumbertable>
-			<lne id="3467" begin="3" end="5"/>
-			<lne id="3468" begin="3" end="6"/>
-			<lne id="3469" begin="9" end="9"/>
-			<lne id="3470" begin="9" end="10"/>
-			<lne id="3471" begin="11" end="11"/>
-			<lne id="3472" begin="9" end="12"/>
-			<lne id="3473" begin="0" end="17"/>
-			<lne id="3474" begin="0" end="18"/>
-			<lne id="3475" begin="23" end="25"/>
-			<lne id="3476" begin="23" end="26"/>
-			<lne id="3477" begin="29" end="29"/>
-			<lne id="3478" begin="29" end="30"/>
-			<lne id="3479" begin="31" end="31"/>
-			<lne id="3480" begin="29" end="32"/>
-			<lne id="3481" begin="20" end="37"/>
-			<lne id="3482" begin="20" end="38"/>
-			<lne id="3483" begin="40" end="40"/>
-			<lne id="3484" begin="41" end="44"/>
-			<lne id="3485" begin="40" end="45"/>
-			<lne id="3486" begin="47" end="47"/>
-			<lne id="3487" begin="48" end="51"/>
-			<lne id="3488" begin="47" end="52"/>
-			<lne id="3489" begin="54" end="54"/>
-			<lne id="3490" begin="56" end="56"/>
-			<lne id="3491" begin="56" end="57"/>
-			<lne id="3492" begin="47" end="57"/>
-			<lne id="3493" begin="59" end="59"/>
-			<lne id="3494" begin="59" end="60"/>
-			<lne id="3495" begin="40" end="60"/>
-			<lne id="3496" begin="20" end="60"/>
-			<lne id="3497" begin="0" end="60"/>
+			<lne id="3509" begin="3" end="5"/>
+			<lne id="3510" begin="3" end="6"/>
+			<lne id="3511" begin="9" end="9"/>
+			<lne id="3512" begin="9" end="10"/>
+			<lne id="3513" begin="11" end="11"/>
+			<lne id="3514" begin="9" end="12"/>
+			<lne id="3515" begin="0" end="17"/>
+			<lne id="3516" begin="0" end="18"/>
+			<lne id="3517" begin="23" end="25"/>
+			<lne id="3518" begin="23" end="26"/>
+			<lne id="3519" begin="29" end="29"/>
+			<lne id="3520" begin="29" end="30"/>
+			<lne id="3521" begin="31" end="31"/>
+			<lne id="3522" begin="29" end="32"/>
+			<lne id="3523" begin="20" end="37"/>
+			<lne id="3524" begin="20" end="38"/>
+			<lne id="3525" begin="43" end="45"/>
+			<lne id="3526" begin="43" end="46"/>
+			<lne id="3527" begin="49" end="49"/>
+			<lne id="3528" begin="49" end="50"/>
+			<lne id="3529" begin="51" end="51"/>
+			<lne id="3530" begin="49" end="52"/>
+			<lne id="3531" begin="40" end="57"/>
+			<lne id="3532" begin="40" end="58"/>
+			<lne id="3533" begin="60" end="60"/>
+			<lne id="3534" begin="61" end="64"/>
+			<lne id="3535" begin="60" end="65"/>
+			<lne id="3536" begin="67" end="67"/>
+			<lne id="3537" begin="68" end="71"/>
+			<lne id="3538" begin="67" end="72"/>
+			<lne id="3539" begin="74" end="74"/>
+			<lne id="3540" begin="75" end="78"/>
+			<lne id="3541" begin="74" end="79"/>
+			<lne id="3542" begin="81" end="81"/>
+			<lne id="3543" begin="83" end="83"/>
+			<lne id="3544" begin="83" end="84"/>
+			<lne id="3545" begin="74" end="84"/>
+			<lne id="3546" begin="86" end="86"/>
+			<lne id="3547" begin="86" end="87"/>
+			<lne id="3548" begin="67" end="87"/>
+			<lne id="3549" begin="89" end="89"/>
+			<lne id="3550" begin="89" end="90"/>
+			<lne id="3551" begin="60" end="90"/>
+			<lne id="3552" begin="40" end="90"/>
+			<lne id="3553" begin="20" end="90"/>
+			<lne id="3554" begin="0" end="90"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="485" begin="8" end="16"/>
 			<lve slot="2" name="485" begin="28" end="36"/>
-			<lve slot="2" name="3465" begin="39" end="60"/>
-			<lve slot="1" name="3466" begin="19" end="60"/>
-			<lve slot="0" name="103" begin="0" end="60"/>
+			<lve slot="3" name="485" begin="48" end="56"/>
+			<lve slot="3" name="3505" begin="59" end="90"/>
+			<lve slot="2" name="3506" begin="39" end="90"/>
+			<lve slot="1" name="3507" begin="19" end="90"/>
+			<lve slot="0" name="103" begin="0" end="90"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3418">
-		<context type="3498"/>
+	<operation name="3440">
+		<context type="3555"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="3499"/>
-			<push arg="851"/>
+			<get arg="3556"/>
+			<push arg="878"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="3500"/>
+			<push arg="3557"/>
 			<set arg="61"/>
 			<call arg="227"/>
 		</code>
 		<linenumbertable>
-			<lne id="3501" begin="0" end="0"/>
-			<lne id="3502" begin="0" end="1"/>
-			<lne id="3503" begin="2" end="7"/>
-			<lne id="3504" begin="0" end="8"/>
+			<lne id="3558" begin="0" end="0"/>
+			<lne id="3559" begin="0" end="1"/>
+			<lne id="3560" begin="2" end="7"/>
+			<lne id="3561" begin="0" end="8"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="8"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3422">
-		<context type="3498"/>
+	<operation name="3444">
+		<context type="3555"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="3499"/>
-			<push arg="851"/>
+			<get arg="3556"/>
+			<push arg="878"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="3500"/>
+			<push arg="3557"/>
 			<set arg="61"/>
 			<call arg="145"/>
 			<load arg="505"/>
-			<get arg="3499"/>
-			<push arg="851"/>
+			<get arg="3556"/>
+			<push arg="878"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="3505"/>
+			<push arg="3562"/>
 			<set arg="61"/>
 			<call arg="145"/>
-			<call arg="3058"/>
+			<call arg="3080"/>
 		</code>
 		<linenumbertable>
-			<lne id="3506" begin="0" end="0"/>
-			<lne id="3507" begin="0" end="1"/>
-			<lne id="3508" begin="2" end="7"/>
-			<lne id="3509" begin="0" end="8"/>
-			<lne id="3510" begin="9" end="9"/>
-			<lne id="3511" begin="9" end="10"/>
-			<lne id="3512" begin="11" end="16"/>
-			<lne id="3513" begin="9" end="17"/>
-			<lne id="3514" begin="0" end="18"/>
+			<lne id="3563" begin="0" end="0"/>
+			<lne id="3564" begin="0" end="1"/>
+			<lne id="3565" begin="2" end="7"/>
+			<lne id="3566" begin="0" end="8"/>
+			<lne id="3567" begin="9" end="9"/>
+			<lne id="3568" begin="9" end="10"/>
+			<lne id="3569" begin="11" end="16"/>
+			<lne id="3570" begin="9" end="17"/>
+			<lne id="3571" begin="0" end="18"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="18"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3418">
-		<context type="3515"/>
+	<operation name="3572">
+		<context type="3573"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="850"/>
-			<push arg="851"/>
+			<get arg="3556"/>
+			<push arg="878"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="3516"/>
+			<push arg="3557"/>
 			<set arg="61"/>
 			<call arg="227"/>
 		</code>
 		<linenumbertable>
-			<lne id="3517" begin="0" end="0"/>
-			<lne id="3518" begin="0" end="1"/>
-			<lne id="3519" begin="2" end="7"/>
-			<lne id="3520" begin="0" end="8"/>
+			<lne id="3574" begin="0" end="0"/>
+			<lne id="3575" begin="0" end="1"/>
+			<lne id="3576" begin="2" end="7"/>
+			<lne id="3577" begin="0" end="8"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="8"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3422">
-		<context type="3515"/>
+	<operation name="3578">
+		<context type="3573"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="850"/>
-			<push arg="851"/>
+			<get arg="3556"/>
+			<push arg="878"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="3521"/>
+			<push arg="3557"/>
+			<set arg="61"/>
+			<call arg="145"/>
+			<load arg="505"/>
+			<get arg="3556"/>
+			<push arg="878"/>
+			<push arg="26"/>
+			<new/>
+			<dup/>
+			<push arg="3562"/>
+			<set arg="61"/>
+			<call arg="145"/>
+			<call arg="3080"/>
+		</code>
+		<linenumbertable>
+			<lne id="3579" begin="0" end="0"/>
+			<lne id="3580" begin="0" end="1"/>
+			<lne id="3581" begin="2" end="7"/>
+			<lne id="3582" begin="0" end="8"/>
+			<lne id="3583" begin="9" end="9"/>
+			<lne id="3584" begin="9" end="10"/>
+			<lne id="3585" begin="11" end="16"/>
+			<lne id="3586" begin="9" end="17"/>
+			<lne id="3587" begin="0" end="18"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="0" name="103" begin="0" end="18"/>
+		</localvariabletable>
+	</operation>
+	<operation name="3440">
+		<context type="3588"/>
+		<parameters>
+		</parameters>
+		<code>
+			<load arg="505"/>
+			<get arg="877"/>
+			<push arg="878"/>
+			<push arg="26"/>
+			<new/>
+			<dup/>
+			<push arg="3589"/>
 			<set arg="61"/>
 			<call arg="227"/>
 		</code>
 		<linenumbertable>
-			<lne id="3522" begin="0" end="0"/>
-			<lne id="3523" begin="0" end="1"/>
-			<lne id="3524" begin="2" end="7"/>
-			<lne id="3525" begin="0" end="8"/>
+			<lne id="3590" begin="0" end="0"/>
+			<lne id="3591" begin="0" end="1"/>
+			<lne id="3592" begin="2" end="7"/>
+			<lne id="3593" begin="0" end="8"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="8"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3526">
-		<context type="3414"/>
+	<operation name="3444">
+		<context type="3588"/>
+		<parameters>
+		</parameters>
+		<code>
+			<load arg="505"/>
+			<get arg="877"/>
+			<push arg="878"/>
+			<push arg="26"/>
+			<new/>
+			<dup/>
+			<push arg="3594"/>
+			<set arg="61"/>
+			<call arg="227"/>
+		</code>
+		<linenumbertable>
+			<lne id="3595" begin="0" end="0"/>
+			<lne id="3596" begin="0" end="1"/>
+			<lne id="3597" begin="2" end="7"/>
+			<lne id="3598" begin="0" end="8"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="0" name="103" begin="0" end="8"/>
+		</localvariabletable>
+	</operation>
+	<operation name="3599">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -13883,57 +14175,57 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="105"/>
-			<get arg="653"/>
+			<get arg="3404"/>
 			<iterate/>
 			<store arg="114"/>
 			<load arg="114"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<load arg="505"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<call arg="145"/>
 			<load arg="114"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
+			<get arg="2610"/>
 			<load arg="505"/>
 			<call arg="195"/>
 			<call arg="145"/>
-			<call arg="3527"/>
+			<call arg="3600"/>
 			<call arg="196"/>
-			<if arg="3528"/>
+			<if arg="3601"/>
 			<load arg="114"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="215"/>
 			<call arg="217"/>
 			<call arg="196"/>
-			<if arg="1616"/>
+			<if arg="1640"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="3529" begin="3" end="3"/>
-			<lne id="3530" begin="3" end="4"/>
-			<lne id="3531" begin="10" end="10"/>
-			<lne id="3532" begin="10" end="11"/>
-			<lne id="3533" begin="14" end="14"/>
-			<lne id="3534" begin="14" end="15"/>
-			<lne id="3535" begin="16" end="16"/>
-			<lne id="3536" begin="16" end="17"/>
-			<lne id="3537" begin="14" end="18"/>
-			<lne id="3538" begin="19" end="19"/>
-			<lne id="3539" begin="19" end="20"/>
-			<lne id="3540" begin="19" end="21"/>
-			<lne id="3541" begin="19" end="22"/>
-			<lne id="3542" begin="23" end="23"/>
-			<lne id="3543" begin="23" end="24"/>
-			<lne id="3544" begin="19" end="25"/>
-			<lne id="3545" begin="14" end="26"/>
-			<lne id="3546" begin="7" end="31"/>
-			<lne id="3547" begin="7" end="32"/>
-			<lne id="3548" begin="7" end="33"/>
-			<lne id="3549" begin="0" end="38"/>
+			<lne id="3602" begin="3" end="3"/>
+			<lne id="3603" begin="3" end="4"/>
+			<lne id="3604" begin="10" end="10"/>
+			<lne id="3605" begin="10" end="11"/>
+			<lne id="3606" begin="14" end="14"/>
+			<lne id="3607" begin="14" end="15"/>
+			<lne id="3608" begin="16" end="16"/>
+			<lne id="3609" begin="16" end="17"/>
+			<lne id="3610" begin="14" end="18"/>
+			<lne id="3611" begin="19" end="19"/>
+			<lne id="3612" begin="19" end="20"/>
+			<lne id="3613" begin="19" end="21"/>
+			<lne id="3614" begin="19" end="22"/>
+			<lne id="3615" begin="23" end="23"/>
+			<lne id="3616" begin="23" end="24"/>
+			<lne id="3617" begin="19" end="25"/>
+			<lne id="3618" begin="14" end="26"/>
+			<lne id="3619" begin="7" end="31"/>
+			<lne id="3620" begin="7" end="32"/>
+			<lne id="3621" begin="7" end="33"/>
+			<lne id="3622" begin="0" end="38"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="2" name="208" begin="13" end="30"/>
@@ -13941,149 +14233,149 @@
 			<lve slot="0" name="103" begin="0" end="38"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3550">
+	<operation name="3623">
 		<context type="482"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="653"/>
-			<call arg="3551"/>
+			<get arg="3404"/>
+			<call arg="3624"/>
 			<store arg="105"/>
 			<load arg="105"/>
 			<call arg="141"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
+			<get arg="2610"/>
 			<store arg="114"/>
 			<load arg="105"/>
-			<call arg="720"/>
+			<call arg="749"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
+			<get arg="2610"/>
 			<store arg="200"/>
 			<load arg="114"/>
 			<call arg="493"/>
 			<load arg="200"/>
 			<call arg="493"/>
-			<call arg="3058"/>
-			<if arg="3552"/>
+			<call arg="3080"/>
+			<if arg="3625"/>
 			<load arg="114"/>
 			<load arg="200"/>
-			<call arg="3553"/>
+			<call arg="3626"/>
 			<call arg="217"/>
 			<load arg="200"/>
 			<load arg="114"/>
-			<call arg="3553"/>
+			<call arg="3626"/>
 			<call arg="217"/>
-			<call arg="3527"/>
+			<call arg="3600"/>
 			<goto arg="152"/>
 			<pushf/>
 		</code>
 		<linenumbertable>
-			<lne id="3554" begin="0" end="0"/>
-			<lne id="3555" begin="0" end="1"/>
-			<lne id="3556" begin="0" end="2"/>
-			<lne id="3557" begin="4" end="4"/>
-			<lne id="3558" begin="4" end="5"/>
-			<lne id="3559" begin="4" end="6"/>
-			<lne id="3560" begin="4" end="7"/>
-			<lne id="3561" begin="4" end="8"/>
-			<lne id="3562" begin="10" end="10"/>
-			<lne id="3563" begin="10" end="11"/>
-			<lne id="3564" begin="10" end="12"/>
-			<lne id="3565" begin="10" end="13"/>
-			<lne id="3566" begin="10" end="14"/>
-			<lne id="3567" begin="16" end="16"/>
-			<lne id="3568" begin="16" end="17"/>
-			<lne id="3569" begin="18" end="18"/>
-			<lne id="3570" begin="18" end="19"/>
-			<lne id="3571" begin="16" end="20"/>
-			<lne id="3572" begin="22" end="22"/>
-			<lne id="3573" begin="23" end="23"/>
-			<lne id="3574" begin="22" end="24"/>
-			<lne id="3575" begin="22" end="25"/>
-			<lne id="3576" begin="26" end="26"/>
-			<lne id="3577" begin="27" end="27"/>
-			<lne id="3578" begin="26" end="28"/>
-			<lne id="3579" begin="26" end="29"/>
-			<lne id="3580" begin="22" end="30"/>
-			<lne id="3581" begin="32" end="32"/>
-			<lne id="3582" begin="16" end="32"/>
-			<lne id="3583" begin="10" end="32"/>
-			<lne id="3584" begin="4" end="32"/>
-			<lne id="3585" begin="0" end="32"/>
+			<lne id="3627" begin="0" end="0"/>
+			<lne id="3628" begin="0" end="1"/>
+			<lne id="3629" begin="0" end="2"/>
+			<lne id="3630" begin="4" end="4"/>
+			<lne id="3631" begin="4" end="5"/>
+			<lne id="3632" begin="4" end="6"/>
+			<lne id="3633" begin="4" end="7"/>
+			<lne id="3634" begin="4" end="8"/>
+			<lne id="3635" begin="10" end="10"/>
+			<lne id="3636" begin="10" end="11"/>
+			<lne id="3637" begin="10" end="12"/>
+			<lne id="3638" begin="10" end="13"/>
+			<lne id="3639" begin="10" end="14"/>
+			<lne id="3640" begin="16" end="16"/>
+			<lne id="3641" begin="16" end="17"/>
+			<lne id="3642" begin="18" end="18"/>
+			<lne id="3643" begin="18" end="19"/>
+			<lne id="3644" begin="16" end="20"/>
+			<lne id="3645" begin="22" end="22"/>
+			<lne id="3646" begin="23" end="23"/>
+			<lne id="3647" begin="22" end="24"/>
+			<lne id="3648" begin="22" end="25"/>
+			<lne id="3649" begin="26" end="26"/>
+			<lne id="3650" begin="27" end="27"/>
+			<lne id="3651" begin="26" end="28"/>
+			<lne id="3652" begin="26" end="29"/>
+			<lne id="3653" begin="22" end="30"/>
+			<lne id="3654" begin="32" end="32"/>
+			<lne id="3655" begin="16" end="32"/>
+			<lne id="3656" begin="10" end="32"/>
+			<lne id="3657" begin="4" end="32"/>
+			<lne id="3658" begin="0" end="32"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="3586" begin="15" end="32"/>
-			<lve slot="2" name="3587" begin="9" end="32"/>
-			<lve slot="1" name="2056" begin="3" end="32"/>
+			<lve slot="3" name="3659" begin="15" end="32"/>
+			<lve slot="2" name="3660" begin="9" end="32"/>
+			<lve slot="1" name="681" begin="3" end="32"/>
 			<lve slot="0" name="103" begin="0" end="32"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3588">
+	<operation name="3661">
 		<context type="482"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="653"/>
-			<call arg="3551"/>
+			<get arg="3404"/>
+			<call arg="3624"/>
 			<store arg="105"/>
 			<load arg="105"/>
 			<call arg="141"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
+			<get arg="2610"/>
 			<store arg="114"/>
 			<load arg="105"/>
-			<call arg="720"/>
+			<call arg="749"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
+			<get arg="2610"/>
 			<store arg="200"/>
 			<load arg="114"/>
 			<load arg="200"/>
-			<call arg="3553"/>
+			<call arg="3626"/>
 			<load arg="200"/>
 			<load arg="114"/>
-			<call arg="3553"/>
-			<call arg="3058"/>
+			<call arg="3626"/>
+			<call arg="3080"/>
 		</code>
 		<linenumbertable>
-			<lne id="3589" begin="0" end="0"/>
-			<lne id="3590" begin="0" end="1"/>
-			<lne id="3591" begin="0" end="2"/>
-			<lne id="3592" begin="4" end="4"/>
-			<lne id="3593" begin="4" end="5"/>
-			<lne id="3594" begin="4" end="6"/>
-			<lne id="3595" begin="4" end="7"/>
-			<lne id="3596" begin="4" end="8"/>
-			<lne id="3597" begin="10" end="10"/>
-			<lne id="3598" begin="10" end="11"/>
-			<lne id="3599" begin="10" end="12"/>
-			<lne id="3600" begin="10" end="13"/>
-			<lne id="3601" begin="10" end="14"/>
-			<lne id="3602" begin="16" end="16"/>
-			<lne id="3603" begin="17" end="17"/>
-			<lne id="3604" begin="16" end="18"/>
-			<lne id="3605" begin="19" end="19"/>
-			<lne id="3606" begin="20" end="20"/>
-			<lne id="3607" begin="19" end="21"/>
-			<lne id="3608" begin="16" end="22"/>
-			<lne id="3609" begin="10" end="22"/>
-			<lne id="3610" begin="4" end="22"/>
-			<lne id="3611" begin="0" end="22"/>
+			<lne id="3662" begin="0" end="0"/>
+			<lne id="3663" begin="0" end="1"/>
+			<lne id="3664" begin="0" end="2"/>
+			<lne id="3665" begin="4" end="4"/>
+			<lne id="3666" begin="4" end="5"/>
+			<lne id="3667" begin="4" end="6"/>
+			<lne id="3668" begin="4" end="7"/>
+			<lne id="3669" begin="4" end="8"/>
+			<lne id="3670" begin="10" end="10"/>
+			<lne id="3671" begin="10" end="11"/>
+			<lne id="3672" begin="10" end="12"/>
+			<lne id="3673" begin="10" end="13"/>
+			<lne id="3674" begin="10" end="14"/>
+			<lne id="3675" begin="16" end="16"/>
+			<lne id="3676" begin="17" end="17"/>
+			<lne id="3677" begin="16" end="18"/>
+			<lne id="3678" begin="19" end="19"/>
+			<lne id="3679" begin="20" end="20"/>
+			<lne id="3680" begin="19" end="21"/>
+			<lne id="3681" begin="16" end="22"/>
+			<lne id="3682" begin="10" end="22"/>
+			<lne id="3683" begin="4" end="22"/>
+			<lne id="3684" begin="0" end="22"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="3" name="3586" begin="15" end="22"/>
-			<lve slot="2" name="3587" begin="9" end="22"/>
-			<lve slot="1" name="2056" begin="3" end="22"/>
+			<lve slot="3" name="3659" begin="15" end="22"/>
+			<lve slot="2" name="3660" begin="9" end="22"/>
+			<lve slot="1" name="681" begin="3" end="22"/>
 			<lve slot="0" name="103" begin="0" end="22"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3612">
-		<context type="3414"/>
+	<operation name="3685">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -14097,32 +14389,32 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<call arg="3613"/>
+			<call arg="3686"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<call arg="3614"/>
+			<call arg="3687"/>
 			<call arg="196"/>
-			<if arg="1148"/>
+			<if arg="1172"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="653"/>
+			<get arg="3404"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="205"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<load arg="505"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<call arg="227"/>
 			<call arg="196"/>
-			<if arg="1616"/>
+			<if arg="1640"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -14139,17 +14431,17 @@
 			<load arg="114"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
-			<get arg="653"/>
+			<get arg="2610"/>
+			<get arg="3404"/>
 			<iterate/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<load arg="114"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="1970"/>
+			<if arg="1994"/>
 			<load arg="200"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -14158,49 +14450,49 @@
 			<call arg="205"/>
 		</code>
 		<linenumbertable>
-			<lne id="3615" begin="9" end="9"/>
-			<lne id="3616" begin="9" end="10"/>
-			<lne id="3617" begin="13" end="13"/>
-			<lne id="3618" begin="13" end="14"/>
-			<lne id="3619" begin="6" end="19"/>
-			<lne id="3620" begin="22" end="22"/>
-			<lne id="3621" begin="22" end="23"/>
-			<lne id="3622" begin="3" end="25"/>
-			<lne id="3623" begin="3" end="26"/>
-			<lne id="3624" begin="29" end="29"/>
-			<lne id="3625" begin="29" end="30"/>
-			<lne id="3626" begin="31" end="31"/>
-			<lne id="3627" begin="31" end="32"/>
-			<lne id="3628" begin="29" end="33"/>
-			<lne id="3629" begin="0" end="38"/>
-			<lne id="3630" begin="43" end="43"/>
-			<lne id="3631" begin="49" end="49"/>
-			<lne id="3632" begin="49" end="50"/>
-			<lne id="3633" begin="49" end="51"/>
-			<lne id="3634" begin="49" end="52"/>
-			<lne id="3635" begin="49" end="53"/>
-			<lne id="3636" begin="56" end="56"/>
-			<lne id="3637" begin="56" end="57"/>
-			<lne id="3638" begin="58" end="58"/>
-			<lne id="3639" begin="58" end="59"/>
-			<lne id="3640" begin="56" end="60"/>
-			<lne id="3641" begin="46" end="65"/>
-			<lne id="3642" begin="40" end="67"/>
-			<lne id="3643" begin="40" end="68"/>
-			<lne id="3644" begin="0" end="68"/>
+			<lne id="3688" begin="9" end="9"/>
+			<lne id="3689" begin="9" end="10"/>
+			<lne id="3690" begin="13" end="13"/>
+			<lne id="3691" begin="13" end="14"/>
+			<lne id="3692" begin="6" end="19"/>
+			<lne id="3693" begin="22" end="22"/>
+			<lne id="3694" begin="22" end="23"/>
+			<lne id="3695" begin="3" end="25"/>
+			<lne id="3696" begin="3" end="26"/>
+			<lne id="3697" begin="29" end="29"/>
+			<lne id="3698" begin="29" end="30"/>
+			<lne id="3699" begin="31" end="31"/>
+			<lne id="3700" begin="31" end="32"/>
+			<lne id="3701" begin="29" end="33"/>
+			<lne id="3702" begin="0" end="38"/>
+			<lne id="3703" begin="43" end="43"/>
+			<lne id="3704" begin="49" end="49"/>
+			<lne id="3705" begin="49" end="50"/>
+			<lne id="3706" begin="49" end="51"/>
+			<lne id="3707" begin="49" end="52"/>
+			<lne id="3708" begin="49" end="53"/>
+			<lne id="3709" begin="56" end="56"/>
+			<lne id="3710" begin="56" end="57"/>
+			<lne id="3711" begin="58" end="58"/>
+			<lne id="3712" begin="58" end="59"/>
+			<lne id="3713" begin="56" end="60"/>
+			<lne id="3714" begin="46" end="65"/>
+			<lne id="3715" begin="40" end="67"/>
+			<lne id="3716" begin="40" end="68"/>
+			<lne id="3717" begin="0" end="68"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="485" begin="12" end="18"/>
 			<lve slot="1" name="485" begin="21" end="24"/>
 			<lve slot="1" name="208" begin="28" end="37"/>
-			<lve slot="3" name="2056" begin="55" end="64"/>
+			<lve slot="3" name="681" begin="55" end="64"/>
 			<lve slot="2" name="208" begin="45" end="66"/>
-			<lve slot="1" name="3645" begin="39" end="68"/>
+			<lve slot="1" name="3718" begin="39" end="68"/>
 			<lve slot="0" name="103" begin="0" end="68"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3646">
-		<context type="3414"/>
+	<operation name="3719">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -14214,32 +14506,32 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<call arg="3613"/>
+			<call arg="3686"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<call arg="3647"/>
+			<call arg="3720"/>
 			<call arg="196"/>
-			<if arg="1148"/>
+			<if arg="1172"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="653"/>
+			<get arg="3404"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="205"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<load arg="505"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<call arg="227"/>
 			<call arg="196"/>
-			<if arg="1616"/>
+			<if arg="1640"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -14256,17 +14548,17 @@
 			<load arg="114"/>
 			<get arg="119"/>
 			<call arg="141"/>
-			<get arg="2588"/>
-			<get arg="653"/>
+			<get arg="2610"/>
+			<get arg="3404"/>
 			<iterate/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<load arg="114"/>
-			<get arg="2586"/>
+			<get arg="510"/>
 			<call arg="145"/>
 			<call arg="196"/>
-			<if arg="1970"/>
+			<if arg="1994"/>
 			<load arg="200"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -14275,49 +14567,49 @@
 			<call arg="205"/>
 		</code>
 		<linenumbertable>
-			<lne id="3648" begin="9" end="9"/>
-			<lne id="3649" begin="9" end="10"/>
-			<lne id="3650" begin="13" end="13"/>
-			<lne id="3651" begin="13" end="14"/>
-			<lne id="3652" begin="6" end="19"/>
-			<lne id="3653" begin="22" end="22"/>
-			<lne id="3654" begin="22" end="23"/>
-			<lne id="3655" begin="3" end="25"/>
-			<lne id="3656" begin="3" end="26"/>
-			<lne id="3657" begin="29" end="29"/>
-			<lne id="3658" begin="29" end="30"/>
-			<lne id="3659" begin="31" end="31"/>
-			<lne id="3660" begin="31" end="32"/>
-			<lne id="3661" begin="29" end="33"/>
-			<lne id="3662" begin="0" end="38"/>
-			<lne id="3663" begin="43" end="43"/>
-			<lne id="3664" begin="49" end="49"/>
-			<lne id="3665" begin="49" end="50"/>
-			<lne id="3666" begin="49" end="51"/>
-			<lne id="3667" begin="49" end="52"/>
-			<lne id="3668" begin="49" end="53"/>
-			<lne id="3669" begin="56" end="56"/>
-			<lne id="3670" begin="56" end="57"/>
-			<lne id="3671" begin="58" end="58"/>
-			<lne id="3672" begin="58" end="59"/>
-			<lne id="3673" begin="56" end="60"/>
-			<lne id="3674" begin="46" end="65"/>
-			<lne id="3675" begin="40" end="67"/>
-			<lne id="3676" begin="40" end="68"/>
-			<lne id="3677" begin="0" end="68"/>
+			<lne id="3721" begin="9" end="9"/>
+			<lne id="3722" begin="9" end="10"/>
+			<lne id="3723" begin="13" end="13"/>
+			<lne id="3724" begin="13" end="14"/>
+			<lne id="3725" begin="6" end="19"/>
+			<lne id="3726" begin="22" end="22"/>
+			<lne id="3727" begin="22" end="23"/>
+			<lne id="3728" begin="3" end="25"/>
+			<lne id="3729" begin="3" end="26"/>
+			<lne id="3730" begin="29" end="29"/>
+			<lne id="3731" begin="29" end="30"/>
+			<lne id="3732" begin="31" end="31"/>
+			<lne id="3733" begin="31" end="32"/>
+			<lne id="3734" begin="29" end="33"/>
+			<lne id="3735" begin="0" end="38"/>
+			<lne id="3736" begin="43" end="43"/>
+			<lne id="3737" begin="49" end="49"/>
+			<lne id="3738" begin="49" end="50"/>
+			<lne id="3739" begin="49" end="51"/>
+			<lne id="3740" begin="49" end="52"/>
+			<lne id="3741" begin="49" end="53"/>
+			<lne id="3742" begin="56" end="56"/>
+			<lne id="3743" begin="56" end="57"/>
+			<lne id="3744" begin="58" end="58"/>
+			<lne id="3745" begin="58" end="59"/>
+			<lne id="3746" begin="56" end="60"/>
+			<lne id="3747" begin="46" end="65"/>
+			<lne id="3748" begin="40" end="67"/>
+			<lne id="3749" begin="40" end="68"/>
+			<lne id="3750" begin="0" end="68"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="485" begin="12" end="18"/>
 			<lve slot="1" name="485" begin="21" end="24"/>
 			<lve slot="1" name="208" begin="28" end="37"/>
-			<lve slot="3" name="2056" begin="55" end="64"/>
+			<lve slot="3" name="681" begin="55" end="64"/>
 			<lve slot="2" name="208" begin="45" end="66"/>
-			<lve slot="1" name="3645" begin="39" end="68"/>
+			<lve slot="1" name="3718" begin="39" end="68"/>
 			<lve slot="0" name="103" begin="0" end="68"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3678">
-		<context type="3414"/>
+	<operation name="3751">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -14325,37 +14617,37 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<call arg="3679"/>
+			<call arg="3752"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
 			<call arg="195"/>
 			<load arg="505"/>
 			<call arg="195"/>
-			<call arg="3553"/>
+			<call arg="3626"/>
 			<call arg="196"/>
-			<if arg="1145"/>
+			<if arg="1169"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="3680" begin="3" end="3"/>
-			<lne id="3681" begin="3" end="4"/>
-			<lne id="3682" begin="7" end="7"/>
-			<lne id="3683" begin="7" end="8"/>
-			<lne id="3684" begin="9" end="9"/>
-			<lne id="3685" begin="9" end="10"/>
-			<lne id="3686" begin="7" end="11"/>
-			<lne id="3687" begin="0" end="16"/>
+			<lne id="3753" begin="3" end="3"/>
+			<lne id="3754" begin="3" end="4"/>
+			<lne id="3755" begin="7" end="7"/>
+			<lne id="3756" begin="7" end="8"/>
+			<lne id="3757" begin="9" end="9"/>
+			<lne id="3758" begin="9" end="10"/>
+			<lne id="3759" begin="7" end="11"/>
+			<lne id="3760" begin="0" end="16"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="208" begin="6" end="15"/>
 			<lve slot="0" name="103" begin="0" end="16"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3688">
-		<context type="3414"/>
+	<operation name="3761">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -14363,37 +14655,37 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<call arg="3679"/>
+			<call arg="3752"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="505"/>
 			<call arg="195"/>
 			<load arg="105"/>
 			<call arg="195"/>
-			<call arg="3553"/>
+			<call arg="3626"/>
 			<call arg="196"/>
-			<if arg="1145"/>
+			<if arg="1169"/>
 			<load arg="105"/>
 			<call arg="36"/>
 			<enditerate/>
 		</code>
 		<linenumbertable>
-			<lne id="3689" begin="3" end="3"/>
-			<lne id="3690" begin="3" end="4"/>
-			<lne id="3691" begin="7" end="7"/>
-			<lne id="3692" begin="7" end="8"/>
-			<lne id="3693" begin="9" end="9"/>
-			<lne id="3694" begin="9" end="10"/>
-			<lne id="3695" begin="7" end="11"/>
-			<lne id="3696" begin="0" end="16"/>
+			<lne id="3762" begin="3" end="3"/>
+			<lne id="3763" begin="3" end="4"/>
+			<lne id="3764" begin="7" end="7"/>
+			<lne id="3765" begin="7" end="8"/>
+			<lne id="3766" begin="9" end="9"/>
+			<lne id="3767" begin="9" end="10"/>
+			<lne id="3768" begin="7" end="11"/>
+			<lne id="3769" begin="0" end="16"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="1" name="208" begin="6" end="15"/>
 			<lve slot="0" name="103" begin="0" end="16"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3697">
-		<context type="3414"/>
+	<operation name="3770">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -14401,18 +14693,18 @@
 			<call arg="195"/>
 			<store arg="105"/>
 			<load arg="505"/>
-			<call arg="3698"/>
+			<call arg="3771"/>
 			<store arg="114"/>
 			<load arg="114"/>
 			<call arg="215"/>
 			<load arg="105"/>
-			<call arg="3348"/>
-			<call arg="3058"/>
+			<call arg="3370"/>
+			<call arg="3080"/>
 			<load arg="105"/>
-			<call arg="3349"/>
+			<call arg="3371"/>
 			<call arg="215"/>
-			<call arg="3058"/>
-			<if arg="1615"/>
+			<call arg="3080"/>
+			<if arg="1639"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
@@ -14420,7 +14712,7 @@
 			<iterate/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<call arg="1972"/>
+			<call arg="1996"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="205"/>
@@ -14432,39 +14724,39 @@
 			<call arg="36"/>
 		</code>
 		<linenumbertable>
-			<lne id="3699" begin="0" end="0"/>
-			<lne id="3700" begin="0" end="1"/>
-			<lne id="3701" begin="3" end="3"/>
-			<lne id="3702" begin="3" end="4"/>
-			<lne id="3703" begin="6" end="6"/>
-			<lne id="3704" begin="6" end="7"/>
-			<lne id="3705" begin="8" end="8"/>
-			<lne id="3706" begin="8" end="9"/>
-			<lne id="3707" begin="6" end="10"/>
-			<lne id="3708" begin="11" end="11"/>
-			<lne id="3709" begin="11" end="12"/>
-			<lne id="3710" begin="11" end="13"/>
-			<lne id="3711" begin="6" end="14"/>
-			<lne id="3712" begin="19" end="19"/>
-			<lne id="3713" begin="22" end="22"/>
-			<lne id="3714" begin="22" end="23"/>
-			<lne id="3715" begin="16" end="25"/>
-			<lne id="3716" begin="16" end="26"/>
-			<lne id="3717" begin="31" end="31"/>
-			<lne id="3718" begin="28" end="32"/>
-			<lne id="3719" begin="6" end="32"/>
-			<lne id="3720" begin="3" end="32"/>
-			<lne id="3721" begin="0" end="32"/>
+			<lne id="3772" begin="0" end="0"/>
+			<lne id="3773" begin="0" end="1"/>
+			<lne id="3774" begin="3" end="3"/>
+			<lne id="3775" begin="3" end="4"/>
+			<lne id="3776" begin="6" end="6"/>
+			<lne id="3777" begin="6" end="7"/>
+			<lne id="3778" begin="8" end="8"/>
+			<lne id="3779" begin="8" end="9"/>
+			<lne id="3780" begin="6" end="10"/>
+			<lne id="3781" begin="11" end="11"/>
+			<lne id="3782" begin="11" end="12"/>
+			<lne id="3783" begin="11" end="13"/>
+			<lne id="3784" begin="6" end="14"/>
+			<lne id="3785" begin="19" end="19"/>
+			<lne id="3786" begin="22" end="22"/>
+			<lne id="3787" begin="22" end="23"/>
+			<lne id="3788" begin="16" end="25"/>
+			<lne id="3789" begin="16" end="26"/>
+			<lne id="3790" begin="31" end="31"/>
+			<lne id="3791" begin="28" end="32"/>
+			<lne id="3792" begin="6" end="32"/>
+			<lne id="3793" begin="3" end="32"/>
+			<lne id="3794" begin="0" end="32"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="3" name="118" begin="21" end="24"/>
-			<lve slot="2" name="3722" begin="5" end="32"/>
+			<lve slot="2" name="3795" begin="5" end="32"/>
 			<lve slot="1" name="484" begin="2" end="32"/>
 			<lve slot="0" name="103" begin="0" end="32"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3723">
-		<context type="3414"/>
+	<operation name="3796">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -14472,11 +14764,11 @@
 			<call arg="195"/>
 			<store arg="105"/>
 			<load arg="505"/>
-			<call arg="3724"/>
+			<call arg="3797"/>
 			<store arg="114"/>
 			<load arg="114"/>
 			<call arg="215"/>
-			<if arg="3725"/>
+			<if arg="3798"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
@@ -14484,7 +14776,7 @@
 			<iterate/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<call arg="3726"/>
+			<call arg="3799"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="205"/>
@@ -14496,32 +14788,32 @@
 			<call arg="36"/>
 		</code>
 		<linenumbertable>
-			<lne id="3727" begin="0" end="0"/>
-			<lne id="3728" begin="0" end="1"/>
-			<lne id="3729" begin="3" end="3"/>
-			<lne id="3730" begin="3" end="4"/>
-			<lne id="3731" begin="6" end="6"/>
-			<lne id="3732" begin="6" end="7"/>
-			<lne id="3733" begin="12" end="12"/>
-			<lne id="3734" begin="15" end="15"/>
-			<lne id="3735" begin="15" end="16"/>
-			<lne id="3736" begin="9" end="18"/>
-			<lne id="3737" begin="9" end="19"/>
-			<lne id="3738" begin="24" end="24"/>
-			<lne id="3739" begin="21" end="25"/>
-			<lne id="3740" begin="6" end="25"/>
-			<lne id="3741" begin="3" end="25"/>
-			<lne id="3742" begin="0" end="25"/>
+			<lne id="3800" begin="0" end="0"/>
+			<lne id="3801" begin="0" end="1"/>
+			<lne id="3802" begin="3" end="3"/>
+			<lne id="3803" begin="3" end="4"/>
+			<lne id="3804" begin="6" end="6"/>
+			<lne id="3805" begin="6" end="7"/>
+			<lne id="3806" begin="12" end="12"/>
+			<lne id="3807" begin="15" end="15"/>
+			<lne id="3808" begin="15" end="16"/>
+			<lne id="3809" begin="9" end="18"/>
+			<lne id="3810" begin="9" end="19"/>
+			<lne id="3811" begin="24" end="24"/>
+			<lne id="3812" begin="21" end="25"/>
+			<lne id="3813" begin="6" end="25"/>
+			<lne id="3814" begin="3" end="25"/>
+			<lne id="3815" begin="0" end="25"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="3" name="118" begin="14" end="17"/>
-			<lve slot="2" name="3722" begin="5" end="25"/>
+			<lve slot="2" name="3795" begin="5" end="25"/>
 			<lve slot="1" name="484" begin="2" end="25"/>
 			<lve slot="0" name="103" begin="0" end="25"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3743">
-		<context type="3414"/>
+	<operation name="3816">
+		<context type="3436"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -14532,50 +14824,50 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="505"/>
-			<call arg="3726"/>
+			<call arg="3799"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<call arg="3744"/>
+			<call arg="3817"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="205"/>
 			<iterate/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<call arg="1972"/>
+			<call arg="1996"/>
 			<call arg="36"/>
 			<enditerate/>
 			<call arg="205"/>
 		</code>
 		<linenumbertable>
-			<lne id="3745" begin="6" end="6"/>
-			<lne id="3746" begin="6" end="7"/>
-			<lne id="3747" begin="10" end="10"/>
-			<lne id="3748" begin="10" end="11"/>
-			<lne id="3749" begin="3" end="13"/>
-			<lne id="3750" begin="3" end="14"/>
-			<lne id="3751" begin="17" end="17"/>
-			<lne id="3752" begin="17" end="18"/>
-			<lne id="3753" begin="0" end="20"/>
-			<lne id="3754" begin="0" end="21"/>
+			<lne id="3818" begin="6" end="6"/>
+			<lne id="3819" begin="6" end="7"/>
+			<lne id="3820" begin="10" end="10"/>
+			<lne id="3821" begin="10" end="11"/>
+			<lne id="3822" begin="3" end="13"/>
+			<lne id="3823" begin="3" end="14"/>
+			<lne id="3824" begin="17" end="17"/>
+			<lne id="3825" begin="17" end="18"/>
+			<lne id="3826" begin="0" end="20"/>
+			<lne id="3827" begin="0" end="21"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="2237" begin="9" end="12"/>
-			<lve slot="1" name="2056" begin="16" end="19"/>
+			<lve slot="1" name="2260" begin="9" end="12"/>
+			<lve slot="1" name="681" begin="16" end="19"/>
 			<lve slot="0" name="103" begin="0" end="21"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3755">
+	<operation name="3828">
 		<context type="121"/>
 		<parameters>
 			<parameter name="105" type="4"/>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<call arg="715"/>
-			<push arg="716"/>
-			<call arg="717"/>
+			<call arg="534"/>
+			<push arg="745"/>
+			<call arg="746"/>
 			<store arg="114"/>
 			<push arg="32"/>
 			<push arg="26"/>
@@ -14584,11 +14876,11 @@
 			<iterate/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<call arg="715"/>
+			<call arg="534"/>
 			<load arg="105"/>
-			<call arg="2580"/>
+			<call arg="2603"/>
 			<call arg="196"/>
-			<if arg="1148"/>
+			<if arg="1172"/>
 			<load arg="200"/>
 			<call arg="36"/>
 			<enditerate/>
@@ -14600,93 +14892,93 @@
 			<new/>
 			<call arg="226"/>
 			<call arg="145"/>
-			<if arg="3552"/>
+			<if arg="3625"/>
 			<load arg="200"/>
-			<call arg="3756"/>
-			<goto arg="1966"/>
+			<call arg="3829"/>
+			<goto arg="1990"/>
 			<load arg="114"/>
 			<call arg="141"/>
-			<call arg="3756"/>
+			<call arg="3829"/>
 		</code>
 		<linenumbertable>
-			<lne id="3757" begin="0" end="0"/>
-			<lne id="3758" begin="0" end="1"/>
-			<lne id="3759" begin="2" end="2"/>
-			<lne id="3760" begin="0" end="3"/>
-			<lne id="3761" begin="8" end="8"/>
-			<lne id="3762" begin="11" end="11"/>
-			<lne id="3763" begin="11" end="12"/>
-			<lne id="3764" begin="13" end="13"/>
-			<lne id="3765" begin="11" end="14"/>
-			<lne id="3766" begin="5" end="19"/>
-			<lne id="3767" begin="5" end="20"/>
-			<lne id="3768" begin="22" end="22"/>
-			<lne id="3769" begin="23" end="26"/>
-			<lne id="3770" begin="22" end="27"/>
-			<lne id="3771" begin="29" end="29"/>
-			<lne id="3772" begin="29" end="30"/>
-			<lne id="3773" begin="32" end="32"/>
-			<lne id="3774" begin="32" end="33"/>
-			<lne id="3775" begin="32" end="34"/>
-			<lne id="3776" begin="22" end="34"/>
-			<lne id="3777" begin="5" end="34"/>
-			<lne id="3778" begin="0" end="34"/>
+			<lne id="3830" begin="0" end="0"/>
+			<lne id="3831" begin="0" end="1"/>
+			<lne id="3832" begin="2" end="2"/>
+			<lne id="3833" begin="0" end="3"/>
+			<lne id="3834" begin="8" end="8"/>
+			<lne id="3835" begin="11" end="11"/>
+			<lne id="3836" begin="11" end="12"/>
+			<lne id="3837" begin="13" end="13"/>
+			<lne id="3838" begin="11" end="14"/>
+			<lne id="3839" begin="5" end="19"/>
+			<lne id="3840" begin="5" end="20"/>
+			<lne id="3841" begin="22" end="22"/>
+			<lne id="3842" begin="23" end="26"/>
+			<lne id="3843" begin="22" end="27"/>
+			<lne id="3844" begin="29" end="29"/>
+			<lne id="3845" begin="29" end="30"/>
+			<lne id="3846" begin="32" end="32"/>
+			<lne id="3847" begin="32" end="33"/>
+			<lne id="3848" begin="32" end="34"/>
+			<lne id="3849" begin="22" end="34"/>
+			<lne id="3850" begin="5" end="34"/>
+			<lne id="3851" begin="0" end="34"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="3" name="208" begin="10" end="18"/>
-			<lve slot="3" name="3779" begin="21" end="34"/>
-			<lve slot="2" name="3780" begin="4" end="34"/>
+			<lve slot="3" name="3852" begin="21" end="34"/>
+			<lve slot="2" name="3853" begin="4" end="34"/>
 			<lve slot="0" name="103" begin="0" end="34"/>
-			<lve slot="1" name="3781" begin="0" end="34"/>
+			<lve slot="1" name="3854" begin="0" end="34"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3782">
+	<operation name="3855">
 		<context type="121"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<push arg="3783"/>
-			<call arg="723"/>
+			<push arg="3856"/>
+			<call arg="752"/>
 			<pushi arg="505"/>
-			<call arg="3784"/>
-			<if arg="1965"/>
+			<call arg="3857"/>
+			<if arg="1989"/>
 			<load arg="505"/>
 			<load arg="505"/>
-			<push arg="3783"/>
-			<call arg="723"/>
+			<push arg="3856"/>
+			<call arg="752"/>
 			<pushi arg="114"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<call arg="1097"/>
-			<call arg="2070"/>
-			<push arg="3785"/>
-			<push arg="713"/>
-			<call arg="3786"/>
-			<call arg="715"/>
-			<goto arg="2514"/>
+			<call arg="535"/>
+			<call arg="2093"/>
+			<push arg="3858"/>
+			<push arg="743"/>
+			<call arg="3859"/>
+			<call arg="534"/>
+			<goto arg="2537"/>
 			<load arg="505"/>
-			<call arg="715"/>
+			<call arg="534"/>
 			<store arg="105"/>
 			<push arg="33"/>
 			<push arg="26"/>
 			<new/>
-			<push arg="1329"/>
+			<push arg="1353"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
-			<push arg="827"/>
-			<set arg="517"/>
+			<push arg="856"/>
+			<set arg="522"/>
 			<dup/>
-			<pushd arg="672"/>
-			<set arg="519"/>
+			<pushd arg="702"/>
+			<set arg="524"/>
 			<call arg="36"/>
 			<store arg="114"/>
 			<load arg="105"/>
-			<call arg="1097"/>
+			<call arg="535"/>
 			<pushi arg="505"/>
 			<call arg="145"/>
-			<if arg="2431"/>
+			<if arg="2454"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
@@ -14694,168 +14986,168 @@
 			<push arg="26"/>
 			<new/>
 			<load arg="105"/>
-			<push arg="721"/>
-			<call arg="717"/>
+			<push arg="750"/>
+			<call arg="746"/>
 			<iterate/>
 			<store arg="200"/>
 			<load arg="200"/>
-			<push arg="3787"/>
-			<call arg="717"/>
+			<push arg="3860"/>
+			<call arg="746"/>
 			<call arg="36"/>
 			<enditerate/>
 			<iterate/>
 			<store arg="200"/>
-			<push arg="1329"/>
+			<push arg="1353"/>
 			<push arg="26"/>
 			<new/>
 			<dup/>
 			<load arg="200"/>
 			<call arg="141"/>
-			<call arg="715"/>
-			<set arg="517"/>
+			<call arg="534"/>
+			<set arg="522"/>
 			<dup/>
 			<load arg="200"/>
-			<call arg="720"/>
-			<call arg="1333"/>
-			<set arg="519"/>
+			<call arg="749"/>
+			<call arg="1357"/>
+			<set arg="524"/>
 			<call arg="36"/>
 			<enditerate/>
 			<store arg="200"/>
 			<load arg="200"/>
 			<call arg="215"/>
-			<if arg="3788"/>
+			<if arg="3861"/>
 			<load arg="200"/>
-			<goto arg="2433"/>
+			<goto arg="2456"/>
 			<load arg="114"/>
-			<goto arg="3789"/>
+			<goto arg="3862"/>
 			<load arg="114"/>
 		</code>
 		<linenumbertable>
-			<lne id="3790" begin="0" end="0"/>
-			<lne id="3791" begin="1" end="1"/>
-			<lne id="3792" begin="0" end="2"/>
-			<lne id="3793" begin="3" end="3"/>
-			<lne id="3794" begin="0" end="4"/>
-			<lne id="3795" begin="6" end="6"/>
-			<lne id="3796" begin="7" end="7"/>
-			<lne id="3797" begin="8" end="8"/>
-			<lne id="3798" begin="7" end="9"/>
-			<lne id="3799" begin="10" end="10"/>
-			<lne id="3800" begin="7" end="11"/>
-			<lne id="3801" begin="12" end="12"/>
-			<lne id="3802" begin="12" end="13"/>
-			<lne id="3803" begin="6" end="14"/>
-			<lne id="3804" begin="15" end="15"/>
-			<lne id="3805" begin="16" end="16"/>
-			<lne id="3806" begin="6" end="17"/>
-			<lne id="3807" begin="6" end="18"/>
-			<lne id="3808" begin="20" end="20"/>
-			<lne id="3809" begin="20" end="21"/>
-			<lne id="3810" begin="0" end="21"/>
-			<lne id="3811" begin="30" end="30"/>
-			<lne id="3812" begin="29" end="31"/>
-			<lne id="3813" begin="33" end="33"/>
-			<lne id="3814" begin="32" end="34"/>
-			<lne id="3815" begin="26" end="34"/>
-			<lne id="3816" begin="23" end="35"/>
-			<lne id="3817" begin="37" end="37"/>
-			<lne id="3818" begin="37" end="38"/>
-			<lne id="3819" begin="39" end="39"/>
-			<lne id="3820" begin="37" end="40"/>
-			<lne id="3821" begin="48" end="48"/>
-			<lne id="3822" begin="49" end="49"/>
-			<lne id="3823" begin="48" end="50"/>
-			<lne id="3824" begin="53" end="53"/>
-			<lne id="3825" begin="54" end="54"/>
-			<lne id="3826" begin="53" end="55"/>
-			<lne id="3827" begin="45" end="57"/>
-			<lne id="3828" begin="64" end="64"/>
-			<lne id="3829" begin="64" end="65"/>
-			<lne id="3830" begin="64" end="66"/>
-			<lne id="3831" begin="63" end="67"/>
-			<lne id="3832" begin="69" end="69"/>
-			<lne id="3833" begin="69" end="70"/>
-			<lne id="3834" begin="69" end="71"/>
-			<lne id="3835" begin="68" end="72"/>
-			<lne id="3836" begin="60" end="72"/>
-			<lne id="3837" begin="42" end="74"/>
-			<lne id="3838" begin="76" end="76"/>
-			<lne id="3839" begin="76" end="77"/>
-			<lne id="3840" begin="79" end="79"/>
-			<lne id="3841" begin="81" end="81"/>
-			<lne id="3842" begin="76" end="81"/>
-			<lne id="3843" begin="42" end="81"/>
-			<lne id="3844" begin="83" end="83"/>
-			<lne id="3845" begin="37" end="83"/>
-			<lne id="3846" begin="23" end="83"/>
-			<lne id="3847" begin="0" end="83"/>
+			<lne id="3863" begin="0" end="0"/>
+			<lne id="3864" begin="1" end="1"/>
+			<lne id="3865" begin="0" end="2"/>
+			<lne id="3866" begin="3" end="3"/>
+			<lne id="3867" begin="0" end="4"/>
+			<lne id="3868" begin="6" end="6"/>
+			<lne id="3869" begin="7" end="7"/>
+			<lne id="3870" begin="8" end="8"/>
+			<lne id="3871" begin="7" end="9"/>
+			<lne id="3872" begin="10" end="10"/>
+			<lne id="3873" begin="7" end="11"/>
+			<lne id="3874" begin="12" end="12"/>
+			<lne id="3875" begin="12" end="13"/>
+			<lne id="3876" begin="6" end="14"/>
+			<lne id="3877" begin="15" end="15"/>
+			<lne id="3878" begin="16" end="16"/>
+			<lne id="3879" begin="6" end="17"/>
+			<lne id="3880" begin="6" end="18"/>
+			<lne id="3881" begin="20" end="20"/>
+			<lne id="3882" begin="20" end="21"/>
+			<lne id="3883" begin="0" end="21"/>
+			<lne id="3884" begin="30" end="30"/>
+			<lne id="3885" begin="29" end="31"/>
+			<lne id="3886" begin="33" end="33"/>
+			<lne id="3887" begin="32" end="34"/>
+			<lne id="3888" begin="26" end="34"/>
+			<lne id="3889" begin="23" end="35"/>
+			<lne id="3890" begin="37" end="37"/>
+			<lne id="3891" begin="37" end="38"/>
+			<lne id="3892" begin="39" end="39"/>
+			<lne id="3893" begin="37" end="40"/>
+			<lne id="3894" begin="48" end="48"/>
+			<lne id="3895" begin="49" end="49"/>
+			<lne id="3896" begin="48" end="50"/>
+			<lne id="3897" begin="53" end="53"/>
+			<lne id="3898" begin="54" end="54"/>
+			<lne id="3899" begin="53" end="55"/>
+			<lne id="3900" begin="45" end="57"/>
+			<lne id="3901" begin="64" end="64"/>
+			<lne id="3902" begin="64" end="65"/>
+			<lne id="3903" begin="64" end="66"/>
+			<lne id="3904" begin="63" end="67"/>
+			<lne id="3905" begin="69" end="69"/>
+			<lne id="3906" begin="69" end="70"/>
+			<lne id="3907" begin="69" end="71"/>
+			<lne id="3908" begin="68" end="72"/>
+			<lne id="3909" begin="60" end="72"/>
+			<lne id="3910" begin="42" end="74"/>
+			<lne id="3911" begin="76" end="76"/>
+			<lne id="3912" begin="76" end="77"/>
+			<lne id="3913" begin="79" end="79"/>
+			<lne id="3914" begin="81" end="81"/>
+			<lne id="3915" begin="76" end="81"/>
+			<lne id="3916" begin="42" end="81"/>
+			<lne id="3917" begin="83" end="83"/>
+			<lne id="3918" begin="37" end="83"/>
+			<lne id="3919" begin="23" end="83"/>
+			<lne id="3920" begin="0" end="83"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="3" name="208" begin="52" end="56"/>
-			<lve slot="3" name="3848" begin="59" end="73"/>
-			<lve slot="3" name="3849" begin="75" end="81"/>
-			<lve slot="2" name="3850" begin="36" end="83"/>
-			<lve slot="1" name="3851" begin="22" end="83"/>
+			<lve slot="3" name="3921" begin="59" end="73"/>
+			<lve slot="3" name="3922" begin="75" end="81"/>
+			<lve slot="2" name="3923" begin="36" end="83"/>
+			<lve slot="1" name="3924" begin="22" end="83"/>
 			<lve slot="0" name="103" begin="0" end="83"/>
 		</localvariabletable>
 	</operation>
 	<operation name="65">
-		<context type="3852"/>
+		<context type="3925"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<get arg="2060"/>
+			<get arg="2083"/>
 			<push arg="144"/>
-			<call arg="2580"/>
-			<if arg="2514"/>
+			<call arg="2603"/>
+			<if arg="2537"/>
 			<load arg="505"/>
-			<get arg="2060"/>
+			<get arg="2083"/>
 			<push arg="147"/>
-			<call arg="2580"/>
-			<if arg="1965"/>
+			<call arg="2603"/>
+			<if arg="1989"/>
 			<load arg="505"/>
-			<get arg="2060"/>
-			<call arg="3853"/>
+			<get arg="2083"/>
+			<call arg="3926"/>
 			<push arg="148"/>
-			<call arg="2580"/>
+			<call arg="2603"/>
 			<if arg="107"/>
-			<push arg="3854"/>
-			<goto arg="1148"/>
+			<push arg="3927"/>
+			<goto arg="1172"/>
 			<push arg="148"/>
-			<goto arg="3725"/>
+			<goto arg="3798"/>
 			<push arg="147"/>
-			<goto arg="3855"/>
+			<goto arg="3928"/>
 			<push arg="144"/>
 		</code>
 		<linenumbertable>
-			<lne id="3856" begin="0" end="0"/>
-			<lne id="3857" begin="0" end="1"/>
-			<lne id="3858" begin="2" end="2"/>
-			<lne id="3859" begin="0" end="3"/>
-			<lne id="3860" begin="5" end="5"/>
-			<lne id="3861" begin="5" end="6"/>
-			<lne id="3862" begin="7" end="7"/>
-			<lne id="3863" begin="5" end="8"/>
-			<lne id="3864" begin="10" end="10"/>
-			<lne id="3865" begin="10" end="11"/>
-			<lne id="3866" begin="10" end="12"/>
-			<lne id="3867" begin="13" end="13"/>
-			<lne id="3868" begin="10" end="14"/>
-			<lne id="3869" begin="16" end="16"/>
-			<lne id="3870" begin="18" end="18"/>
-			<lne id="3871" begin="10" end="18"/>
-			<lne id="3872" begin="20" end="20"/>
-			<lne id="3873" begin="5" end="20"/>
-			<lne id="3874" begin="22" end="22"/>
-			<lne id="3875" begin="0" end="22"/>
+			<lne id="3929" begin="0" end="0"/>
+			<lne id="3930" begin="0" end="1"/>
+			<lne id="3931" begin="2" end="2"/>
+			<lne id="3932" begin="0" end="3"/>
+			<lne id="3933" begin="5" end="5"/>
+			<lne id="3934" begin="5" end="6"/>
+			<lne id="3935" begin="7" end="7"/>
+			<lne id="3936" begin="5" end="8"/>
+			<lne id="3937" begin="10" end="10"/>
+			<lne id="3938" begin="10" end="11"/>
+			<lne id="3939" begin="10" end="12"/>
+			<lne id="3940" begin="13" end="13"/>
+			<lne id="3941" begin="10" end="14"/>
+			<lne id="3942" begin="16" end="16"/>
+			<lne id="3943" begin="18" end="18"/>
+			<lne id="3944" begin="10" end="18"/>
+			<lne id="3945" begin="20" end="20"/>
+			<lne id="3946" begin="5" end="20"/>
+			<lne id="3947" begin="22" end="22"/>
+			<lne id="3948" begin="0" end="22"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="22"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3876">
-		<context type="3877"/>
+	<operation name="3949">
+		<context type="3950"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -14864,145 +15156,145 @@
 			<get arg="212"/>
 		</code>
 		<linenumbertable>
-			<lne id="3878" begin="0" end="0"/>
-			<lne id="3879" begin="0" end="1"/>
-			<lne id="3880" begin="0" end="2"/>
+			<lne id="3951" begin="0" end="0"/>
+			<lne id="3952" begin="0" end="1"/>
+			<lne id="3953" begin="0" end="2"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="2"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3876">
-		<context type="3881"/>
+	<operation name="3949">
+		<context type="3954"/>
 		<parameters>
 		</parameters>
 		<code>
-			<push arg="3121"/>
+			<push arg="3143"/>
 			<load arg="505"/>
-			<get arg="2287"/>
-			<call arg="523"/>
+			<get arg="2310"/>
+			<call arg="528"/>
 			<call arg="500"/>
-			<push arg="3882"/>
+			<push arg="3955"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<get arg="2288"/>
-			<call arg="523"/>
-			<call arg="500"/>
-			<push arg="3122"/>
-			<call arg="500"/>
-		</code>
-		<linenumbertable>
-			<lne id="3883" begin="0" end="0"/>
-			<lne id="3884" begin="1" end="1"/>
-			<lne id="3885" begin="1" end="2"/>
-			<lne id="3886" begin="1" end="3"/>
-			<lne id="3887" begin="0" end="4"/>
-			<lne id="3888" begin="5" end="5"/>
-			<lne id="3889" begin="0" end="6"/>
-			<lne id="3890" begin="7" end="7"/>
-			<lne id="3891" begin="7" end="8"/>
-			<lne id="3892" begin="7" end="9"/>
-			<lne id="3893" begin="0" end="10"/>
-			<lne id="3894" begin="11" end="11"/>
-			<lne id="3895" begin="0" end="12"/>
-		</linenumbertable>
-		<localvariabletable>
-			<lve slot="0" name="103" begin="0" end="12"/>
-		</localvariabletable>
-	</operation>
-	<operation name="3876">
-		<context type="3896"/>
-		<parameters>
-		</parameters>
-		<code>
-			<push arg="3121"/>
-			<load arg="505"/>
-			<get arg="2287"/>
-			<call arg="523"/>
-			<call arg="500"/>
-			<push arg="3897"/>
-			<call arg="500"/>
-			<load arg="505"/>
-			<get arg="2288"/>
-			<call arg="523"/>
-			<call arg="500"/>
-			<push arg="3122"/>
-			<call arg="500"/>
-		</code>
-		<linenumbertable>
-			<lne id="3898" begin="0" end="0"/>
-			<lne id="3899" begin="1" end="1"/>
-			<lne id="3900" begin="1" end="2"/>
-			<lne id="3901" begin="1" end="3"/>
-			<lne id="3902" begin="0" end="4"/>
-			<lne id="3903" begin="5" end="5"/>
-			<lne id="3904" begin="0" end="6"/>
-			<lne id="3905" begin="7" end="7"/>
-			<lne id="3906" begin="7" end="8"/>
-			<lne id="3907" begin="7" end="9"/>
-			<lne id="3908" begin="0" end="10"/>
-			<lne id="3909" begin="11" end="11"/>
-			<lne id="3910" begin="0" end="12"/>
-		</linenumbertable>
-		<localvariabletable>
-			<lve slot="0" name="103" begin="0" end="12"/>
-		</localvariabletable>
-	</operation>
-	<operation name="3876">
-		<context type="3911"/>
-		<parameters>
-		</parameters>
-		<code>
-			<push arg="3912"/>
-			<load arg="505"/>
 			<get arg="2311"/>
-			<call arg="523"/>
+			<call arg="528"/>
 			<call arg="500"/>
-			<push arg="3122"/>
+			<push arg="3144"/>
 			<call arg="500"/>
 		</code>
 		<linenumbertable>
-			<lne id="3913" begin="0" end="0"/>
-			<lne id="3914" begin="1" end="1"/>
-			<lne id="3915" begin="1" end="2"/>
-			<lne id="3916" begin="1" end="3"/>
-			<lne id="3917" begin="0" end="4"/>
-			<lne id="3918" begin="5" end="5"/>
-			<lne id="3919" begin="0" end="6"/>
+			<lne id="3956" begin="0" end="0"/>
+			<lne id="3957" begin="1" end="1"/>
+			<lne id="3958" begin="1" end="2"/>
+			<lne id="3959" begin="1" end="3"/>
+			<lne id="3960" begin="0" end="4"/>
+			<lne id="3961" begin="5" end="5"/>
+			<lne id="3962" begin="0" end="6"/>
+			<lne id="3963" begin="7" end="7"/>
+			<lne id="3964" begin="7" end="8"/>
+			<lne id="3965" begin="7" end="9"/>
+			<lne id="3966" begin="0" end="10"/>
+			<lne id="3967" begin="11" end="11"/>
+			<lne id="3968" begin="0" end="12"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="0" name="103" begin="0" end="12"/>
+		</localvariabletable>
+	</operation>
+	<operation name="3949">
+		<context type="3969"/>
+		<parameters>
+		</parameters>
+		<code>
+			<push arg="3143"/>
+			<load arg="505"/>
+			<get arg="2310"/>
+			<call arg="528"/>
+			<call arg="500"/>
+			<push arg="3970"/>
+			<call arg="500"/>
+			<load arg="505"/>
+			<get arg="2311"/>
+			<call arg="528"/>
+			<call arg="500"/>
+			<push arg="3144"/>
+			<call arg="500"/>
+		</code>
+		<linenumbertable>
+			<lne id="3971" begin="0" end="0"/>
+			<lne id="3972" begin="1" end="1"/>
+			<lne id="3973" begin="1" end="2"/>
+			<lne id="3974" begin="1" end="3"/>
+			<lne id="3975" begin="0" end="4"/>
+			<lne id="3976" begin="5" end="5"/>
+			<lne id="3977" begin="0" end="6"/>
+			<lne id="3978" begin="7" end="7"/>
+			<lne id="3979" begin="7" end="8"/>
+			<lne id="3980" begin="7" end="9"/>
+			<lne id="3981" begin="0" end="10"/>
+			<lne id="3982" begin="11" end="11"/>
+			<lne id="3983" begin="0" end="12"/>
+		</linenumbertable>
+		<localvariabletable>
+			<lve slot="0" name="103" begin="0" end="12"/>
+		</localvariabletable>
+	</operation>
+	<operation name="3949">
+		<context type="3984"/>
+		<parameters>
+		</parameters>
+		<code>
+			<push arg="3985"/>
+			<load arg="505"/>
+			<get arg="2334"/>
+			<call arg="528"/>
+			<call arg="500"/>
+			<push arg="3144"/>
+			<call arg="500"/>
+		</code>
+		<linenumbertable>
+			<lne id="3986" begin="0" end="0"/>
+			<lne id="3987" begin="1" end="1"/>
+			<lne id="3988" begin="1" end="2"/>
+			<lne id="3989" begin="1" end="3"/>
+			<lne id="3990" begin="0" end="4"/>
+			<lne id="3991" begin="5" end="5"/>
+			<lne id="3992" begin="0" end="6"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="6"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3920">
-		<context type="3921"/>
+	<operation name="3993">
+		<context type="3994"/>
 		<parameters>
 		</parameters>
 		<code>
 			<load arg="505"/>
-			<push arg="2278"/>
+			<push arg="2301"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="2123"/>
+			<call arg="881"/>
+			<if arg="2146"/>
 			<load arg="505"/>
-			<push arg="2310"/>
+			<push arg="2333"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="3053"/>
+			<call arg="881"/>
+			<if arg="3075"/>
 			<load arg="505"/>
-			<push arg="2300"/>
+			<push arg="2323"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="1616"/>
+			<call arg="881"/>
+			<if arg="1640"/>
 			<load arg="505"/>
-			<push arg="2286"/>
+			<push arg="2309"/>
 			<push arg="50"/>
 			<findme/>
-			<call arg="854"/>
-			<if arg="1615"/>
+			<call arg="881"/>
+			<if arg="1639"/>
 			<push arg="32"/>
 			<push arg="26"/>
 			<new/>
@@ -15010,29 +15302,29 @@
 			<load arg="505"/>
 			<store arg="105"/>
 			<load arg="105"/>
-			<get arg="2287"/>
-			<call arg="1328"/>
-			<load arg="105"/>
-			<get arg="2288"/>
-			<call arg="1328"/>
-			<call arg="199"/>
-			<goto arg="3067"/>
-			<load arg="505"/>
-			<store arg="105"/>
-			<load arg="105"/>
-			<get arg="2287"/>
-			<call arg="1328"/>
-			<load arg="105"/>
-			<get arg="2288"/>
-			<call arg="1328"/>
-			<call arg="199"/>
-			<goto arg="1737"/>
-			<load arg="505"/>
-			<store arg="105"/>
+			<get arg="2310"/>
+			<call arg="1352"/>
 			<load arg="105"/>
 			<get arg="2311"/>
-			<call arg="1328"/>
-			<goto arg="2068"/>
+			<call arg="1352"/>
+			<call arg="199"/>
+			<goto arg="3089"/>
+			<load arg="505"/>
+			<store arg="105"/>
+			<load arg="105"/>
+			<get arg="2310"/>
+			<call arg="1352"/>
+			<load arg="105"/>
+			<get arg="2311"/>
+			<call arg="1352"/>
+			<call arg="199"/>
+			<goto arg="1761"/>
+			<load arg="505"/>
+			<store arg="105"/>
+			<load arg="105"/>
+			<get arg="2334"/>
+			<call arg="1352"/>
+			<goto arg="2091"/>
 			<load arg="505"/>
 			<store arg="105"/>
 			<push arg="32"/>
@@ -15043,62 +15335,62 @@
 			<call arg="36"/>
 		</code>
 		<linenumbertable>
-			<lne id="3922" begin="0" end="0"/>
-			<lne id="3923" begin="1" end="3"/>
-			<lne id="3924" begin="0" end="4"/>
-			<lne id="3925" begin="6" end="6"/>
-			<lne id="3926" begin="7" end="9"/>
-			<lne id="3927" begin="6" end="10"/>
-			<lne id="3928" begin="12" end="12"/>
-			<lne id="3929" begin="13" end="15"/>
-			<lne id="3930" begin="12" end="16"/>
-			<lne id="3931" begin="18" end="18"/>
-			<lne id="3932" begin="19" end="21"/>
-			<lne id="3933" begin="18" end="22"/>
-			<lne id="3934" begin="24" end="26"/>
-			<lne id="3935" begin="28" end="28"/>
-			<lne id="3936" begin="30" end="30"/>
-			<lne id="3937" begin="30" end="31"/>
-			<lne id="3938" begin="30" end="32"/>
-			<lne id="3939" begin="33" end="33"/>
-			<lne id="3940" begin="33" end="34"/>
-			<lne id="3941" begin="33" end="35"/>
-			<lne id="3942" begin="30" end="36"/>
-			<lne id="3943" begin="28" end="36"/>
-			<lne id="3944" begin="18" end="36"/>
-			<lne id="3945" begin="38" end="38"/>
-			<lne id="3946" begin="40" end="40"/>
-			<lne id="3947" begin="40" end="41"/>
-			<lne id="3948" begin="40" end="42"/>
-			<lne id="3949" begin="43" end="43"/>
-			<lne id="3950" begin="43" end="44"/>
-			<lne id="3951" begin="43" end="45"/>
-			<lne id="3952" begin="40" end="46"/>
-			<lne id="3953" begin="38" end="46"/>
-			<lne id="3954" begin="12" end="46"/>
-			<lne id="3955" begin="48" end="48"/>
-			<lne id="3956" begin="50" end="50"/>
-			<lne id="3957" begin="50" end="51"/>
-			<lne id="3958" begin="50" end="52"/>
-			<lne id="3959" begin="48" end="52"/>
-			<lne id="3960" begin="6" end="52"/>
-			<lne id="3961" begin="54" end="54"/>
-			<lne id="3962" begin="59" end="59"/>
-			<lne id="3963" begin="59" end="60"/>
-			<lne id="3964" begin="56" end="61"/>
-			<lne id="3965" begin="54" end="61"/>
-			<lne id="3966" begin="0" end="61"/>
+			<lne id="3995" begin="0" end="0"/>
+			<lne id="3996" begin="1" end="3"/>
+			<lne id="3997" begin="0" end="4"/>
+			<lne id="3998" begin="6" end="6"/>
+			<lne id="3999" begin="7" end="9"/>
+			<lne id="4000" begin="6" end="10"/>
+			<lne id="4001" begin="12" end="12"/>
+			<lne id="4002" begin="13" end="15"/>
+			<lne id="4003" begin="12" end="16"/>
+			<lne id="4004" begin="18" end="18"/>
+			<lne id="4005" begin="19" end="21"/>
+			<lne id="4006" begin="18" end="22"/>
+			<lne id="4007" begin="24" end="26"/>
+			<lne id="4008" begin="28" end="28"/>
+			<lne id="4009" begin="30" end="30"/>
+			<lne id="4010" begin="30" end="31"/>
+			<lne id="4011" begin="30" end="32"/>
+			<lne id="4012" begin="33" end="33"/>
+			<lne id="4013" begin="33" end="34"/>
+			<lne id="4014" begin="33" end="35"/>
+			<lne id="4015" begin="30" end="36"/>
+			<lne id="4016" begin="28" end="36"/>
+			<lne id="4017" begin="18" end="36"/>
+			<lne id="4018" begin="38" end="38"/>
+			<lne id="4019" begin="40" end="40"/>
+			<lne id="4020" begin="40" end="41"/>
+			<lne id="4021" begin="40" end="42"/>
+			<lne id="4022" begin="43" end="43"/>
+			<lne id="4023" begin="43" end="44"/>
+			<lne id="4024" begin="43" end="45"/>
+			<lne id="4025" begin="40" end="46"/>
+			<lne id="4026" begin="38" end="46"/>
+			<lne id="4027" begin="12" end="46"/>
+			<lne id="4028" begin="48" end="48"/>
+			<lne id="4029" begin="50" end="50"/>
+			<lne id="4030" begin="50" end="51"/>
+			<lne id="4031" begin="50" end="52"/>
+			<lne id="4032" begin="48" end="52"/>
+			<lne id="4033" begin="6" end="52"/>
+			<lne id="4034" begin="54" end="54"/>
+			<lne id="4035" begin="59" end="59"/>
+			<lne id="4036" begin="59" end="60"/>
+			<lne id="4037" begin="56" end="61"/>
+			<lne id="4038" begin="54" end="61"/>
+			<lne id="4039" begin="0" end="61"/>
 		</linenumbertable>
 		<localvariabletable>
-			<lve slot="1" name="3967" begin="29" end="36"/>
-			<lve slot="1" name="3967" begin="39" end="46"/>
-			<lve slot="1" name="3967" begin="49" end="52"/>
-			<lve slot="1" name="3967" begin="55" end="61"/>
+			<lve slot="1" name="4040" begin="29" end="36"/>
+			<lve slot="1" name="4040" begin="39" end="46"/>
+			<lve slot="1" name="4040" begin="49" end="52"/>
+			<lve slot="1" name="4040" begin="55" end="61"/>
 			<lve slot="0" name="103" begin="0" end="61"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3876">
-		<context type="3968"/>
+	<operation name="3949">
+		<context type="4041"/>
 		<parameters>
 		</parameters>
 		<code>
@@ -15107,163 +15399,163 @@
 			<get arg="212"/>
 		</code>
 		<linenumbertable>
-			<lne id="3969" begin="0" end="0"/>
-			<lne id="3970" begin="0" end="1"/>
-			<lne id="3971" begin="0" end="2"/>
+			<lne id="4042" begin="0" end="0"/>
+			<lne id="4043" begin="0" end="1"/>
+			<lne id="4044" begin="0" end="2"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="2"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3876">
-		<context type="3972"/>
+	<operation name="3949">
+		<context type="4045"/>
 		<parameters>
 		</parameters>
 		<code>
-			<push arg="3121"/>
+			<push arg="3143"/>
 			<load arg="505"/>
-			<get arg="3973"/>
-			<call arg="523"/>
+			<get arg="4046"/>
+			<call arg="528"/>
 			<call arg="500"/>
-			<push arg="3882"/>
+			<push arg="3955"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<get arg="3974"/>
-			<call arg="523"/>
+			<get arg="4047"/>
+			<call arg="528"/>
 			<call arg="500"/>
-			<push arg="3122"/>
+			<push arg="3144"/>
 			<call arg="500"/>
 		</code>
 		<linenumbertable>
-			<lne id="3975" begin="0" end="0"/>
-			<lne id="3976" begin="1" end="1"/>
-			<lne id="3977" begin="1" end="2"/>
-			<lne id="3978" begin="1" end="3"/>
-			<lne id="3979" begin="0" end="4"/>
-			<lne id="3980" begin="5" end="5"/>
-			<lne id="3981" begin="0" end="6"/>
-			<lne id="3982" begin="7" end="7"/>
-			<lne id="3983" begin="7" end="8"/>
-			<lne id="3984" begin="7" end="9"/>
-			<lne id="3985" begin="0" end="10"/>
-			<lne id="3986" begin="11" end="11"/>
-			<lne id="3987" begin="0" end="12"/>
+			<lne id="4048" begin="0" end="0"/>
+			<lne id="4049" begin="1" end="1"/>
+			<lne id="4050" begin="1" end="2"/>
+			<lne id="4051" begin="1" end="3"/>
+			<lne id="4052" begin="0" end="4"/>
+			<lne id="4053" begin="5" end="5"/>
+			<lne id="4054" begin="0" end="6"/>
+			<lne id="4055" begin="7" end="7"/>
+			<lne id="4056" begin="7" end="8"/>
+			<lne id="4057" begin="7" end="9"/>
+			<lne id="4058" begin="0" end="10"/>
+			<lne id="4059" begin="11" end="11"/>
+			<lne id="4060" begin="0" end="12"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="12"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3876">
-		<context type="3988"/>
+	<operation name="3949">
+		<context type="4061"/>
 		<parameters>
 		</parameters>
 		<code>
-			<push arg="3989"/>
+			<push arg="4062"/>
 			<load arg="505"/>
 			<get arg="502"/>
 			<call arg="500"/>
-			<push arg="3990"/>
+			<push arg="4063"/>
 			<call arg="500"/>
 			<load arg="505"/>
-			<get arg="526"/>
+			<get arg="531"/>
 			<call arg="500"/>
-			<push arg="3990"/>
+			<push arg="4063"/>
 			<call arg="500"/>
 			<load arg="505"/>
 			<get arg="492"/>
 			<call arg="500"/>
-			<push arg="3122"/>
+			<push arg="3144"/>
 			<call arg="500"/>
 		</code>
 		<linenumbertable>
-			<lne id="3991" begin="0" end="0"/>
-			<lne id="3992" begin="1" end="1"/>
-			<lne id="3993" begin="1" end="2"/>
-			<lne id="3994" begin="0" end="3"/>
-			<lne id="3995" begin="4" end="4"/>
-			<lne id="3996" begin="0" end="5"/>
-			<lne id="3997" begin="6" end="6"/>
-			<lne id="3998" begin="6" end="7"/>
-			<lne id="3999" begin="0" end="8"/>
-			<lne id="4000" begin="9" end="9"/>
-			<lne id="4001" begin="0" end="10"/>
-			<lne id="4002" begin="11" end="11"/>
-			<lne id="4003" begin="11" end="12"/>
-			<lne id="4004" begin="0" end="13"/>
-			<lne id="4005" begin="14" end="14"/>
-			<lne id="4006" begin="0" end="15"/>
+			<lne id="4064" begin="0" end="0"/>
+			<lne id="4065" begin="1" end="1"/>
+			<lne id="4066" begin="1" end="2"/>
+			<lne id="4067" begin="0" end="3"/>
+			<lne id="4068" begin="4" end="4"/>
+			<lne id="4069" begin="0" end="5"/>
+			<lne id="4070" begin="6" end="6"/>
+			<lne id="4071" begin="6" end="7"/>
+			<lne id="4072" begin="0" end="8"/>
+			<lne id="4073" begin="9" end="9"/>
+			<lne id="4074" begin="0" end="10"/>
+			<lne id="4075" begin="11" end="11"/>
+			<lne id="4076" begin="11" end="12"/>
+			<lne id="4077" begin="0" end="13"/>
+			<lne id="4078" begin="14" end="14"/>
+			<lne id="4079" begin="0" end="15"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="15"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3876">
-		<context type="4007"/>
+	<operation name="3949">
+		<context type="4080"/>
 		<parameters>
 		</parameters>
 		<code>
-			<push arg="4008"/>
+			<push arg="4081"/>
 			<load arg="505"/>
-			<get arg="711"/>
+			<get arg="741"/>
 			<call arg="500"/>
-			<push arg="3122"/>
+			<push arg="3144"/>
 			<call arg="500"/>
 		</code>
 		<linenumbertable>
-			<lne id="4009" begin="0" end="0"/>
-			<lne id="4010" begin="1" end="1"/>
-			<lne id="4011" begin="1" end="2"/>
-			<lne id="4012" begin="0" end="3"/>
-			<lne id="4013" begin="4" end="4"/>
-			<lne id="4014" begin="0" end="5"/>
+			<lne id="4082" begin="0" end="0"/>
+			<lne id="4083" begin="1" end="1"/>
+			<lne id="4084" begin="1" end="2"/>
+			<lne id="4085" begin="0" end="3"/>
+			<lne id="4086" begin="4" end="4"/>
+			<lne id="4087" begin="0" end="5"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="5"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3876">
-		<context type="4015"/>
+	<operation name="3949">
+		<context type="4088"/>
 		<parameters>
 		</parameters>
 		<code>
-			<push arg="4016"/>
+			<push arg="4089"/>
 			<load arg="505"/>
-			<get arg="836"/>
+			<get arg="865"/>
 			<call arg="500"/>
-			<push arg="3122"/>
+			<push arg="3144"/>
 			<call arg="500"/>
 		</code>
 		<linenumbertable>
-			<lne id="4017" begin="0" end="0"/>
-			<lne id="4018" begin="1" end="1"/>
-			<lne id="4019" begin="1" end="2"/>
-			<lne id="4020" begin="0" end="3"/>
-			<lne id="4021" begin="4" end="4"/>
-			<lne id="4022" begin="0" end="5"/>
+			<lne id="4090" begin="0" end="0"/>
+			<lne id="4091" begin="1" end="1"/>
+			<lne id="4092" begin="1" end="2"/>
+			<lne id="4093" begin="0" end="3"/>
+			<lne id="4094" begin="4" end="4"/>
+			<lne id="4095" begin="0" end="5"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="5"/>
 		</localvariabletable>
 	</operation>
-	<operation name="3876">
-		<context type="4023"/>
+	<operation name="3949">
+		<context type="4096"/>
 		<parameters>
 		</parameters>
 		<code>
-			<push arg="4024"/>
+			<push arg="4097"/>
 			<load arg="505"/>
-			<get arg="837"/>
+			<get arg="866"/>
 			<call arg="500"/>
-			<push arg="3122"/>
+			<push arg="3144"/>
 			<call arg="500"/>
 		</code>
 		<linenumbertable>
-			<lne id="4025" begin="0" end="0"/>
-			<lne id="4026" begin="1" end="1"/>
-			<lne id="4027" begin="1" end="2"/>
-			<lne id="4028" begin="0" end="3"/>
-			<lne id="4029" begin="4" end="4"/>
-			<lne id="4030" begin="0" end="5"/>
+			<lne id="4098" begin="0" end="0"/>
+			<lne id="4099" begin="1" end="1"/>
+			<lne id="4100" begin="1" end="2"/>
+			<lne id="4101" begin="0" end="3"/>
+			<lne id="4102" begin="4" end="4"/>
+			<lne id="4103" begin="0" end="5"/>
 		</linenumbertable>
 		<localvariabletable>
 			<lve slot="0" name="103" begin="0" end="5"/>