Переглянути джерело

Added validations for orthogonal states.

markus.muehlbrandt@gmail.com 12 роки тому
батько
коміт
fbc918d88d
24 змінених файлів з 1674 додано та 60 видалено
  1. 86 3
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/SGraphJavaValidator.java
  2. 1 1
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/FlowOptimizer_ExecutionEntryTest.java
  3. 5 5
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/HistoryTest.java
  4. 1 1
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/LocalReactionTest.java
  5. 4 4
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerHierarchyTest.java
  6. 5 5
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerHistoryTest.java
  7. 5 5
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerOrthogonalityTest.java
  8. 5 5
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerSCTest.java
  9. 5 5
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateReactionTest.java
  10. 6 6
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateTest.java
  11. 5 5
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateVectorTest.java
  12. 4 4
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencertDeclarationsTest.java
  13. 1 1
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/SCTTestUtil.java
  14. 5 5
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/SelfTransitionTest.java
  15. 1 1
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/StatechartEnterExistActionTest.java
  16. 2 1
      test-plugins/org.yakindu.sct.model.sgraph.test/build.properties
  17. 77 0
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/SGraphJavaValidationTest.java
  18. 2 2
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/util/SgraphTestFactory.java
  19. 33 0
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/util/SGraphTestModelUtil.java
  20. 362 0
      test-plugins/org.yakindu.sct.model.sgraph.test/testmodels/NotOrthogonalRegion01.sct
  21. 362 0
      test-plugins/org.yakindu.sct.model.sgraph.test/testmodels/NotOrthogonalRegion02.sct
  22. 375 0
      test-plugins/org.yakindu.sct.model.sgraph.test/testmodels/NotOrthogonalRegion03.sct
  23. 321 0
      test-plugins/org.yakindu.sct.model.sgraph.test/testmodels/OrthogonalRegion01.sct
  24. 1 1
      test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/util/AbstractSTextTest.java

+ 86 - 3
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/SGraphJavaValidator.java

@@ -10,6 +10,8 @@
  */
 package org.yakindu.sct.model.sgraph.validation;
 
+import java.util.List;
+
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.util.EcoreUtil;
@@ -18,9 +20,12 @@ import org.eclipse.xtext.validation.Check;
 import org.eclipse.xtext.validation.CheckType;
 import org.eclipse.xtext.validation.EValidatorRegistrar;
 import org.yakindu.sct.model.sgraph.Choice;
+import org.yakindu.sct.model.sgraph.CompositeElement;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.EntryKind;
 import org.yakindu.sct.model.sgraph.FinalState;
+import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.sct.model.sgraph.Synchronization;
 import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.Vertex;
 
@@ -31,7 +36,8 @@ import com.google.inject.Inject;
  * {@link org.eclipse.xtext.validation.ComposedChecks}) of another language
  * specific validator. It does not register itself as an EValidator.
  * 
- * This validator checks for common graphical constraints for all kinds of state charts. 
+ * This validator checks for common graphical constraints for all kinds of state
+ * charts.
  * 
  * @author terfloth
  * @author muelder
@@ -50,7 +56,15 @@ public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 	public static final String ISSUE_ENTRY_WITH_TRIGGER = "Outgoing Transitions from Entries can not have a Trigger or Guard.";
 	public static final String ISSUE_CHOICE_WITHOUT_OUTGOING_TRANSITION = "A choice must have at least one outgoing transition.";
 	public static final String ISSUE_SUBMACHINE_UNRESOLVABLE = "Referenced Substatemachine '%s'does not exist!";
-
+	public static final String ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_ORTHOGONAL = "The target states of a synchronization must be orthogonal!";
+	public static final String ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_WITHIN_SAME_PARENTSTATE = "The target states of a synchronization aren't contained in the same parent state!";
+	public static final String ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_ORTHOGONAL = "The source states of a synchronization must be orthogonal!";
+	public static final String ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_WITHIN_SAME_PARENTSTATE = "The source states of a synchronization aren't contained in the same parent state!";
+	
+	public SGraphJavaValidator() {
+		// TODO Auto-generated constructor stub
+	}
+	
 	@Check(CheckType.FAST)
 	public void vertexNotReachable(Vertex vertex) {
 		if (!(vertex instanceof Entry)) {
@@ -91,7 +105,6 @@ public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 		}
 	}
 
-
 	@Check(CheckType.FAST)
 	public void outgoingTransitionCount(FinalState finalState) {
 		if ((finalState.getOutgoingTransitions().size() > 0)) {
@@ -135,6 +148,76 @@ public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 		}
 	}
 
+	@Check(CheckType.FAST)
+	public void orthogonalStates(Synchronization fork) {
+		//check target states
+		orthogonalStates(fork, true);
+		//check source states
+		orthogonalStates(fork, false);
+	}
+	
+	private void orthogonalStates(Synchronization fork, boolean searchTarget) {
+		List<Transition> transitions = searchTarget ? fork
+				.getOutgoingTransitions() : fork.getIncomingTransitions();
+		if (transitions.size() > 1) {
+			final Transition firstTransition = transitions.get(0);
+			final Vertex vertex = searchTarget ? firstTransition.getTarget()
+					: firstTransition.getSource();
+
+			CompositeElement root = findCommonRootCompositeElement(vertex
+					.getParentRegion().getComposite(), fork, searchTarget);
+
+			if (root != null) {
+				for (Transition t : transitions) {
+					Region parentRegion = searchTarget ? t.getTarget()
+							.getParentRegion() : t.getSource()
+							.getParentRegion();
+					for (Transition transition : transitions) {
+						if (transition != t
+								&& EcoreUtil.isAncestor(parentRegion,
+										searchTarget ? transition.getTarget()
+												: transition.getSource())) {
+							error(searchTarget ? ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_ORTHOGONAL
+									: ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_ORTHOGONAL,
+									fork, null, -1);
+							break;
+						}
+					}
+				}
+			} else {
+				error(searchTarget ? ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_WITHIN_SAME_PARENTSTATE
+						: ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_WITHIN_SAME_PARENTSTATE,
+						fork, null, -1);
+			}
+
+		}
+	}
+
+	private CompositeElement findCommonRootCompositeElement(
+			CompositeElement root, Synchronization fork, boolean searchTarget) {
+
+		CompositeElement ret = root;
+
+		if (ret != fork.getParentRegion().getComposite()) {
+			for (Transition transition : searchTarget ? fork
+					.getOutgoingTransitions() : fork.getIncomingTransitions()) {
+				if (ret != null
+						&& !EcoreUtil.isAncestor(ret,
+								searchTarget ? transition.getTarget()
+										: transition.getSource())) {
+					if (ret.eContainer() instanceof Region) {
+						final CompositeElement newRoot = ((Region) root
+								.eContainer()).getComposite();
+						ret = findCommonRootCompositeElement(newRoot, fork,
+								searchTarget);
+					}
+				}
+			}
+			return ret;
+		}
+		return null;
+	}
+
 	@Override
 	public boolean isLanguageSpecific() {
 		return false;

+ 1 - 1
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/FlowOptimizer_ExecutionEntryTest.java

@@ -2,7 +2,7 @@ package org.yakindu.sct.model.sexec.transformation.test;
 
 import static org.junit.Assert.fail;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory.*;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory.*;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
 
 import org.eclipse.emf.common.util.TreeIterator;

+ 5 - 5
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/HistoryTest.java

@@ -4,11 +4,11 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;

+ 1 - 1
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/LocalReactionTest.java

@@ -4,7 +4,7 @@ import static org.junit.Assert.*;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.flattenSequenceStepsAsList;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory.*;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory.*;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
 
 import java.util.List;

+ 4 - 4
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerHierarchyTest.java

@@ -3,10 +3,10 @@ package org.yakindu.sct.model.sexec.transformation.test;
 import static org.junit.Assert.*;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createExitAssignment;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;

+ 5 - 5
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerHistoryTest.java

@@ -4,11 +4,11 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;

+ 5 - 5
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerOrthogonalityTest.java

@@ -6,11 +6,11 @@ import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findStateFullyQualified;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createExitAssignment;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;

+ 5 - 5
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerSCTest.java

@@ -4,11 +4,11 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;

+ 5 - 5
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateReactionTest.java

@@ -5,11 +5,11 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createAlwaysEventSpec;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAction;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEventDefinition;

+ 6 - 6
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateTest.java

@@ -8,12 +8,12 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createFinalState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createFinalState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAction;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEventDefinition;

+ 5 - 5
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateVectorTest.java

@@ -2,11 +2,11 @@ package org.yakindu.sct.model.sexec.transformation.test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 
 import org.junit.Test;
 import org.yakindu.sct.model.sexec.ExecutionFlow;

+ 4 - 4
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencertDeclarationsTest.java

@@ -5,10 +5,10 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
 
 import org.junit.Test;

+ 1 - 1
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/SCTTestUtil.java

@@ -1,6 +1,6 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory.*;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory.*;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
 
 import java.util.Collection;

+ 5 - 5
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/SelfTransitionTest.java

@@ -2,11 +2,11 @@ package org.yakindu.sct.model.sexec.transformation.test;
 
 import static org.junit.Assert.assertEquals;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
 

+ 1 - 1
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/StatechartEnterExistActionTest.java

@@ -6,7 +6,7 @@ import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.flattenSequenceStepsAsList;
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory.*;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory.*;
 import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
 
 import java.util.List;

+ 2 - 1
test-plugins/org.yakindu.sct.model.sgraph.test/build.properties

@@ -1,4 +1,5 @@
 source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
-               .
+               .,\
+               testmodels/

+ 77 - 0
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/SGraphJavaValidationTest.java

@@ -24,12 +24,19 @@ import static org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator.ISSUE_
 import static org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator.ISSUE_NODE_NOT_REACHABLE;
 import static org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator.ISSUE_STATE_WITHOUT_NAME;
 import static org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator.ISSUE_STATE_WITHOUT_OUTGOING_TRANSITION;
+import static org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator.ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_ORTHOGONAL;
+import static org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator.ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_ORTHOGONAL;
+import static org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator.ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_WITHIN_SAME_PARENTSTATE;
+import static org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator.ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_WITHIN_SAME_PARENTSTATE;
 
 import java.lang.reflect.Method;
 import java.util.HashMap;
+import java.util.Iterator;
 
 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.EObject;
 import org.eclipse.xtext.junit4.InjectWith;
 import org.eclipse.xtext.junit4.XtextRunner;
 import org.eclipse.xtext.validation.Check;
@@ -45,8 +52,10 @@ import org.yakindu.sct.model.sgraph.SGraphFactory;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.Synchronization;
 import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.Vertex;
+import org.yakindu.sct.model.sgraph.test.util.SGraphTestModelUtil;
 import org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator;
 import org.yakindu.sct.model.stext.stext.StextFactory;
 import org.yakindu.sct.model.stext.validation.STextJavaValidator;
@@ -359,6 +368,74 @@ public class SGraphJavaValidationTest {
 		assertError(diagnostics, ISSUE_CHOICE_WITHOUT_OUTGOING_TRANSITION);
 	}
 
+	@Test
+	public void orthogonalStates() {
+		statechart = SGraphTestModelUtil.loadStatechart("NotOrthogonalRegion01.sct");
+		Iterator<EObject> iter = statechart.eAllContents();
+		while (iter.hasNext()) {
+			EObject element = iter.next();
+			if (element instanceof Synchronization) {
+				assertFalse(validator.validate(element, diagnostics,
+						new HashMap<Object, Object>()));
+			}
+		}
+
+		assertIssueCount(diagnostics, 2);
+		assertError(diagnostics,
+				ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_ORTHOGONAL);
+		assertError(diagnostics,
+				ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_ORTHOGONAL);
+
+		diagnostics = new BasicDiagnostic();
+		statechart = SGraphTestModelUtil.loadStatechart("NotOrthogonalRegion02.sct");
+		iter = statechart.eAllContents();
+		while (iter.hasNext()) {
+			EObject element = iter.next();
+			if (element instanceof Synchronization) {
+				assertFalse(validator.validate(element, diagnostics,
+						new HashMap<Object, Object>()));
+			}
+		}
+
+		assertIssueCount(diagnostics, 2);
+		assertError(diagnostics,
+				ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_WITHIN_SAME_PARENTSTATE);
+		assertError(diagnostics,
+				ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_WITHIN_SAME_PARENTSTATE);
+
+		diagnostics = new BasicDiagnostic();
+		statechart = SGraphTestModelUtil.loadStatechart("NotOrthogonalRegion03.sct");
+		iter = statechart.eAllContents();
+		while (iter.hasNext()) {
+			EObject element = iter.next();
+			if (element instanceof Synchronization) {
+				assertFalse(validator.validate(element, diagnostics,
+						new HashMap<Object, Object>()));
+			}
+		}
+
+		assertIssueCount(diagnostics, 2);
+		assertError(diagnostics,
+				ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_WITHIN_SAME_PARENTSTATE);
+		assertError(diagnostics,
+				ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_WITHIN_SAME_PARENTSTATE);
+	}
+
+	@Test
+	public void orthogonalStatesValid() {
+		statechart = SGraphTestModelUtil.loadStatechart("OrthogonalRegion01.sct");
+		Iterator<EObject> iter = statechart.eAllContents();
+		while (iter.hasNext()) {
+			EObject element = iter.next();
+			if (element instanceof Synchronization) {
+				assertTrue(validator.validate(element, diagnostics,
+						new HashMap<Object, Object>()));
+			}
+		}
+
+		assertIssueCount(diagnostics, 0);
+	}
+
 	/**
 	 * checks tht each @Check method of {@link STextJavaValidator} has a @Test
 	 * method in this class with the same name

+ 2 - 2
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/util/SgraphTestFactory.java

@@ -11,8 +11,8 @@ import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.Vertex;
 import org.yakindu.sct.model.sgraph.impl.SGraphFactoryImpl;
 
-public class SgraphTestFactory extends SGraphFactoryImpl {
-	public static SgraphTestFactory eInstance = new SgraphTestFactory();
+public class SGraphTestFactory extends SGraphFactoryImpl {
+	public static SGraphTestFactory eInstance = new SGraphTestFactory();
 
 	public static Statechart _createStatechart(String name) {
 		Statechart sc = SGraphFactory.eINSTANCE.createStatechart();

+ 33 - 0
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/util/SGraphTestModelUtil.java

@@ -0,0 +1,33 @@
+package org.yakindu.sct.model.sgraph.test.util;
+
+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.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.sgraph.Statechart;
+
+public final class SGraphTestModelUtil {
+
+	private static final String TESTMODEL_DIR = "org.yakindu.sct.model.sgraph.test/testmodels/";
+
+	private SGraphTestModelUtil() {
+	}
+
+	public static final Statechart loadStatechart(URI uri) {
+		// Initialize the model
+		SGraphPackage.eINSTANCE.eClass();
+		// Obtain a new resource set
+		ResourceSet resSet = new ResourceSetImpl();
+
+		// Get the resource
+		Resource resource = resSet.getResource(uri, true);
+		// Get the first model element and cast it to the right type
+		Statechart statechart = (Statechart) resource.getContents().get(0);
+		return statechart;
+	}
+
+	public static final Statechart loadStatechart(String filename) {
+		return loadStatechart(URI.createPlatformPluginURI(TESTMODEL_DIR + filename, true));
+	}
+}

+ 362 - 0
test-plugins/org.yakindu.sct.model.sgraph.test/testmodels/NotOrthogonalRegion01.sct

@@ -0,0 +1,362 @@
+<?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:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
+  <sgraph:Statechart xmi:id="_cCYI4IcVEeK5XMQGITKBlg" name="default">
+    <regions xmi:id="_cCYv8ocVEeK5XMQGITKBlg" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_cDTV8YcVEeK5XMQGITKBlg">
+        <outgoingTransitions xmi:id="_cDVyM4cVEeK5XMQGITKBlg" target="_pTDskKWlEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_o7MjAKWhEeKBrrCTA2_OoQ" name="A">
+        <regions xmi:id="_rHmwMKWhEeKBrrCTA2_OoQ">
+          <vertices xsi:type="sgraph:State" xmi:id="_rwcR0KWhEeKBrrCTA2_OoQ" specification="" name="AA" incomingTransitions="_aR_5cKgcEeKmQrSVAGlxRw">
+            <outgoingTransitions xmi:id="_D06iAKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+          </vertices>
+        </regions>
+        <regions xmi:id="_qyRZYKWhEeKBrrCTA2_OoQ">
+          <vertices xsi:type="sgraph:State" xmi:id="_sQOlIKWhEeKBrrCTA2_OoQ" name="AB">
+            <regions xmi:id="_wwVTQKWhEeKBrrCTA2_OoQ">
+              <vertices xsi:type="sgraph:State" xmi:id="_yOAyMKWhEeKBrrCTA2_OoQ" name="ABA" incomingTransitions="_2kUEEKWhEeKBrrCTA2_OoQ">
+                <outgoingTransitions xmi:id="_El0agKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+              </vertices>
+            </regions>
+            <regions xmi:id="_wDLSUKWhEeKBrrCTA2_OoQ">
+              <vertices xsi:type="sgraph:State" xmi:id="_ymDewKWhEeKBrrCTA2_OoQ" name="ABB" incomingTransitions="_2EAzYKWhEeKBrrCTA2_OoQ">
+                <outgoingTransitions xmi:id="_FMkRcKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+              </vertices>
+            </regions>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_oz1cIKglEeKc3Yk9SnH-yA" name="bdd" incomingTransitions="_p4ORUKglEeKc3Yk9SnH-yA">
+            <outgoingTransitions xmi:id="_sLAzUKglEeKc3Yk9SnH-yA" specification="" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+          </vertices>
+        </regions>
+      </vertices>
+      <vertices xsi:type="sgraph:Synchronization" xmi:id="_zGFCoKWhEeKBrrCTA2_OoQ" incomingTransitions="_0mhhsKWhEeKBrrCTA2_OoQ">
+        <outgoingTransitions xmi:id="_2EAzYKWhEeKBrrCTA2_OoQ" specification="" target="_ymDewKWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_2kUEEKWhEeKBrrCTA2_OoQ" specification="" target="_yOAyMKWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_aR_5cKgcEeKmQrSVAGlxRw" specification="" target="_rwcR0KWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_p4ORUKglEeKc3Yk9SnH-yA" specification="" target="_oz1cIKglEeKc3Yk9SnH-yA"/>
+      </vertices>
+      <vertices xsi:type="sgraph:Synchronization" xmi:id="_CUGPgKWjEeKBrrCTA2_OoQ" incomingTransitions="_D06iAKWjEeKBrrCTA2_OoQ _El0agKWjEeKBrrCTA2_OoQ _FMkRcKWjEeKBrrCTA2_OoQ _sLAzUKglEeKc3Yk9SnH-yA">
+        <outgoingTransitions xmi:id="_M2xkEKWjEeKBrrCTA2_OoQ" specification="" target="_I2WbkKWjEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:FinalState" xmi:id="_I2WbkKWjEeKBrrCTA2_OoQ" incomingTransitions="_M2xkEKWjEeKBrrCTA2_OoQ"/>
+      <vertices xsi:type="sgraph:State" xmi:id="_pTDskKWlEeKBrrCTA2_OoQ" name="B" incomingTransitions="_cDVyM4cVEeK5XMQGITKBlg">
+        <outgoingTransitions xmi:id="_0mhhsKWhEeKBrrCTA2_OoQ" target="_zGFCoKWhEeKBrrCTA2_OoQ"/>
+      </vertices>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_cCYv8IcVEeK5XMQGITKBlg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_cCYI4IcVEeK5XMQGITKBlg" measurementUnit="Pixel">
+    <children xmi:id="_cCbzQIcVEeK5XMQGITKBlg" type="Region" element="_cCYv8ocVEeK5XMQGITKBlg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDSu4IcVEeK5XMQGITKBlg" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDSu4YcVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDSu4ocVEeK5XMQGITKBlg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_cDSu44cVEeK5XMQGITKBlg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_cDT9AIcVEeK5XMQGITKBlg" type="Entry" element="_cDTV8YcVEeK5XMQGITKBlg">
+          <children xmi:id="_cDT9A4cVEeK5XMQGITKBlg" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_cDUkEIcVEeK5XMQGITKBlg" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_cDUkEYcVEeK5XMQGITKBlg"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_cDUkEocVEeK5XMQGITKBlg"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_cDT9BIcVEeK5XMQGITKBlg" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDT9BYcVEeK5XMQGITKBlg"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_cDT9AYcVEeK5XMQGITKBlg" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDUkE4cVEeK5XMQGITKBlg" x="269" y="12" width="15" height="15"/>
+        </children>
+        <children xmi:id="_o8EFsKWhEeKBrrCTA2_OoQ" type="State" element="_o7MjAKWhEeKBrrCTA2_OoQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_o8F64KWhEeKBrrCTA2_OoQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_o8F64aWhEeKBrrCTA2_OoQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_o8F64qWhEeKBrrCTA2_OoQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o8F646WhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_o8Gh8KWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o8Gh8aWhEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o8Gh8qWhEeKBrrCTA2_OoQ" type="StateFigureCompartment">
+            <children xmi:id="_rHsPwKWhEeKBrrCTA2_OoQ" type="Region" element="_rHmwMKWhEeKBrrCTA2_OoQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_rHsPw6WhEeKBrrCTA2_OoQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_rHsPxKWhEeKBrrCTA2_OoQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_rHs20KWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_rHs20aWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_rwgjQKWhEeKBrrCTA2_OoQ" type="State" element="_rwcR0KWhEeKBrrCTA2_OoQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_rwhxYKWhEeKBrrCTA2_OoQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_rwhxYaWhEeKBrrCTA2_OoQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_rwhxYqWhEeKBrrCTA2_OoQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_rwhxY6WhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_rwhxZKWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rwhxZaWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_rwiYcKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_rwgjQaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_rwgjQqWhEeKBrrCTA2_OoQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_rwiYcaWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rwgjQ6WhEeKBrrCTA2_OoQ" x="43" y="38"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rHs20qWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_rHsPwaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rHsPwqWhEeKBrrCTA2_OoQ"/>
+            </children>
+            <children xmi:id="_qyUcsKWhEeKBrrCTA2_OoQ" type="Region" element="_qyRZYKWhEeKBrrCTA2_OoQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_qyWR4KWhEeKBrrCTA2_OoQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_qyWR4aWhEeKBrrCTA2_OoQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_qyWR4qWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_qyW48KWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_sQRocKWhEeKBrrCTA2_OoQ" type="State" element="_sQOlIKWhEeKBrrCTA2_OoQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_sQS2kKWhEeKBrrCTA2_OoQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_sQS2kaWhEeKBrrCTA2_OoQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_sQS2kqWhEeKBrrCTA2_OoQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_sQTdoKWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_sQTdoaWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_sQTdoqWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_sQUrwKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment">
+                    <children xmi:id="_wwbZ4KWhEeKBrrCTA2_OoQ" type="Region" element="_wwVTQKWhEeKBrrCTA2_OoQ">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_wwbZ46WhEeKBrrCTA2_OoQ" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_wwbZ5KWhEeKBrrCTA2_OoQ"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_wwbZ5aWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_wwbZ5qWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_yOD1gKWhEeKBrrCTA2_OoQ" type="State" element="_yOAyMKWhEeKBrrCTA2_OoQ">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_yOEckKWhEeKBrrCTA2_OoQ" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_yOEckaWhEeKBrrCTA2_OoQ"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_yOFDoKWhEeKBrrCTA2_OoQ"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_yOFDoaWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_yOFqsKWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yOFqsaWhEeKBrrCTA2_OoQ"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_yOGRwKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_yOD1gaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_yOD1gqWhEeKBrrCTA2_OoQ"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_yOG40KWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yOD1g6WhEeKBrrCTA2_OoQ" x="31" y="37"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wwbZ56WhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_wwbZ4aWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wwbZ4qWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                    <children xmi:id="_wDL5YKWhEeKBrrCTA2_OoQ" type="Region" element="_wDLSUKWhEeKBrrCTA2_OoQ">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_wDMgcKWhEeKBrrCTA2_OoQ" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_wDMgcaWhEeKBrrCTA2_OoQ"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_wDMgcqWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_wDMgc6WhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_ymHwMKWhEeKBrrCTA2_OoQ" type="State" element="_ymDewKWhEeKBrrCTA2_OoQ">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_ymI-UKWhEeKBrrCTA2_OoQ" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_ymI-UaWhEeKBrrCTA2_OoQ"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_ymJlYKWhEeKBrrCTA2_OoQ"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_ymJlYaWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_ymJlYqWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_ymJlY6WhEeKBrrCTA2_OoQ"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_ymJlZKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_ymHwMaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_ymHwMqWhEeKBrrCTA2_OoQ"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_ymKMcKWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_ymHwM6WhEeKBrrCTA2_OoQ" x="23" y="47"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDMgdKWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_wDL5YaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDL5YqWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_sQSPgKWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_sQSPgaWhEeKBrrCTA2_OoQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_sQVS0KWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_sQSPgqWhEeKBrrCTA2_OoQ" x="8" y="17" width="263" height="201"/>
+                </children>
+                <children xmi:id="_o0RhAKglEeKc3Yk9SnH-yA" type="State" element="_oz1cIKglEeKc3Yk9SnH-yA">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_o0TWMKglEeKc3Yk9SnH-yA" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_o0TWMaglEeKc3Yk9SnH-yA"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_o0TWMqglEeKc3Yk9SnH-yA"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_o0TWM6glEeKc3Yk9SnH-yA" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_o0T9QKglEeKc3Yk9SnH-yA" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o0T9QaglEeKc3Yk9SnH-yA"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_o0T9QqglEeKc3Yk9SnH-yA" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_o0RhAaglEeKc3Yk9SnH-yA" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_o0RhAqglEeKc3Yk9SnH-yA"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_o0T9Q6glEeKc3Yk9SnH-yA" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o0RhA6glEeKc3Yk9SnH-yA" x="307" y="62"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_qyW48aWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_qyUcsaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_qyUcsqWhEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_o8EFsaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_o8EFsqWhEeKBrrCTA2_OoQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_o8Gh86WhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o8EFs6WhEeKBrrCTA2_OoQ" x="29" y="172" width="556" height="311"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_zGIF8KWhEeKBrrCTA2_OoQ" type="Synchronization" element="_zGFCoKWhEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_zGIF8aWhEeKBrrCTA2_OoQ" x="184" y="142" width="165" height="8"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_CUIEsKWjEeKBrrCTA2_OoQ" type="Synchronization" element="_CUGPgKWjEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_CUIEsaWjEeKBrrCTA2_OoQ" x="199" y="522" width="150" height="8"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_I2XCoKWjEeKBrrCTA2_OoQ" type="FinalState" element="_I2WbkKWjEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_I2XCoaWjEeKBrrCTA2_OoQ" x="266" y="592" width="15" height="15"/>
+        </children>
+        <children xmi:id="_pTH-AKWlEeKBrrCTA2_OoQ" type="State" element="_pTDskKWlEeKBrrCTA2_OoQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_pTIlEKWlEeKBrrCTA2_OoQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_pTIlEaWlEeKBrrCTA2_OoQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_pTIlEqWlEeKBrrCTA2_OoQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_pTIlE6WlEeKBrrCTA2_OoQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_pTJMIKWlEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pTJMIaWlEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_pTJMIqWlEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_pTH-AaWlEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_pTH-AqWlEeKBrrCTA2_OoQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_pTJzMKWlEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pTH-A6WlEeKBrrCTA2_OoQ" x="256" y="67" width="40" height="53"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDSu5IcVEeK5XMQGITKBlg"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_cCbzQYcVEeK5XMQGITKBlg" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDTV8IcVEeK5XMQGITKBlg" x="215" y="10" width="621" height="741"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_cDXnYIcVEeK5XMQGITKBlg" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDXnYocVEeK5XMQGITKBlg" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDXnY4cVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDXnZIcVEeK5XMQGITKBlg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_cDXnZYcVEeK5XMQGITKBlg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDXnZocVEeK5XMQGITKBlg"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDYOcIcVEeK5XMQGITKBlg" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_cCYv8YcVEeK5XMQGITKBlg"/>
+    <edges xmi:id="_cDXAUIcVEeK5XMQGITKBlg" type="Transition" element="_cDVyM4cVEeK5XMQGITKBlg" source="_cDT9AIcVEeK5XMQGITKBlg" target="_pTH-AKWlEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDXAVIcVEeK5XMQGITKBlg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDXAVYcVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDXAVocVEeK5XMQGITKBlg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_cDXAUYcVEeK5XMQGITKBlg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_cDXAU4cVEeK5XMQGITKBlg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_cDXAUocVEeK5XMQGITKBlg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_rEktgKWlEeKBrrCTA2_OoQ" id="(0.45,0.24528301886792453)"/>
+    </edges>
+    <edges xmi:id="_0mjW4KWhEeKBrrCTA2_OoQ" type="Transition" element="_0mhhsKWhEeKBrrCTA2_OoQ" source="_pTH-AKWlEeKBrrCTA2_OoQ" target="_zGIF8KWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_0mj98aWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_0mj98qWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_0mklAKWhEeKBrrCTA2_OoQ" x="-7" y="-66"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_0mjW4aWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_0mj98KWhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_0mjW4qWhEeKBrrCTA2_OoQ" points="[48, 13, -131, -26]$[97, 39, -82, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_qOn88KWlEeKBrrCTA2_OoQ" id="(0.775,0.6981132075471698)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_twF4kKWlEeKBrrCTA2_OoQ" id="(0.5333333333333333,0.0)"/>
+    </edges>
+    <edges xmi:id="_2EEdwKWhEeKBrrCTA2_OoQ" type="Transition" element="_2EAzYKWhEeKBrrCTA2_OoQ" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_ymHwMKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_2EFr4aWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_2EFr4qWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_2EGS8KWhEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_2EEdwaWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_2EFr4KWhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_2EEdwqWhEeKBrrCTA2_OoQ" points="[-3, 4, 135, -152]$[-103, 148, 35, -8]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_O1LJUKc2EeKIfO2sJ02rIQ" id="(0.8424242424242424,0.5)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_L_pGoKc2EeKIfO2sJ02rIQ" id="(0.4418604651162791,0.24528301886792453)"/>
+    </edges>
+    <edges xmi:id="_2kWgUKWhEeKBrrCTA2_OoQ" type="Transition" element="_2kUEEKWhEeKBrrCTA2_OoQ" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_yOD1gKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_2kXHYKWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_2kXHYaWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_2kXHYqWhEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_2kWgUaWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_2kWgU6WhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_2kWgUqWhEeKBrrCTA2_OoQ" points="[0, 1, -58, -236]$[49, 261, -9, 24]"/>
+    </edges>
+    <edges xmi:id="_D09lUKWjEeKBrrCTA2_OoQ" type="Transition" element="_D06iAKWjEeKBrrCTA2_OoQ" source="_rwgjQKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_D0-MYaWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_D0-MYqWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_D0-MY6WjEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_D09lUaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_D0-MYKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_D09lUqWjEeKBrrCTA2_OoQ" points="[24, 34, -152, -200]$[170, 230, -6, -4]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_D0_agKWjEeKBrrCTA2_OoQ" id="(0.125,0.3018867924528302)"/>
+    </edges>
+    <edges xmi:id="_El3d0KWjEeKBrrCTA2_OoQ" type="Transition" element="_El0agKWjEeKBrrCTA2_OoQ" source="_yOD1gKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_El4E4aWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_El4E4qWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_El4r8KWjEeKBrrCTA2_OoQ" x="-24" y="-18"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_El3d0aWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_El4E4KWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_El3d0qWjEeKBrrCTA2_OoQ" points="[-2, 22, 13, -112]$[-15, 134, 0, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_El89YKWjEeKBrrCTA2_OoQ" id="(0.23255813953488372,0.5471698113207547)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_El89YaWjEeKBrrCTA2_OoQ" id="(0.5066666666666667,0.0)"/>
+    </edges>
+    <edges xmi:id="_FMmtsKWjEeKBrrCTA2_OoQ" type="Transition" element="_FMkRcKWjEeKBrrCTA2_OoQ" source="_ymHwMKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_FMnUwaWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_FMnUwqWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_FMnUw6WjEeKBrrCTA2_OoQ" x="-44" y="-43"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_FMmtsaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_FMnUwKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_FMmtsqWjEeKBrrCTA2_OoQ" points="[-12, 12, 125, -106]$[-62, 116, 75, -2]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_FMpJ8KWjEeKBrrCTA2_OoQ" id="(0.4418604651162791,0.7547169811320755)"/>
+    </edges>
+    <edges xmi:id="_M20nYKWjEeKBrrCTA2_OoQ" type="Transition" element="_M2xkEKWjEeKBrrCTA2_OoQ" source="_CUIEsKWjEeKBrrCTA2_OoQ" target="_I2XCoKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_M22ckKWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_M22ckaWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_M22ckqWjEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_M20nYaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_M211gKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_M20nYqWjEeKBrrCTA2_OoQ" points="[1, 4, 2, -69]$[3, 67, 4, -6]"/>
+    </edges>
+    <edges xmi:id="_aSEK4KgcEeKmQrSVAGlxRw" type="Transition" element="_aR_5cKgcEeKmQrSVAGlxRw" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_rwgjQKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_aSFZAKgcEeKmQrSVAGlxRw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_aSFZAagcEeKmQrSVAGlxRw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_aSFZAqgcEeKmQrSVAGlxRw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_aSEK4agcEeKmQrSVAGlxRw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_aSEx8KgcEeKmQrSVAGlxRw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_aSEK4qgcEeKmQrSVAGlxRw" points="[1, 2, -165, -201]$[176, 179, 10, -24]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_aSIcUKgcEeKmQrSVAGlxRw" id="(0.19393939393939394,0.625)"/>
+    </edges>
+    <edges xmi:id="_p4RUoKglEeKc3Yk9SnH-yA" type="Transition" element="_p4ORUKglEeKc3Yk9SnH-yA" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_o0RhAKglEeKc3Yk9SnH-yA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_p4R7saglEeKc3Yk9SnH-yA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_p4R7sqglEeKc3Yk9SnH-yA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_p4R7s6glEeKc3Yk9SnH-yA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_p4RUoaglEeKc3Yk9SnH-yA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_p4R7sKglEeKc3Yk9SnH-yA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_p4RUoqglEeKc3Yk9SnH-yA" points="[4, 5, -155, -179]$[162, 179, 3, -5]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_p4U_AKglEeKc3Yk9SnH-yA" id="(0.9636363636363636,0.375)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_p4VmEKglEeKc3Yk9SnH-yA" id="(0.5,0.11320754716981132)"/>
+    </edges>
+    <edges xmi:id="_sLFEwKglEeKc3Yk9SnH-yA" type="Transition" element="_sLAzUKglEeKc3Yk9SnH-yA" source="_o0RhAKglEeKc3Yk9SnH-yA" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_sLFr0aglEeKc3Yk9SnH-yA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_sLFr0qglEeKc3Yk9SnH-yA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_sLFr06glEeKc3Yk9SnH-yA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_sLFEwaglEeKc3Yk9SnH-yA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_sLFr0KglEeKc3Yk9SnH-yA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_sLFEwqglEeKc3Yk9SnH-yA" points="[-17, 18, 149, -162]$[-153, 180, 13, 0]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_sLJ9QKglEeKc3Yk9SnH-yA" id="(0.9133333333333333,0.75)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 362 - 0
test-plugins/org.yakindu.sct.model.sgraph.test/testmodels/NotOrthogonalRegion02.sct

@@ -0,0 +1,362 @@
+<?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:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
+  <sgraph:Statechart xmi:id="_cCYI4IcVEeK5XMQGITKBlg" name="default">
+    <regions xmi:id="_cCYv8ocVEeK5XMQGITKBlg" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_cDTV8YcVEeK5XMQGITKBlg">
+        <outgoingTransitions xmi:id="_cDVyM4cVEeK5XMQGITKBlg" target="_pTDskKWlEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_o7MjAKWhEeKBrrCTA2_OoQ" name="A">
+        <regions xmi:id="_rHmwMKWhEeKBrrCTA2_OoQ">
+          <vertices xsi:type="sgraph:State" xmi:id="_rwcR0KWhEeKBrrCTA2_OoQ" specification="" name="AA" incomingTransitions="_aR_5cKgcEeKmQrSVAGlxRw">
+            <outgoingTransitions xmi:id="_D06iAKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+          </vertices>
+        </regions>
+        <regions xmi:id="_qyRZYKWhEeKBrrCTA2_OoQ">
+          <vertices xsi:type="sgraph:State" xmi:id="_sQOlIKWhEeKBrrCTA2_OoQ" name="AB">
+            <regions xmi:id="_wwVTQKWhEeKBrrCTA2_OoQ">
+              <vertices xsi:type="sgraph:State" xmi:id="_yOAyMKWhEeKBrrCTA2_OoQ" name="ABA" incomingTransitions="_2kUEEKWhEeKBrrCTA2_OoQ">
+                <outgoingTransitions xmi:id="_El0agKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+              </vertices>
+            </regions>
+            <regions xmi:id="_wDLSUKWhEeKBrrCTA2_OoQ">
+              <vertices xsi:type="sgraph:State" xmi:id="_ymDewKWhEeKBrrCTA2_OoQ" name="ABB" incomingTransitions="_2EAzYKWhEeKBrrCTA2_OoQ">
+                <outgoingTransitions xmi:id="_FMkRcKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+              </vertices>
+            </regions>
+          </vertices>
+        </regions>
+      </vertices>
+      <vertices xsi:type="sgraph:Synchronization" xmi:id="_zGFCoKWhEeKBrrCTA2_OoQ" incomingTransitions="_0mhhsKWhEeKBrrCTA2_OoQ">
+        <outgoingTransitions xmi:id="_2EAzYKWhEeKBrrCTA2_OoQ" specification="" target="_ymDewKWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_2kUEEKWhEeKBrrCTA2_OoQ" specification="" target="_yOAyMKWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_aR_5cKgcEeKmQrSVAGlxRw" specification="" target="_rwcR0KWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_p4ORUKglEeKc3Yk9SnH-yA" specification="" target="_oz1cIKglEeKc3Yk9SnH-yA"/>
+      </vertices>
+      <vertices xsi:type="sgraph:Synchronization" xmi:id="_CUGPgKWjEeKBrrCTA2_OoQ" incomingTransitions="_D06iAKWjEeKBrrCTA2_OoQ _El0agKWjEeKBrrCTA2_OoQ _FMkRcKWjEeKBrrCTA2_OoQ _sLAzUKglEeKc3Yk9SnH-yA">
+        <outgoingTransitions xmi:id="_M2xkEKWjEeKBrrCTA2_OoQ" specification="" target="_I2WbkKWjEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:FinalState" xmi:id="_I2WbkKWjEeKBrrCTA2_OoQ" incomingTransitions="_M2xkEKWjEeKBrrCTA2_OoQ"/>
+      <vertices xsi:type="sgraph:State" xmi:id="_pTDskKWlEeKBrrCTA2_OoQ" name="B" incomingTransitions="_cDVyM4cVEeK5XMQGITKBlg">
+        <outgoingTransitions xmi:id="_0mhhsKWhEeKBrrCTA2_OoQ" target="_zGFCoKWhEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_oz1cIKglEeKc3Yk9SnH-yA" name="bdd" incomingTransitions="_p4ORUKglEeKc3Yk9SnH-yA">
+        <outgoingTransitions xmi:id="_sLAzUKglEeKc3Yk9SnH-yA" specification="" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+      </vertices>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_cCYv8IcVEeK5XMQGITKBlg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_cCYI4IcVEeK5XMQGITKBlg" measurementUnit="Pixel">
+    <children xmi:id="_cCbzQIcVEeK5XMQGITKBlg" type="Region" element="_cCYv8ocVEeK5XMQGITKBlg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDSu4IcVEeK5XMQGITKBlg" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDSu4YcVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDSu4ocVEeK5XMQGITKBlg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_cDSu44cVEeK5XMQGITKBlg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_cDT9AIcVEeK5XMQGITKBlg" type="Entry" element="_cDTV8YcVEeK5XMQGITKBlg">
+          <children xmi:id="_cDT9A4cVEeK5XMQGITKBlg" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_cDUkEIcVEeK5XMQGITKBlg" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_cDUkEYcVEeK5XMQGITKBlg"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_cDUkEocVEeK5XMQGITKBlg"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_cDT9BIcVEeK5XMQGITKBlg" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDT9BYcVEeK5XMQGITKBlg"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_cDT9AYcVEeK5XMQGITKBlg" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDUkE4cVEeK5XMQGITKBlg" x="269" y="12" width="15" height="15"/>
+        </children>
+        <children xmi:id="_o8EFsKWhEeKBrrCTA2_OoQ" type="State" element="_o7MjAKWhEeKBrrCTA2_OoQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_o8F64KWhEeKBrrCTA2_OoQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_o8F64aWhEeKBrrCTA2_OoQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_o8F64qWhEeKBrrCTA2_OoQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o8F646WhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_o8Gh8KWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o8Gh8aWhEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o8Gh8qWhEeKBrrCTA2_OoQ" type="StateFigureCompartment">
+            <children xmi:id="_rHsPwKWhEeKBrrCTA2_OoQ" type="Region" element="_rHmwMKWhEeKBrrCTA2_OoQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_rHsPw6WhEeKBrrCTA2_OoQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_rHsPxKWhEeKBrrCTA2_OoQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_rHs20KWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_rHs20aWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_rwgjQKWhEeKBrrCTA2_OoQ" type="State" element="_rwcR0KWhEeKBrrCTA2_OoQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_rwhxYKWhEeKBrrCTA2_OoQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_rwhxYaWhEeKBrrCTA2_OoQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_rwhxYqWhEeKBrrCTA2_OoQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_rwhxY6WhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_rwhxZKWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rwhxZaWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_rwiYcKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_rwgjQaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_rwgjQqWhEeKBrrCTA2_OoQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_rwiYcaWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rwgjQ6WhEeKBrrCTA2_OoQ" x="43" y="38"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rHs20qWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_rHsPwaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rHsPwqWhEeKBrrCTA2_OoQ"/>
+            </children>
+            <children xmi:id="_qyUcsKWhEeKBrrCTA2_OoQ" type="Region" element="_qyRZYKWhEeKBrrCTA2_OoQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_qyWR4KWhEeKBrrCTA2_OoQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_qyWR4aWhEeKBrrCTA2_OoQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_qyWR4qWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_qyW48KWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_sQRocKWhEeKBrrCTA2_OoQ" type="State" element="_sQOlIKWhEeKBrrCTA2_OoQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_sQS2kKWhEeKBrrCTA2_OoQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_sQS2kaWhEeKBrrCTA2_OoQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_sQS2kqWhEeKBrrCTA2_OoQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_sQTdoKWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_sQTdoaWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_sQTdoqWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_sQUrwKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment">
+                    <children xmi:id="_wwbZ4KWhEeKBrrCTA2_OoQ" type="Region" element="_wwVTQKWhEeKBrrCTA2_OoQ">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_wwbZ46WhEeKBrrCTA2_OoQ" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_wwbZ5KWhEeKBrrCTA2_OoQ"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_wwbZ5aWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_wwbZ5qWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_yOD1gKWhEeKBrrCTA2_OoQ" type="State" element="_yOAyMKWhEeKBrrCTA2_OoQ">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_yOEckKWhEeKBrrCTA2_OoQ" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_yOEckaWhEeKBrrCTA2_OoQ"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_yOFDoKWhEeKBrrCTA2_OoQ"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_yOFDoaWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_yOFqsKWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yOFqsaWhEeKBrrCTA2_OoQ"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_yOGRwKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_yOD1gaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_yOD1gqWhEeKBrrCTA2_OoQ"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_yOG40KWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yOD1g6WhEeKBrrCTA2_OoQ" x="31" y="37"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wwbZ56WhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_wwbZ4aWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wwbZ4qWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                    <children xmi:id="_wDL5YKWhEeKBrrCTA2_OoQ" type="Region" element="_wDLSUKWhEeKBrrCTA2_OoQ">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_wDMgcKWhEeKBrrCTA2_OoQ" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_wDMgcaWhEeKBrrCTA2_OoQ"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_wDMgcqWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_wDMgc6WhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_ymHwMKWhEeKBrrCTA2_OoQ" type="State" element="_ymDewKWhEeKBrrCTA2_OoQ">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_ymI-UKWhEeKBrrCTA2_OoQ" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_ymI-UaWhEeKBrrCTA2_OoQ"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_ymJlYKWhEeKBrrCTA2_OoQ"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_ymJlYaWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_ymJlYqWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_ymJlY6WhEeKBrrCTA2_OoQ"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_ymJlZKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_ymHwMaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_ymHwMqWhEeKBrrCTA2_OoQ"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_ymKMcKWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_ymHwM6WhEeKBrrCTA2_OoQ" x="23" y="47"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDMgdKWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_wDL5YaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDL5YqWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_sQSPgKWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_sQSPgaWhEeKBrrCTA2_OoQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_sQVS0KWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_sQSPgqWhEeKBrrCTA2_OoQ" x="8" y="17" width="263" height="201"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_qyW48aWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_qyUcsaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_qyUcsqWhEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_o8EFsaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_o8EFsqWhEeKBrrCTA2_OoQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_o8Gh86WhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o8EFs6WhEeKBrrCTA2_OoQ" x="29" y="172" width="423" height="301"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_zGIF8KWhEeKBrrCTA2_OoQ" type="Synchronization" element="_zGFCoKWhEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_zGIF8aWhEeKBrrCTA2_OoQ" x="184" y="142" width="165" height="8"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_CUIEsKWjEeKBrrCTA2_OoQ" type="Synchronization" element="_CUGPgKWjEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_CUIEsaWjEeKBrrCTA2_OoQ" x="199" y="522" width="150" height="8"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_I2XCoKWjEeKBrrCTA2_OoQ" type="FinalState" element="_I2WbkKWjEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_I2XCoaWjEeKBrrCTA2_OoQ" x="266" y="592" width="15" height="15"/>
+        </children>
+        <children xmi:id="_pTH-AKWlEeKBrrCTA2_OoQ" type="State" element="_pTDskKWlEeKBrrCTA2_OoQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_pTIlEKWlEeKBrrCTA2_OoQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_pTIlEaWlEeKBrrCTA2_OoQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_pTIlEqWlEeKBrrCTA2_OoQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_pTIlE6WlEeKBrrCTA2_OoQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_pTJMIKWlEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pTJMIaWlEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_pTJMIqWlEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_pTH-AaWlEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_pTH-AqWlEeKBrrCTA2_OoQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_pTJzMKWlEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pTH-A6WlEeKBrrCTA2_OoQ" x="256" y="67" width="40" height="53"/>
+        </children>
+        <children xmi:id="_o0RhAKglEeKc3Yk9SnH-yA" type="State" element="_oz1cIKglEeKc3Yk9SnH-yA">
+          <children xsi:type="notation:DecorationNode" xmi:id="_o0TWMKglEeKc3Yk9SnH-yA" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_o0TWMaglEeKc3Yk9SnH-yA"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_o0TWMqglEeKc3Yk9SnH-yA"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o0TWM6glEeKc3Yk9SnH-yA" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_o0T9QKglEeKc3Yk9SnH-yA" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o0T9QaglEeKc3Yk9SnH-yA"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o0T9QqglEeKc3Yk9SnH-yA" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_o0RhAaglEeKc3Yk9SnH-yA" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_o0RhAqglEeKc3Yk9SnH-yA"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_o0T9Q6glEeKc3Yk9SnH-yA" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o0RhA6glEeKc3Yk9SnH-yA" x="494" y="296"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDSu5IcVEeK5XMQGITKBlg"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_cCbzQYcVEeK5XMQGITKBlg" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDTV8IcVEeK5XMQGITKBlg" x="215" y="10" width="556" height="646"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_cDXnYIcVEeK5XMQGITKBlg" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDXnYocVEeK5XMQGITKBlg" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDXnY4cVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDXnZIcVEeK5XMQGITKBlg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_cDXnZYcVEeK5XMQGITKBlg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDXnZocVEeK5XMQGITKBlg"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDYOcIcVEeK5XMQGITKBlg" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_cCYv8YcVEeK5XMQGITKBlg"/>
+    <edges xmi:id="_cDXAUIcVEeK5XMQGITKBlg" type="Transition" element="_cDVyM4cVEeK5XMQGITKBlg" source="_cDT9AIcVEeK5XMQGITKBlg" target="_pTH-AKWlEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDXAVIcVEeK5XMQGITKBlg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDXAVYcVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDXAVocVEeK5XMQGITKBlg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_cDXAUYcVEeK5XMQGITKBlg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_cDXAU4cVEeK5XMQGITKBlg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_cDXAUocVEeK5XMQGITKBlg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_rEktgKWlEeKBrrCTA2_OoQ" id="(0.45,0.24528301886792453)"/>
+    </edges>
+    <edges xmi:id="_0mjW4KWhEeKBrrCTA2_OoQ" type="Transition" element="_0mhhsKWhEeKBrrCTA2_OoQ" source="_pTH-AKWlEeKBrrCTA2_OoQ" target="_zGIF8KWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_0mj98aWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_0mj98qWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_0mklAKWhEeKBrrCTA2_OoQ" x="-7" y="-66"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_0mjW4aWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_0mj98KWhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_0mjW4qWhEeKBrrCTA2_OoQ" points="[48, 13, -131, -26]$[97, 39, -82, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_qOn88KWlEeKBrrCTA2_OoQ" id="(0.775,0.6981132075471698)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_twF4kKWlEeKBrrCTA2_OoQ" id="(0.5333333333333333,0.0)"/>
+    </edges>
+    <edges xmi:id="_2EEdwKWhEeKBrrCTA2_OoQ" type="Transition" element="_2EAzYKWhEeKBrrCTA2_OoQ" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_ymHwMKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_2EFr4aWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_2EFr4qWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_2EGS8KWhEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_2EEdwaWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_2EFr4KWhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_2EEdwqWhEeKBrrCTA2_OoQ" points="[-3, 4, 135, -152]$[-103, 148, 35, -8]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_O1LJUKc2EeKIfO2sJ02rIQ" id="(0.8424242424242424,0.5)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_L_pGoKc2EeKIfO2sJ02rIQ" id="(0.4418604651162791,0.24528301886792453)"/>
+    </edges>
+    <edges xmi:id="_2kWgUKWhEeKBrrCTA2_OoQ" type="Transition" element="_2kUEEKWhEeKBrrCTA2_OoQ" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_yOD1gKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_2kXHYKWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_2kXHYaWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_2kXHYqWhEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_2kWgUaWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_2kWgU6WhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_2kWgUqWhEeKBrrCTA2_OoQ" points="[0, 1, -58, -236]$[49, 261, -9, 24]"/>
+    </edges>
+    <edges xmi:id="_D09lUKWjEeKBrrCTA2_OoQ" type="Transition" element="_D06iAKWjEeKBrrCTA2_OoQ" source="_rwgjQKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_D0-MYaWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_D0-MYqWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_D0-MY6WjEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_D09lUaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_D0-MYKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_D09lUqWjEeKBrrCTA2_OoQ" points="[24, 34, -152, -200]$[170, 230, -6, -4]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_D0_agKWjEeKBrrCTA2_OoQ" id="(0.125,0.3018867924528302)"/>
+    </edges>
+    <edges xmi:id="_El3d0KWjEeKBrrCTA2_OoQ" type="Transition" element="_El0agKWjEeKBrrCTA2_OoQ" source="_yOD1gKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_El4E4aWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_El4E4qWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_El4r8KWjEeKBrrCTA2_OoQ" x="-24" y="-18"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_El3d0aWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_El4E4KWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_El3d0qWjEeKBrrCTA2_OoQ" points="[-2, 22, 13, -112]$[-15, 134, 0, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_El89YKWjEeKBrrCTA2_OoQ" id="(0.23255813953488372,0.5471698113207547)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_El89YaWjEeKBrrCTA2_OoQ" id="(0.5066666666666667,0.0)"/>
+    </edges>
+    <edges xmi:id="_FMmtsKWjEeKBrrCTA2_OoQ" type="Transition" element="_FMkRcKWjEeKBrrCTA2_OoQ" source="_ymHwMKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_FMnUwaWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_FMnUwqWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_FMnUw6WjEeKBrrCTA2_OoQ" x="-44" y="-43"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_FMmtsaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_FMnUwKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_FMmtsqWjEeKBrrCTA2_OoQ" points="[-12, 12, 125, -106]$[-62, 116, 75, -2]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_FMpJ8KWjEeKBrrCTA2_OoQ" id="(0.4418604651162791,0.7547169811320755)"/>
+    </edges>
+    <edges xmi:id="_M20nYKWjEeKBrrCTA2_OoQ" type="Transition" element="_M2xkEKWjEeKBrrCTA2_OoQ" source="_CUIEsKWjEeKBrrCTA2_OoQ" target="_I2XCoKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_M22ckKWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_M22ckaWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_M22ckqWjEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_M20nYaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_M211gKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_M20nYqWjEeKBrrCTA2_OoQ" points="[1, 4, 2, -69]$[3, 67, 4, -6]"/>
+    </edges>
+    <edges xmi:id="_aSEK4KgcEeKmQrSVAGlxRw" type="Transition" element="_aR_5cKgcEeKmQrSVAGlxRw" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_rwgjQKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_aSFZAKgcEeKmQrSVAGlxRw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_aSFZAagcEeKmQrSVAGlxRw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_aSFZAqgcEeKmQrSVAGlxRw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_aSEK4agcEeKmQrSVAGlxRw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_aSEx8KgcEeKmQrSVAGlxRw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_aSEK4qgcEeKmQrSVAGlxRw" points="[1, 2, -165, -201]$[176, 179, 10, -24]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_aSIcUKgcEeKmQrSVAGlxRw" id="(0.19393939393939394,0.625)"/>
+    </edges>
+    <edges xmi:id="_p4RUoKglEeKc3Yk9SnH-yA" type="Transition" element="_p4ORUKglEeKc3Yk9SnH-yA" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_o0RhAKglEeKc3Yk9SnH-yA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_p4R7saglEeKc3Yk9SnH-yA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_p4R7sqglEeKc3Yk9SnH-yA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_p4R7s6glEeKc3Yk9SnH-yA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_p4RUoaglEeKc3Yk9SnH-yA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_p4R7sKglEeKc3Yk9SnH-yA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_p4RUoqglEeKc3Yk9SnH-yA" points="[6, 0, -162, -156]$[168, 0, 0, -156]$[168, 151, 0, -5]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_p4U_AKglEeKc3Yk9SnH-yA" id="(0.9636363636363636,0.375)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_p4VmEKglEeKc3Yk9SnH-yA" id="(0.5,0.11320754716981132)"/>
+    </edges>
+    <edges xmi:id="_sLFEwKglEeKc3Yk9SnH-yA" type="Transition" element="_sLAzUKglEeKc3Yk9SnH-yA" source="_o0RhAKglEeKc3Yk9SnH-yA" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_sLFr0aglEeKc3Yk9SnH-yA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_sLFr0qglEeKc3Yk9SnH-yA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_sLFr06glEeKc3Yk9SnH-yA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_sLFEwaglEeKc3Yk9SnH-yA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_sLFr0KglEeKc3Yk9SnH-yA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_sLFEwqglEeKc3Yk9SnH-yA" points="[0, 24, 175, -184]$[0, 208, 175, 0]$[-162, 208, 13, 0]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_sLJ9QKglEeKc3Yk9SnH-yA" id="(0.9133333333333333,0.75)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 375 - 0
test-plugins/org.yakindu.sct.model.sgraph.test/testmodels/NotOrthogonalRegion03.sct

@@ -0,0 +1,375 @@
+<?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:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
+  <sgraph:Statechart xmi:id="_cCYI4IcVEeK5XMQGITKBlg" name="default">
+    <regions xmi:id="_cCYv8ocVEeK5XMQGITKBlg" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_cDTV8YcVEeK5XMQGITKBlg">
+        <outgoingTransitions xmi:id="_cDVyM4cVEeK5XMQGITKBlg" target="_pTDskKWlEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_o7MjAKWhEeKBrrCTA2_OoQ" name="A">
+        <regions xmi:id="_rHmwMKWhEeKBrrCTA2_OoQ">
+          <vertices xsi:type="sgraph:State" xmi:id="_rwcR0KWhEeKBrrCTA2_OoQ" specification="" name="AA" incomingTransitions="_aR_5cKgcEeKmQrSVAGlxRw">
+            <outgoingTransitions xmi:id="_D06iAKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+          </vertices>
+        </regions>
+        <regions xmi:id="_qyRZYKWhEeKBrrCTA2_OoQ">
+          <vertices xsi:type="sgraph:State" xmi:id="_sQOlIKWhEeKBrrCTA2_OoQ" name="AB">
+            <regions xmi:id="_wwVTQKWhEeKBrrCTA2_OoQ">
+              <vertices xsi:type="sgraph:State" xmi:id="_yOAyMKWhEeKBrrCTA2_OoQ" name="ABA" incomingTransitions="_2kUEEKWhEeKBrrCTA2_OoQ">
+                <outgoingTransitions xmi:id="_El0agKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+              </vertices>
+            </regions>
+            <regions xmi:id="_wDLSUKWhEeKBrrCTA2_OoQ">
+              <vertices xsi:type="sgraph:State" xmi:id="_ymDewKWhEeKBrrCTA2_OoQ" name="ABB" incomingTransitions="_2EAzYKWhEeKBrrCTA2_OoQ">
+                <outgoingTransitions xmi:id="_FMkRcKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+              </vertices>
+            </regions>
+          </vertices>
+        </regions>
+      </vertices>
+      <vertices xsi:type="sgraph:Synchronization" xmi:id="_zGFCoKWhEeKBrrCTA2_OoQ" incomingTransitions="_0mhhsKWhEeKBrrCTA2_OoQ">
+        <outgoingTransitions xmi:id="_2EAzYKWhEeKBrrCTA2_OoQ" specification="" target="_ymDewKWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_2kUEEKWhEeKBrrCTA2_OoQ" specification="" target="_yOAyMKWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_aR_5cKgcEeKmQrSVAGlxRw" specification="" target="_rwcR0KWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_p4ORUKglEeKc3Yk9SnH-yA" specification="" target="_oz1cIKglEeKc3Yk9SnH-yA"/>
+      </vertices>
+      <vertices xsi:type="sgraph:Synchronization" xmi:id="_CUGPgKWjEeKBrrCTA2_OoQ" incomingTransitions="_D06iAKWjEeKBrrCTA2_OoQ _El0agKWjEeKBrrCTA2_OoQ _FMkRcKWjEeKBrrCTA2_OoQ _sLAzUKglEeKc3Yk9SnH-yA">
+        <outgoingTransitions xmi:id="_M2xkEKWjEeKBrrCTA2_OoQ" specification="" target="_I2WbkKWjEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:FinalState" xmi:id="_I2WbkKWjEeKBrrCTA2_OoQ" incomingTransitions="_M2xkEKWjEeKBrrCTA2_OoQ"/>
+      <vertices xsi:type="sgraph:State" xmi:id="_pTDskKWlEeKBrrCTA2_OoQ" name="B" incomingTransitions="_cDVyM4cVEeK5XMQGITKBlg">
+        <outgoingTransitions xmi:id="_0mhhsKWhEeKBrrCTA2_OoQ" target="_zGFCoKWhEeKBrrCTA2_OoQ"/>
+      </vertices>
+    </regions>
+    <regions xmi:id="_pGDpAKgvEeKc3Yk9SnH-yA">
+      <vertices xsi:type="sgraph:State" xmi:id="_oz1cIKglEeKc3Yk9SnH-yA" name="bdd" incomingTransitions="_p4ORUKglEeKc3Yk9SnH-yA">
+        <outgoingTransitions xmi:id="_sLAzUKglEeKc3Yk9SnH-yA" specification="" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+      </vertices>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_cCYv8IcVEeK5XMQGITKBlg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_cCYI4IcVEeK5XMQGITKBlg" measurementUnit="Pixel">
+    <children xmi:id="_cCbzQIcVEeK5XMQGITKBlg" type="Region" element="_cCYv8ocVEeK5XMQGITKBlg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDSu4IcVEeK5XMQGITKBlg" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDSu4YcVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDSu4ocVEeK5XMQGITKBlg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_cDSu44cVEeK5XMQGITKBlg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_cDT9AIcVEeK5XMQGITKBlg" type="Entry" element="_cDTV8YcVEeK5XMQGITKBlg">
+          <children xmi:id="_cDT9A4cVEeK5XMQGITKBlg" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_cDUkEIcVEeK5XMQGITKBlg" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_cDUkEYcVEeK5XMQGITKBlg"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_cDUkEocVEeK5XMQGITKBlg"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_cDT9BIcVEeK5XMQGITKBlg" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDT9BYcVEeK5XMQGITKBlg"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_cDT9AYcVEeK5XMQGITKBlg" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDUkE4cVEeK5XMQGITKBlg" x="269" y="12" width="15" height="15"/>
+        </children>
+        <children xmi:id="_o8EFsKWhEeKBrrCTA2_OoQ" type="State" element="_o7MjAKWhEeKBrrCTA2_OoQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_o8F64KWhEeKBrrCTA2_OoQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_o8F64aWhEeKBrrCTA2_OoQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_o8F64qWhEeKBrrCTA2_OoQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o8F646WhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_o8Gh8KWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o8Gh8aWhEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o8Gh8qWhEeKBrrCTA2_OoQ" type="StateFigureCompartment">
+            <children xmi:id="_rHsPwKWhEeKBrrCTA2_OoQ" type="Region" element="_rHmwMKWhEeKBrrCTA2_OoQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_rHsPw6WhEeKBrrCTA2_OoQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_rHsPxKWhEeKBrrCTA2_OoQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_rHs20KWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_rHs20aWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_rwgjQKWhEeKBrrCTA2_OoQ" type="State" element="_rwcR0KWhEeKBrrCTA2_OoQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_rwhxYKWhEeKBrrCTA2_OoQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_rwhxYaWhEeKBrrCTA2_OoQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_rwhxYqWhEeKBrrCTA2_OoQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_rwhxY6WhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_rwhxZKWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rwhxZaWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_rwiYcKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_rwgjQaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_rwgjQqWhEeKBrrCTA2_OoQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_rwiYcaWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rwgjQ6WhEeKBrrCTA2_OoQ" x="43" y="38"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rHs20qWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_rHsPwaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rHsPwqWhEeKBrrCTA2_OoQ"/>
+            </children>
+            <children xmi:id="_qyUcsKWhEeKBrrCTA2_OoQ" type="Region" element="_qyRZYKWhEeKBrrCTA2_OoQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_qyWR4KWhEeKBrrCTA2_OoQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_qyWR4aWhEeKBrrCTA2_OoQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_qyWR4qWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_qyW48KWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_sQRocKWhEeKBrrCTA2_OoQ" type="State" element="_sQOlIKWhEeKBrrCTA2_OoQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_sQS2kKWhEeKBrrCTA2_OoQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_sQS2kaWhEeKBrrCTA2_OoQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_sQS2kqWhEeKBrrCTA2_OoQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_sQTdoKWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_sQTdoaWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_sQTdoqWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_sQUrwKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment">
+                    <children xmi:id="_wwbZ4KWhEeKBrrCTA2_OoQ" type="Region" element="_wwVTQKWhEeKBrrCTA2_OoQ">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_wwbZ46WhEeKBrrCTA2_OoQ" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_wwbZ5KWhEeKBrrCTA2_OoQ"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_wwbZ5aWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_wwbZ5qWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_yOD1gKWhEeKBrrCTA2_OoQ" type="State" element="_yOAyMKWhEeKBrrCTA2_OoQ">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_yOEckKWhEeKBrrCTA2_OoQ" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_yOEckaWhEeKBrrCTA2_OoQ"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_yOFDoKWhEeKBrrCTA2_OoQ"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_yOFDoaWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_yOFqsKWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yOFqsaWhEeKBrrCTA2_OoQ"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_yOGRwKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_yOD1gaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_yOD1gqWhEeKBrrCTA2_OoQ"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_yOG40KWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yOD1g6WhEeKBrrCTA2_OoQ" x="31" y="37"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wwbZ56WhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_wwbZ4aWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wwbZ4qWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                    <children xmi:id="_wDL5YKWhEeKBrrCTA2_OoQ" type="Region" element="_wDLSUKWhEeKBrrCTA2_OoQ">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_wDMgcKWhEeKBrrCTA2_OoQ" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_wDMgcaWhEeKBrrCTA2_OoQ"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_wDMgcqWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_wDMgc6WhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_ymHwMKWhEeKBrrCTA2_OoQ" type="State" element="_ymDewKWhEeKBrrCTA2_OoQ">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_ymI-UKWhEeKBrrCTA2_OoQ" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_ymI-UaWhEeKBrrCTA2_OoQ"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_ymJlYKWhEeKBrrCTA2_OoQ"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_ymJlYaWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_ymJlYqWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_ymJlY6WhEeKBrrCTA2_OoQ"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_ymJlZKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_ymHwMaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_ymHwMqWhEeKBrrCTA2_OoQ"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_ymKMcKWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_ymHwM6WhEeKBrrCTA2_OoQ" x="23" y="47"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDMgdKWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_wDL5YaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDL5YqWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_sQSPgKWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_sQSPgaWhEeKBrrCTA2_OoQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_sQVS0KWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_sQSPgqWhEeKBrrCTA2_OoQ" x="8" y="17" width="263" height="201"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_qyW48aWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_qyUcsaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_qyUcsqWhEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_o8EFsaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_o8EFsqWhEeKBrrCTA2_OoQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_o8Gh86WhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o8EFs6WhEeKBrrCTA2_OoQ" x="29" y="172" width="423" height="301"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_zGIF8KWhEeKBrrCTA2_OoQ" type="Synchronization" element="_zGFCoKWhEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_zGIF8aWhEeKBrrCTA2_OoQ" x="184" y="142" width="165" height="8"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_CUIEsKWjEeKBrrCTA2_OoQ" type="Synchronization" element="_CUGPgKWjEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_CUIEsaWjEeKBrrCTA2_OoQ" x="199" y="522" width="150" height="8"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_I2XCoKWjEeKBrrCTA2_OoQ" type="FinalState" element="_I2WbkKWjEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_I2XCoaWjEeKBrrCTA2_OoQ" x="266" y="592" width="15" height="15"/>
+        </children>
+        <children xmi:id="_pTH-AKWlEeKBrrCTA2_OoQ" type="State" element="_pTDskKWlEeKBrrCTA2_OoQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_pTIlEKWlEeKBrrCTA2_OoQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_pTIlEaWlEeKBrrCTA2_OoQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_pTIlEqWlEeKBrrCTA2_OoQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_pTIlE6WlEeKBrrCTA2_OoQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_pTJMIKWlEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pTJMIaWlEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_pTJMIqWlEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_pTH-AaWlEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_pTH-AqWlEeKBrrCTA2_OoQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_pTJzMKWlEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pTH-A6WlEeKBrrCTA2_OoQ" x="256" y="67" width="40" height="53"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDSu5IcVEeK5XMQGITKBlg"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_cCbzQYcVEeK5XMQGITKBlg" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDTV8IcVEeK5XMQGITKBlg" x="215" y="10" width="556" height="646"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_cDXnYIcVEeK5XMQGITKBlg" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDXnYocVEeK5XMQGITKBlg" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDXnY4cVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDXnZIcVEeK5XMQGITKBlg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_cDXnZYcVEeK5XMQGITKBlg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDXnZocVEeK5XMQGITKBlg"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDYOcIcVEeK5XMQGITKBlg" x="10" y="10" width="200" height="400"/>
+    </children>
+    <children xmi:id="_pGH6cKgvEeKc3Yk9SnH-yA" type="Region" element="_pGDpAKgvEeKc3Yk9SnH-yA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_pGIhgKgvEeKc3Yk9SnH-yA" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_pGIhgagvEeKc3Yk9SnH-yA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_pGIhgqgvEeKc3Yk9SnH-yA"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_pGIhg6gvEeKc3Yk9SnH-yA" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_o0RhAKglEeKc3Yk9SnH-yA" type="State" element="_oz1cIKglEeKc3Yk9SnH-yA">
+          <children xsi:type="notation:DecorationNode" xmi:id="_o0TWMKglEeKc3Yk9SnH-yA" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_o0TWMaglEeKc3Yk9SnH-yA"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_o0TWMqglEeKc3Yk9SnH-yA"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o0TWM6glEeKc3Yk9SnH-yA" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_o0T9QKglEeKc3Yk9SnH-yA" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o0T9QaglEeKc3Yk9SnH-yA"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o0T9QqglEeKc3Yk9SnH-yA" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_o0RhAaglEeKc3Yk9SnH-yA" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_o0RhAqglEeKc3Yk9SnH-yA"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_o0T9Q6glEeKc3Yk9SnH-yA" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o0RhA6glEeKc3Yk9SnH-yA" x="29" y="297"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pGIhhKgvEeKc3Yk9SnH-yA"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_pGH6cagvEeKc3Yk9SnH-yA" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pGH6cqgvEeKc3Yk9SnH-yA" x="780" y="10" width="91" height="389"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_cCYv8YcVEeK5XMQGITKBlg"/>
+    <edges xmi:id="_cDXAUIcVEeK5XMQGITKBlg" type="Transition" element="_cDVyM4cVEeK5XMQGITKBlg" source="_cDT9AIcVEeK5XMQGITKBlg" target="_pTH-AKWlEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDXAVIcVEeK5XMQGITKBlg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDXAVYcVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDXAVocVEeK5XMQGITKBlg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_cDXAUYcVEeK5XMQGITKBlg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_cDXAU4cVEeK5XMQGITKBlg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_cDXAUocVEeK5XMQGITKBlg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_rEktgKWlEeKBrrCTA2_OoQ" id="(0.45,0.24528301886792453)"/>
+    </edges>
+    <edges xmi:id="_0mjW4KWhEeKBrrCTA2_OoQ" type="Transition" element="_0mhhsKWhEeKBrrCTA2_OoQ" source="_pTH-AKWlEeKBrrCTA2_OoQ" target="_zGIF8KWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_0mj98aWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_0mj98qWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_0mklAKWhEeKBrrCTA2_OoQ" x="-7" y="-66"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_0mjW4aWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_0mj98KWhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_0mjW4qWhEeKBrrCTA2_OoQ" points="[48, 13, -131, -26]$[97, 39, -82, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_qOn88KWlEeKBrrCTA2_OoQ" id="(0.775,0.6981132075471698)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_twF4kKWlEeKBrrCTA2_OoQ" id="(0.5333333333333333,0.0)"/>
+    </edges>
+    <edges xmi:id="_2EEdwKWhEeKBrrCTA2_OoQ" type="Transition" element="_2EAzYKWhEeKBrrCTA2_OoQ" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_ymHwMKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_2EFr4aWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_2EFr4qWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_2EGS8KWhEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_2EEdwaWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_2EFr4KWhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_2EEdwqWhEeKBrrCTA2_OoQ" points="[-3, 4, 135, -152]$[-103, 148, 35, -8]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_O1LJUKc2EeKIfO2sJ02rIQ" id="(0.8424242424242424,0.5)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_L_pGoKc2EeKIfO2sJ02rIQ" id="(0.4418604651162791,0.24528301886792453)"/>
+    </edges>
+    <edges xmi:id="_2kWgUKWhEeKBrrCTA2_OoQ" type="Transition" element="_2kUEEKWhEeKBrrCTA2_OoQ" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_yOD1gKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_2kXHYKWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_2kXHYaWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_2kXHYqWhEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_2kWgUaWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_2kWgU6WhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_2kWgUqWhEeKBrrCTA2_OoQ" points="[0, 1, -58, -236]$[49, 261, -9, 24]"/>
+    </edges>
+    <edges xmi:id="_D09lUKWjEeKBrrCTA2_OoQ" type="Transition" element="_D06iAKWjEeKBrrCTA2_OoQ" source="_rwgjQKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_D0-MYaWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_D0-MYqWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_D0-MY6WjEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_D09lUaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_D0-MYKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_D09lUqWjEeKBrrCTA2_OoQ" points="[24, 34, -152, -200]$[170, 230, -6, -4]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_D0_agKWjEeKBrrCTA2_OoQ" id="(0.125,0.3018867924528302)"/>
+    </edges>
+    <edges xmi:id="_El3d0KWjEeKBrrCTA2_OoQ" type="Transition" element="_El0agKWjEeKBrrCTA2_OoQ" source="_yOD1gKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_El4E4aWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_El4E4qWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_El4r8KWjEeKBrrCTA2_OoQ" x="-24" y="-18"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_El3d0aWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_El4E4KWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_El3d0qWjEeKBrrCTA2_OoQ" points="[-2, 22, 13, -112]$[-15, 134, 0, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_El89YKWjEeKBrrCTA2_OoQ" id="(0.23255813953488372,0.5471698113207547)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_El89YaWjEeKBrrCTA2_OoQ" id="(0.5066666666666667,0.0)"/>
+    </edges>
+    <edges xmi:id="_FMmtsKWjEeKBrrCTA2_OoQ" type="Transition" element="_FMkRcKWjEeKBrrCTA2_OoQ" source="_ymHwMKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_FMnUwaWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_FMnUwqWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_FMnUw6WjEeKBrrCTA2_OoQ" x="-44" y="-43"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_FMmtsaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_FMnUwKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_FMmtsqWjEeKBrrCTA2_OoQ" points="[-12, 12, 125, -106]$[-62, 116, 75, -2]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_FMpJ8KWjEeKBrrCTA2_OoQ" id="(0.4418604651162791,0.7547169811320755)"/>
+    </edges>
+    <edges xmi:id="_M20nYKWjEeKBrrCTA2_OoQ" type="Transition" element="_M2xkEKWjEeKBrrCTA2_OoQ" source="_CUIEsKWjEeKBrrCTA2_OoQ" target="_I2XCoKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_M22ckKWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_M22ckaWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_M22ckqWjEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_M20nYaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_M211gKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_M20nYqWjEeKBrrCTA2_OoQ" points="[1, 4, 2, -69]$[3, 67, 4, -6]"/>
+    </edges>
+    <edges xmi:id="_aSEK4KgcEeKmQrSVAGlxRw" type="Transition" element="_aR_5cKgcEeKmQrSVAGlxRw" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_rwgjQKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_aSFZAKgcEeKmQrSVAGlxRw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_aSFZAagcEeKmQrSVAGlxRw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_aSFZAqgcEeKmQrSVAGlxRw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_aSEK4agcEeKmQrSVAGlxRw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_aSEx8KgcEeKmQrSVAGlxRw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_aSEK4qgcEeKmQrSVAGlxRw" points="[1, 2, -165, -201]$[176, 179, 10, -24]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_aSIcUKgcEeKmQrSVAGlxRw" id="(0.19393939393939394,0.625)"/>
+    </edges>
+    <edges xmi:id="_p4RUoKglEeKc3Yk9SnH-yA" type="Transition" element="_p4ORUKglEeKc3Yk9SnH-yA" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_o0RhAKglEeKc3Yk9SnH-yA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_p4R7saglEeKc3Yk9SnH-yA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_p4R7sqglEeKc3Yk9SnH-yA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_p4R7s6glEeKc3Yk9SnH-yA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_p4RUoaglEeKc3Yk9SnH-yA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_p4R7sKglEeKc3Yk9SnH-yA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_p4RUoqglEeKc3Yk9SnH-yA" points="[6, 0, -162, -156]$[168, 0, 0, -156]$[168, 151, 0, -5]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_p4U_AKglEeKc3Yk9SnH-yA" id="(0.9636363636363636,0.375)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_p4VmEKglEeKc3Yk9SnH-yA" id="(0.5,0.11320754716981132)"/>
+    </edges>
+    <edges xmi:id="_sLFEwKglEeKc3Yk9SnH-yA" type="Transition" element="_sLAzUKglEeKc3Yk9SnH-yA" source="_o0RhAKglEeKc3Yk9SnH-yA" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_sLFr0aglEeKc3Yk9SnH-yA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_sLFr0qglEeKc3Yk9SnH-yA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_sLFr06glEeKc3Yk9SnH-yA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_sLFEwaglEeKc3Yk9SnH-yA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_sLFr0KglEeKc3Yk9SnH-yA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_sLFEwqglEeKc3Yk9SnH-yA" points="[0, 24, 175, -184]$[0, 208, 175, 0]$[-162, 208, 13, 0]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_sLJ9QKglEeKc3Yk9SnH-yA" id="(0.9133333333333333,0.75)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 321 - 0
test-plugins/org.yakindu.sct.model.sgraph.test/testmodels/OrthogonalRegion01.sct

@@ -0,0 +1,321 @@
+<?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:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
+  <sgraph:Statechart xmi:id="_cCYI4IcVEeK5XMQGITKBlg" name="default">
+    <regions xmi:id="_cCYv8ocVEeK5XMQGITKBlg" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_cDTV8YcVEeK5XMQGITKBlg">
+        <outgoingTransitions xmi:id="_cDVyM4cVEeK5XMQGITKBlg" target="_pTDskKWlEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_o7MjAKWhEeKBrrCTA2_OoQ" name="A">
+        <regions xmi:id="_rHmwMKWhEeKBrrCTA2_OoQ">
+          <vertices xsi:type="sgraph:State" xmi:id="_rwcR0KWhEeKBrrCTA2_OoQ" specification="" name="AA" incomingTransitions="_aR_5cKgcEeKmQrSVAGlxRw">
+            <outgoingTransitions xmi:id="_D06iAKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+          </vertices>
+        </regions>
+        <regions xmi:id="_qyRZYKWhEeKBrrCTA2_OoQ">
+          <vertices xsi:type="sgraph:State" xmi:id="_sQOlIKWhEeKBrrCTA2_OoQ" name="AB">
+            <regions xmi:id="_wwVTQKWhEeKBrrCTA2_OoQ">
+              <vertices xsi:type="sgraph:State" xmi:id="_yOAyMKWhEeKBrrCTA2_OoQ" name="ABA" incomingTransitions="_2kUEEKWhEeKBrrCTA2_OoQ">
+                <outgoingTransitions xmi:id="_El0agKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+              </vertices>
+            </regions>
+            <regions xmi:id="_wDLSUKWhEeKBrrCTA2_OoQ">
+              <vertices xsi:type="sgraph:State" xmi:id="_ymDewKWhEeKBrrCTA2_OoQ" name="ABB" incomingTransitions="_2EAzYKWhEeKBrrCTA2_OoQ">
+                <outgoingTransitions xmi:id="_FMkRcKWjEeKBrrCTA2_OoQ" target="_CUGPgKWjEeKBrrCTA2_OoQ"/>
+              </vertices>
+            </regions>
+          </vertices>
+        </regions>
+      </vertices>
+      <vertices xsi:type="sgraph:Synchronization" xmi:id="_zGFCoKWhEeKBrrCTA2_OoQ" incomingTransitions="_0mhhsKWhEeKBrrCTA2_OoQ">
+        <outgoingTransitions xmi:id="_2EAzYKWhEeKBrrCTA2_OoQ" specification="" target="_ymDewKWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_2kUEEKWhEeKBrrCTA2_OoQ" specification="" target="_yOAyMKWhEeKBrrCTA2_OoQ"/>
+        <outgoingTransitions xmi:id="_aR_5cKgcEeKmQrSVAGlxRw" specification="" target="_rwcR0KWhEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:Synchronization" xmi:id="_CUGPgKWjEeKBrrCTA2_OoQ" incomingTransitions="_D06iAKWjEeKBrrCTA2_OoQ _El0agKWjEeKBrrCTA2_OoQ _FMkRcKWjEeKBrrCTA2_OoQ">
+        <outgoingTransitions xmi:id="_M2xkEKWjEeKBrrCTA2_OoQ" specification="" target="_I2WbkKWjEeKBrrCTA2_OoQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:FinalState" xmi:id="_I2WbkKWjEeKBrrCTA2_OoQ" incomingTransitions="_M2xkEKWjEeKBrrCTA2_OoQ"/>
+      <vertices xsi:type="sgraph:State" xmi:id="_pTDskKWlEeKBrrCTA2_OoQ" name="B" incomingTransitions="_cDVyM4cVEeK5XMQGITKBlg">
+        <outgoingTransitions xmi:id="_0mhhsKWhEeKBrrCTA2_OoQ" target="_zGFCoKWhEeKBrrCTA2_OoQ"/>
+      </vertices>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_cCYv8IcVEeK5XMQGITKBlg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_cCYI4IcVEeK5XMQGITKBlg" measurementUnit="Pixel">
+    <children xmi:id="_cCbzQIcVEeK5XMQGITKBlg" type="Region" element="_cCYv8ocVEeK5XMQGITKBlg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDSu4IcVEeK5XMQGITKBlg" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDSu4YcVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDSu4ocVEeK5XMQGITKBlg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_cDSu44cVEeK5XMQGITKBlg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_cDT9AIcVEeK5XMQGITKBlg" type="Entry" element="_cDTV8YcVEeK5XMQGITKBlg">
+          <children xmi:id="_cDT9A4cVEeK5XMQGITKBlg" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_cDUkEIcVEeK5XMQGITKBlg" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_cDUkEYcVEeK5XMQGITKBlg"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_cDUkEocVEeK5XMQGITKBlg"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_cDT9BIcVEeK5XMQGITKBlg" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDT9BYcVEeK5XMQGITKBlg"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_cDT9AYcVEeK5XMQGITKBlg" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDUkE4cVEeK5XMQGITKBlg" x="269" y="12" width="15" height="15"/>
+        </children>
+        <children xmi:id="_o8EFsKWhEeKBrrCTA2_OoQ" type="State" element="_o7MjAKWhEeKBrrCTA2_OoQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_o8F64KWhEeKBrrCTA2_OoQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_o8F64aWhEeKBrrCTA2_OoQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_o8F64qWhEeKBrrCTA2_OoQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o8F646WhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_o8Gh8KWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o8Gh8aWhEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o8Gh8qWhEeKBrrCTA2_OoQ" type="StateFigureCompartment">
+            <children xmi:id="_rHsPwKWhEeKBrrCTA2_OoQ" type="Region" element="_rHmwMKWhEeKBrrCTA2_OoQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_rHsPw6WhEeKBrrCTA2_OoQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_rHsPxKWhEeKBrrCTA2_OoQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_rHs20KWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_rHs20aWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_rwgjQKWhEeKBrrCTA2_OoQ" type="State" element="_rwcR0KWhEeKBrrCTA2_OoQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_rwhxYKWhEeKBrrCTA2_OoQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_rwhxYaWhEeKBrrCTA2_OoQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_rwhxYqWhEeKBrrCTA2_OoQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_rwhxY6WhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_rwhxZKWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rwhxZaWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_rwiYcKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_rwgjQaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_rwgjQqWhEeKBrrCTA2_OoQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_rwiYcaWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rwgjQ6WhEeKBrrCTA2_OoQ" x="43" y="38"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rHs20qWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_rHsPwaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_rHsPwqWhEeKBrrCTA2_OoQ"/>
+            </children>
+            <children xmi:id="_qyUcsKWhEeKBrrCTA2_OoQ" type="Region" element="_qyRZYKWhEeKBrrCTA2_OoQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_qyWR4KWhEeKBrrCTA2_OoQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_qyWR4aWhEeKBrrCTA2_OoQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_qyWR4qWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_qyW48KWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_sQRocKWhEeKBrrCTA2_OoQ" type="State" element="_sQOlIKWhEeKBrrCTA2_OoQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_sQS2kKWhEeKBrrCTA2_OoQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_sQS2kaWhEeKBrrCTA2_OoQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_sQS2kqWhEeKBrrCTA2_OoQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_sQTdoKWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_sQTdoaWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_sQTdoqWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_sQUrwKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment">
+                    <children xmi:id="_wwbZ4KWhEeKBrrCTA2_OoQ" type="Region" element="_wwVTQKWhEeKBrrCTA2_OoQ">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_wwbZ46WhEeKBrrCTA2_OoQ" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_wwbZ5KWhEeKBrrCTA2_OoQ"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_wwbZ5aWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_wwbZ5qWhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_yOD1gKWhEeKBrrCTA2_OoQ" type="State" element="_yOAyMKWhEeKBrrCTA2_OoQ">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_yOEckKWhEeKBrrCTA2_OoQ" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_yOEckaWhEeKBrrCTA2_OoQ"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_yOFDoKWhEeKBrrCTA2_OoQ"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_yOFDoaWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_yOFqsKWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yOFqsaWhEeKBrrCTA2_OoQ"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_yOGRwKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_yOD1gaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_yOD1gqWhEeKBrrCTA2_OoQ"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_yOG40KWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yOD1g6WhEeKBrrCTA2_OoQ" x="31" y="37"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wwbZ56WhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_wwbZ4aWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wwbZ4qWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                    <children xmi:id="_wDL5YKWhEeKBrrCTA2_OoQ" type="Region" element="_wDLSUKWhEeKBrrCTA2_OoQ">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_wDMgcKWhEeKBrrCTA2_OoQ" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_wDMgcaWhEeKBrrCTA2_OoQ"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_wDMgcqWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_wDMgc6WhEeKBrrCTA2_OoQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_ymHwMKWhEeKBrrCTA2_OoQ" type="State" element="_ymDewKWhEeKBrrCTA2_OoQ">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_ymI-UKWhEeKBrrCTA2_OoQ" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_ymI-UaWhEeKBrrCTA2_OoQ"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_ymJlYKWhEeKBrrCTA2_OoQ"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_ymJlYaWhEeKBrrCTA2_OoQ" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_ymJlYqWhEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_ymJlY6WhEeKBrrCTA2_OoQ"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_ymJlZKWhEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_ymHwMaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_ymHwMqWhEeKBrrCTA2_OoQ"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_ymKMcKWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_ymHwM6WhEeKBrrCTA2_OoQ" x="23" y="47"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDMgdKWhEeKBrrCTA2_OoQ"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_wDL5YaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDL5YqWhEeKBrrCTA2_OoQ"/>
+                    </children>
+                  </children>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_sQSPgKWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_sQSPgaWhEeKBrrCTA2_OoQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_sQVS0KWhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_sQSPgqWhEeKBrrCTA2_OoQ" x="8" y="17" width="263" height="201"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_qyW48aWhEeKBrrCTA2_OoQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_qyUcsaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_qyUcsqWhEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_o8EFsaWhEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_o8EFsqWhEeKBrrCTA2_OoQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_o8Gh86WhEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o8EFs6WhEeKBrrCTA2_OoQ" x="29" y="172" width="423" height="301"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_zGIF8KWhEeKBrrCTA2_OoQ" type="Synchronization" element="_zGFCoKWhEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_zGIF8aWhEeKBrrCTA2_OoQ" x="184" y="142" width="165" height="8"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_CUIEsKWjEeKBrrCTA2_OoQ" type="Synchronization" element="_CUGPgKWjEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_CUIEsaWjEeKBrrCTA2_OoQ" x="199" y="522" width="150" height="8"/>
+        </children>
+        <children xsi:type="notation:Shape" xmi:id="_I2XCoKWjEeKBrrCTA2_OoQ" type="FinalState" element="_I2WbkKWjEeKBrrCTA2_OoQ" fontName="Verdana" lineColor="4210752">
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_I2XCoaWjEeKBrrCTA2_OoQ" x="266" y="592" width="15" height="15"/>
+        </children>
+        <children xmi:id="_pTH-AKWlEeKBrrCTA2_OoQ" type="State" element="_pTDskKWlEeKBrrCTA2_OoQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_pTIlEKWlEeKBrrCTA2_OoQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_pTIlEaWlEeKBrrCTA2_OoQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_pTIlEqWlEeKBrrCTA2_OoQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_pTIlE6WlEeKBrrCTA2_OoQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_pTJMIKWlEeKBrrCTA2_OoQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pTJMIaWlEeKBrrCTA2_OoQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_pTJMIqWlEeKBrrCTA2_OoQ" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_pTH-AaWlEeKBrrCTA2_OoQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_pTH-AqWlEeKBrrCTA2_OoQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_pTJzMKWlEeKBrrCTA2_OoQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_pTH-A6WlEeKBrrCTA2_OoQ" x="256" y="67" width="40" height="53"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDSu5IcVEeK5XMQGITKBlg"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_cCbzQYcVEeK5XMQGITKBlg" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDTV8IcVEeK5XMQGITKBlg" x="215" y="10" width="556" height="646"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_cDXnYIcVEeK5XMQGITKBlg" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDXnYocVEeK5XMQGITKBlg" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDXnY4cVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDXnZIcVEeK5XMQGITKBlg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_cDXnZYcVEeK5XMQGITKBlg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDXnZocVEeK5XMQGITKBlg"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_cDYOcIcVEeK5XMQGITKBlg" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_cCYv8YcVEeK5XMQGITKBlg"/>
+    <edges xmi:id="_cDXAUIcVEeK5XMQGITKBlg" type="Transition" element="_cDVyM4cVEeK5XMQGITKBlg" source="_cDT9AIcVEeK5XMQGITKBlg" target="_pTH-AKWlEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_cDXAVIcVEeK5XMQGITKBlg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_cDXAVYcVEeK5XMQGITKBlg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_cDXAVocVEeK5XMQGITKBlg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_cDXAUYcVEeK5XMQGITKBlg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_cDXAU4cVEeK5XMQGITKBlg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_cDXAUocVEeK5XMQGITKBlg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_rEktgKWlEeKBrrCTA2_OoQ" id="(0.45,0.24528301886792453)"/>
+    </edges>
+    <edges xmi:id="_0mjW4KWhEeKBrrCTA2_OoQ" type="Transition" element="_0mhhsKWhEeKBrrCTA2_OoQ" source="_pTH-AKWlEeKBrrCTA2_OoQ" target="_zGIF8KWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_0mj98aWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_0mj98qWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_0mklAKWhEeKBrrCTA2_OoQ" x="-7" y="-66"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_0mjW4aWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_0mj98KWhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_0mjW4qWhEeKBrrCTA2_OoQ" points="[48, 13, -131, -26]$[97, 39, -82, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_qOn88KWlEeKBrrCTA2_OoQ" id="(0.775,0.6981132075471698)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_twF4kKWlEeKBrrCTA2_OoQ" id="(0.5333333333333333,0.0)"/>
+    </edges>
+    <edges xmi:id="_2EEdwKWhEeKBrrCTA2_OoQ" type="Transition" element="_2EAzYKWhEeKBrrCTA2_OoQ" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_ymHwMKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_2EFr4aWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_2EFr4qWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_2EGS8KWhEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_2EEdwaWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_2EFr4KWhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_2EEdwqWhEeKBrrCTA2_OoQ" points="[-3, 4, 135, -152]$[-103, 148, 35, -8]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_O1LJUKc2EeKIfO2sJ02rIQ" id="(0.8424242424242424,0.5)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_L_pGoKc2EeKIfO2sJ02rIQ" id="(0.4418604651162791,0.24528301886792453)"/>
+    </edges>
+    <edges xmi:id="_2kWgUKWhEeKBrrCTA2_OoQ" type="Transition" element="_2kUEEKWhEeKBrrCTA2_OoQ" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_yOD1gKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_2kXHYKWhEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_2kXHYaWhEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_2kXHYqWhEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_2kWgUaWhEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_2kWgU6WhEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_2kWgUqWhEeKBrrCTA2_OoQ" points="[0, 1, -58, -236]$[49, 261, -9, 24]"/>
+    </edges>
+    <edges xmi:id="_D09lUKWjEeKBrrCTA2_OoQ" type="Transition" element="_D06iAKWjEeKBrrCTA2_OoQ" source="_rwgjQKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_D0-MYaWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_D0-MYqWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_D0-MY6WjEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_D09lUaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_D0-MYKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_D09lUqWjEeKBrrCTA2_OoQ" points="[24, 34, -152, -200]$[170, 230, -6, -4]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_D0_agKWjEeKBrrCTA2_OoQ" id="(0.125,0.3018867924528302)"/>
+    </edges>
+    <edges xmi:id="_El3d0KWjEeKBrrCTA2_OoQ" type="Transition" element="_El0agKWjEeKBrrCTA2_OoQ" source="_yOD1gKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_El4E4aWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_El4E4qWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_El4r8KWjEeKBrrCTA2_OoQ" x="-24" y="-18"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_El3d0aWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_El4E4KWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_El3d0qWjEeKBrrCTA2_OoQ" points="[-2, 22, 13, -112]$[-15, 134, 0, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_El89YKWjEeKBrrCTA2_OoQ" id="(0.23255813953488372,0.5471698113207547)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_El89YaWjEeKBrrCTA2_OoQ" id="(0.5066666666666667,0.0)"/>
+    </edges>
+    <edges xmi:id="_FMmtsKWjEeKBrrCTA2_OoQ" type="Transition" element="_FMkRcKWjEeKBrrCTA2_OoQ" source="_ymHwMKWhEeKBrrCTA2_OoQ" target="_CUIEsKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_FMnUwaWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_FMnUwqWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_FMnUw6WjEeKBrrCTA2_OoQ" x="-44" y="-43"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_FMmtsaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_FMnUwKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_FMmtsqWjEeKBrrCTA2_OoQ" points="[-12, 12, 125, -106]$[-62, 116, 75, -2]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_FMpJ8KWjEeKBrrCTA2_OoQ" id="(0.4418604651162791,0.7547169811320755)"/>
+    </edges>
+    <edges xmi:id="_M20nYKWjEeKBrrCTA2_OoQ" type="Transition" element="_M2xkEKWjEeKBrrCTA2_OoQ" source="_CUIEsKWjEeKBrrCTA2_OoQ" target="_I2XCoKWjEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_M22ckKWjEeKBrrCTA2_OoQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_M22ckaWjEeKBrrCTA2_OoQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_M22ckqWjEeKBrrCTA2_OoQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_M20nYaWjEeKBrrCTA2_OoQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_M211gKWjEeKBrrCTA2_OoQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_M20nYqWjEeKBrrCTA2_OoQ" points="[1, 4, 2, -69]$[3, 67, 4, -6]"/>
+    </edges>
+    <edges xmi:id="_aSEK4KgcEeKmQrSVAGlxRw" type="Transition" element="_aR_5cKgcEeKmQrSVAGlxRw" source="_zGIF8KWhEeKBrrCTA2_OoQ" target="_rwgjQKWhEeKBrrCTA2_OoQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_aSFZAKgcEeKmQrSVAGlxRw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_aSFZAagcEeKmQrSVAGlxRw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_aSFZAqgcEeKmQrSVAGlxRw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_aSEK4agcEeKmQrSVAGlxRw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_aSEx8KgcEeKmQrSVAGlxRw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_aSEK4qgcEeKmQrSVAGlxRw" points="[1, 2, -165, -201]$[176, 179, 10, -24]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_aSIcUKgcEeKmQrSVAGlxRw" id="(0.19393939393939394,0.625)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 1 - 1
test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/util/AbstractSTextTest.java

@@ -10,7 +10,7 @@
  */
 package org.yakindu.sct.model.stext.test.util;
 
-import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart;
 
 import java.io.StringReader;