diff --git a/build.gradle.kts b/build.gradle.kts index ce834fec9..5e5c6120d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -413,6 +413,12 @@ if (projectToCheck != null) { } } + File("$buildDir/dependencies/org.mpsqa.allInOne").listFiles().forEach { + if (it.isDirectory) { + result.add(Plugin(it.name, it.absolutePath)) + } + } + File("$buildDir/artifacts/com.mbeddr.formal.languages").listFiles().forEach { if (it.isDirectory) { result.add(Plugin(it.name, it.absolutePath)) diff --git a/build/scripts/build_all_scripts.xml b/build/scripts/build_all_scripts.xml index 72716eadd..5f08d9a2b 100644 --- a/build/scripts/build_all_scripts.xml +++ b/build/scripts/build_all_scripts.xml @@ -9,7 +9,9 @@ + + @@ -57,6 +59,7 @@ + @@ -93,10 +96,10 @@ - + @@ -159,6 +162,7 @@ + @@ -261,6 +265,7 @@ + @@ -279,11 +284,12 @@ + - + @@ -292,9 +298,9 @@ - + diff --git a/code/languages/com.mbeddr.formal.repo_admin/.mps/modules.xml b/code/languages/com.mbeddr.formal.repo_admin/.mps/modules.xml index b8306399f..465dbb8d7 100644 --- a/code/languages/com.mbeddr.formal.repo_admin/.mps/modules.xml +++ b/code/languages/com.mbeddr.formal.repo_admin/.mps/modules.xml @@ -3,6 +3,7 @@ + diff --git a/code/languages/com.mbeddr.formal.repo_admin/solutions/com.fasten.meta.architecture/com.fasten.meta.architecture.msd b/code/languages/com.mbeddr.formal.repo_admin/solutions/com.fasten.meta.architecture/com.fasten.meta.architecture.msd new file mode 100644 index 000000000..4586bda1b --- /dev/null +++ b/code/languages/com.mbeddr.formal.repo_admin/solutions/com.fasten.meta.architecture/com.fasten.meta.architecture.msd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.repo_admin/solutions/com.fasten.meta.architecture/models/com.fasten.meta.architecture.architecture.mps b/code/languages/com.mbeddr.formal.repo_admin/solutions/com.fasten.meta.architecture/models/com.fasten.meta.architecture.architecture.mps new file mode 100644 index 000000000..65f66c3bc --- /dev/null +++ b/code/languages/com.mbeddr.formal.repo_admin/solutions/com.fasten.meta.architecture/models/com.fasten.meta.architecture.architecture.mps @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.safety/.mps/modules.xml b/code/languages/com.mbeddr.formal.safety/.mps/modules.xml index 77322683d..873d06255 100644 --- a/code/languages/com.mbeddr.formal.safety/.mps/modules.xml +++ b/code/languages/com.mbeddr.formal.safety/.mps/modules.xml @@ -30,6 +30,7 @@ + @@ -88,7 +89,8 @@ - + + \ No newline at end of file diff --git a/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/com.mbeddr.formal.safety.argument.visualisation.mpl b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/com.mbeddr.formal.safety.argument.visualisation.mpl new file mode 100644 index 000000000..19f5befc2 --- /dev/null +++ b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/com.mbeddr.formal.safety.argument.visualisation.mpl @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + e8a04d94-4307-4f88-95a2-25f7c4f39437(com.mbeddr.formal.safety.gsn) + 83ed2dfe-f724-46cc-852a-dce086daee3f(com.mbeddr.formal.base) + 6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK) + 56f134c7-a829-428d-9119-715369c69768(org.mpsqa.treemap.lib) + 742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform) + 8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI) + 6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core) + 1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor) + ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core) + f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/generator/templates/com.mbeddr.formal.safety.argument.visualisation.generator.templates@generator.mps b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/generator/templates/com.mbeddr.formal.safety.argument.visualisation.generator.templates@generator.mps new file mode 100644 index 000000000..f641b8f27 --- /dev/null +++ b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/generator/templates/com.mbeddr.formal.safety.argument.visualisation.generator.templates@generator.mps @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.behavior.mps b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.behavior.mps new file mode 100644 index 000000000..624607eae --- /dev/null +++ b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.behavior.mps @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.constraints.mps b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.constraints.mps new file mode 100644 index 000000000..2cd767f28 --- /dev/null +++ b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.constraints.mps @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.editor.mps b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.editor.mps new file mode 100644 index 000000000..f4ff0b7bc --- /dev/null +++ b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.editor.mps @@ -0,0 +1,3193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.structure.mps b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.structure.mps new file mode 100644 index 000000000..1d2cef420 --- /dev/null +++ b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.structure.mps @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.typesystem.mps b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.typesystem.mps new file mode 100644 index 000000000..670518f99 --- /dev/null +++ b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.typesystem.mps @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.util.mps b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.util.mps new file mode 100644 index 000000000..b4707a7e5 --- /dev/null +++ b/code/languages/com.mbeddr.formal.safety/languages/com.mbeddr.formal.safety.argument.visualisation/models/com.mbeddr.formal.safety.argument.visualisation.util.mps @@ -0,0 +1,523 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/languages/com.mbeddr.formal.safety/solutions/com.fasten.assurance.build/com.fasten.assurance.build.msd b/code/languages/com.mbeddr.formal.safety/solutions/com.fasten.assurance.build/com.fasten.assurance.build.msd index 7468fc813..cb29366cd 100644 --- a/code/languages/com.mbeddr.formal.safety/solutions/com.fasten.assurance.build/com.fasten.assurance.build.msd +++ b/code/languages/com.mbeddr.formal.safety/solutions/com.fasten.assurance.build/com.fasten.assurance.build.msd @@ -15,6 +15,7 @@ 3ae9cfda-f938-4524-b4ca-fbcba3b0525b(com.mbeddr.platform) 422c2909-59d6-41a9-b318-40e6256b250f(jetbrains.mps.ide.build) f1fb7b1c-ce0d-423c-9369-4a661d600029(de.itemis.mps.extensions.build) + 5e8cea6b-997f-49b1-a8d8-dc2a7a6fa657(org.mpsqa.base.build) @@ -27,6 +28,7 @@ + diff --git a/code/languages/com.mbeddr.formal.safety/solutions/com.fasten.assurance.build/models/com.fasten.assurance.build.mps b/code/languages/com.mbeddr.formal.safety/solutions/com.fasten.assurance.build/models/com.fasten.assurance.build.mps index 824d99591..d3ec1367e 100644 --- a/code/languages/com.mbeddr.formal.safety/solutions/com.fasten.assurance.build/models/com.fasten.assurance.build.mps +++ b/code/languages/com.mbeddr.formal.safety/solutions/com.fasten.assurance.build/models/com.fasten.assurance.build.mps @@ -11,6 +11,7 @@ + @@ -281,6 +282,12 @@ + + + + + + @@ -387,6 +394,21 @@ + + + + + + + + + + + + + + + @@ -716,6 +738,9 @@ + + + @@ -829,6 +854,9 @@ + + + @@ -901,6 +929,11 @@ + + + + + @@ -5539,6 +5572,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7000,7 +7183,7 @@ - + @@ -7080,6 +7263,21 @@ + + + + + + + + + + + + + + + @@ -7388,6 +7586,12 @@ + + + + + + @@ -7643,6 +7847,9 @@ + + + diff --git a/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.build/com.mbeddr.formal.safety.build.msd b/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.build/com.mbeddr.formal.safety.build.msd index 19cc2befb..e67ecef9b 100644 --- a/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.build/com.mbeddr.formal.safety.build.msd +++ b/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.build/com.mbeddr.formal.safety.build.msd @@ -15,6 +15,7 @@ 3ae9cfda-f938-4524-b4ca-fbcba3b0525b(com.mbeddr.platform) 422c2909-59d6-41a9-b318-40e6256b250f(jetbrains.mps.ide.build) f1fb7b1c-ce0d-423c-9369-4a661d600029(de.itemis.mps.extensions.build) + 5e8cea6b-997f-49b1-a8d8-dc2a7a6fa657(org.mpsqa.base.build) @@ -27,6 +28,7 @@ + diff --git a/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.build/models/com.mbeddr.formal.safety.build.mps b/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.build/models/com.mbeddr.formal.safety.build.mps index dfc06e416..6d7601642 100644 --- a/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.build/models/com.mbeddr.formal.safety.build.mps +++ b/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.build/models/com.mbeddr.formal.safety.build.mps @@ -10,6 +10,7 @@ + @@ -315,16558 +316,16816 @@ - - - - - - - - - - - - - - - - + + + + + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - - - + + + - + - + - - - - - + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + - - - - - + + + + + - + - - + + - - - - - - - - + + + + + + + - - - - + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + + - - - + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + + + + + + - - - + + + + + + - + - + - - - + - - - - - + + + + + + + + - - - + + + + + + + - - - + + + + + + + + + + + + + - - - - - + + + + + - - + + + + + + + + + + + + + + - - + + + + + - - + + + + + - - - - - + + + + + + + + + - - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - - - - + + + - - - + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + + + - - - - - + + + - - - - - - - - + + + + - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + + - - + + + + - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + - - - + + + + + + + + + + + + - - - + + + + + - - - + + + + + + + + + + + + - - - + + + + + + + + + + + + + + - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - + + + - - - + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - + + + + + + - - - - - - - - + + + + + + + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - + + + + + + + + - - - - - + + - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + + + - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - + + + + + + + + + + + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - + + + + + + + + - + + + + - - - - - - - - - - + + + + + + + + + + + - - + + - - - + + + - - - - + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + - + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - + + + + - - - - - - - - - - + + + + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - + + + + + + + + + + - - - + + + - - + + - - - + + + + + + + + + + - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + - - + + - - + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + - + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - + - - - - - - - - - - + + + + + + + + + + - - - + + + - - - + + + - + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + - - + + - - - + + + + + + + + + + + + + + + + + + - - - - + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - + + + - - + + - + - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - + + + + + - - - + + + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - + - - - - + + + + - - - + + + - + - - - + + + - + - - - - - + + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + - - - - + + + + - - - + + + - + - + - - - - + + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - - - - - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - - + + + - - - + + + - - + + + + + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - + + + + + + + + + + - - - - + + + + - - - + + + - - + + - + - - - - - - - - + + + - - - - - - - - + + + + + + + + + + - - + + + + + + + + - - - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - + + + + - - - + + + - + - - - + + + - - - + + + + - - - + + + - + - - - - - + + + + + - - - - + + + + - - - - - - - - + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - + + - - - - - - - - + + + - - - - - - - - + + + + + + + + + + - - - - + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + - - - - - - - - + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - - - + + + - - - - - - + + + + + + - - - - + + - - - - - + + - - - - + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - - - - + + - - - - - - + + + + + + + + + + + + + + - - - - - - + + + + + + - - + + - - - + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + + - - - + + + - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - - - - - + + + + + - + - - - - - - - - - - - - - - - - - + - - - + + + - - - - - - + + + + + + - - - - - - - - - - - - - + + + - - + + - - - - - - - - - - - - - - + + + + - + - - - - - - - + + + + - - - - + + + - - - + + + - - - + + + - - - - + + + - + - - + + - - - - - + + + + + - + - - - - - - - - + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - - + + - - - - - + + + + + - + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - + + + - - - - - - + + + + + + + + + + + + + + + + - + - - - - - + + - - - - - - + + + - - - + + + - - - - - - - - - - - - - - + + + - + - - - + + + - + - - - - + + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + - - + + - + - - - + + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + - + - - + + - - - - + - - - + + + - - - - - - + + + + + + - - - - - - - - - - - - - + + + - - - + + + - + - - + + - - - - - + + + + + - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + - - - - - - + + + + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - - + + + - - - + + + + - - - - - - - - + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - + + + - - - + + + + - - - + + + - - + + + + + + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + - - - + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - + - - + + - + - - - + + + - + - - - - - - - - - + + + + - - + + - + - - - + + + - + - + - - - - - - - - - - - - - + + + - + - - + + - - + + - - - - - - - - - - - - - - - - - + + - - - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + - + + + + + + + + + + + - - - - + + + + - - - + + + - + - - - - - + + + + + + + + + + + + + + + - - - + + + - - + + - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - - + + + + + - - - - + + + + - - - - - - - - + + + - - - + + + + + + + - - - - - + - - - - + + + + - - - + + + - + - + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + - - - - - + + + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - + + + + + + + + - - + + - - - - - - + + + - + - - - - + + + + - - - + + + - + - - - - - - - - + + + - - - + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - + + - - - + + + - - - + + + + + + + - - - - - - - - - - - - - - - - - + + + - - + + + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - + + + + + + + + + + - - + + + + + - - + + - - - - - - - - + + + - - - - + + + + - - - + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - + + + - + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - + + + + - - - + + + - - - - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - + + + + - - - + + + - - + + - + - - - - - - - - - - + + + + + - - + + + + + - - + + - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - + + + - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - + + + + - - - - + + + + - - - + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - + + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - + + + + + + - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + + - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - + + + + + + + + + + + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - - - + + + - - + + + + + + + - - + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - + + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + + - - - + + + + + - - - - + + + + - - - - - - - - - - - + - - - - + + + + - - - + + + - + - - - + + + - - - - - + + + + + + + + + + - - + + - + - - - - - - + - - - - - + + + + + - - - - + + + + - - - - - - - - + + + - + - - - - + + + + - - - + + + - + - - - - - + + + + + + + + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - + + + + + + + + + + + + + - - + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - + + - - - - - - - - - - - - - - - - + - + - - - - + + + + - - - + + + - - - + + + - + + + + + + + + + + + + + + + + - - + + - + - - - + + + - + - - - - - - - - - - - - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + - - + + - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - + - + - - + + - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - + + + + + - - - - - + + + + + - - + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - + - - + + - - - - - + + + + + - + - - - + + + - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - + + + - - + + - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - - - - + + + + + - + - - - + + + - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + - + - - + + - - - - - + + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + - - - - - - - + + + + - - + + - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + - - - + + + - + + + + + + - - + + - - - - - + + + + + - + - - - + + + - - - - + + + + + + + - - + + - - - + + + - - - + + + - - - + + + + + + + + - + - - - + + + - - - - - - + + + + + + - - - - - - - - + + + - - - + + + - + - - + + - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - - - - + + + + + + - - - - - - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - + + + + + - + - - - + + + + + + + + + + + - - - - - - - + + + + - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - + + + + + + + + + + + - - + + - + - - - + + + - + - - - + + + - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - + + + + + + + + + - + - - - - - - - - + + + - - - - - - - - - - - - - - - - - - + + + - - - - - - - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + + + + + + + + + + + + - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + + + - - + + + + - - + + + + - - - - + - - - + + + - - - - - - + + + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + - - + + + + - - - - + - - - + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + - - + + + + - - + + + + + + + + + + + + + + + - - - - + - - - + + + - - - - - - + + + + + + - - - - - + + + + - - + + + + - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + - - + + + + + + + + + + + + + + + - - - - + - - - + + + - - - - - - + + + + + + - - - - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + - - + + + + - - + + + + - - - - + - - - + + + - - - - - - + + + + + + - - - + + + - + + + + + + + + + + + - - + + - - - - - + + + + + - + - - - - - - + + + - - - - + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - + + + - - - - - - - - - - + + + - - - - - - - - - - - - - + + + - - - - - - - - + + + + + + + - - + + + + + - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + - - - - - + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + - - - + + + - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + + + + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - + + + - + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + - - - - - - - - - - - + + + + - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + - + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - - - - + + + - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - + + + - - - - - - - + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - + + + - - - + + + - - - - - + + + + - - - - + + + + - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + - - - - - + + + + + + + + + + - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + - - + + + + + - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + + + + + + - + - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + - - - + + + - - - + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - + + - - - + + + + + - - - - + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + - - - - + + - - - + + + + + + + + + + - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - + + + + + + + - - + + - - - + + + - - - + + + - - - - - - - - - - - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - - - - - - - - + + + - - - - - + + + - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - + + + - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + - - - - - - - - - + + + + - - - - + + + + - + + + + - - - - - - - - - - - + + + + + + + + + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + + - - - + + + - - - - + + - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.gsn.sandbox/com.mbeddr.formal.safety.gsn.sandbox.msd b/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.gsn.sandbox/com.mbeddr.formal.safety.gsn.sandbox.msd index 4dfd09c4c..c877277a4 100644 --- a/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.gsn.sandbox/com.mbeddr.formal.safety.gsn.sandbox.msd +++ b/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.gsn.sandbox/com.mbeddr.formal.safety.gsn.sandbox.msd @@ -17,6 +17,7 @@ 0deccdfd-196b-4d8c-895e-0d6cb8014dfd(com.mbeddr.formal.req.base) 434b2bfb-bd7a-47c9-bced-b445035e6d96(com.mbeddr.formal.safety.req) 17da266c-02d9-4bbd-b69b-8a656b49f45c(com.mbeddr.formal.safety.hara) + 04d81d12-7048-4552-9a53-86a271c0f094(com.mbeddr.formal.safety.argument.visualisation) @@ -47,6 +48,7 @@ + @@ -59,6 +61,7 @@ + @@ -102,6 +105,7 @@ + diff --git a/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.gsn.sandbox/models/com.mbeddr.formal.safety.gsn.sandbox._700_visualisation.mps b/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.gsn.sandbox/models/com.mbeddr.formal.safety.gsn.sandbox._700_visualisation.mps new file mode 100644 index 000000000..9b2d19d02 --- /dev/null +++ b/code/languages/com.mbeddr.formal.safety/solutions/com.mbeddr.formal.safety.gsn.sandbox/models/com.mbeddr.formal.safety.gsn.sandbox._700_visualisation.mps @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/com.mbeddr.formal.safety.tutorial.msd b/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/com.mbeddr.formal.safety.tutorial.msd index f2883c0bc..4371d5984 100644 --- a/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/com.mbeddr.formal.safety.tutorial.msd +++ b/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/com.mbeddr.formal.safety.tutorial.msd @@ -14,6 +14,7 @@ 676b5323-9c6d-4b8d-a4fc-5d159c3d8aed(com.mbeddr.formal.safety.gsn.patterns.lib) d873c9ba-1199-4310-897d-5fa1a905f179(com.mbeddr.formal.safety.users_guide) + 04d81d12-7048-4552-9a53-86a271c0f094(com.mbeddr.formal.safety.argument.visualisation) @@ -58,6 +59,7 @@ + @@ -101,12 +103,18 @@ + + + + + + diff --git a/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/models/_010_features._040_safety_models/.model b/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/models/_010_features._040_safety_models/.model index 98d979a59..5f33b6d7f 100644 --- a/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/models/_010_features._040_safety_models/.model +++ b/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/models/_010_features._040_safety_models/.model @@ -3,7 +3,6 @@ - diff --git a/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/models/_500_real_world_examples._010_uber_atg_safety_case_modularized_visualization.mps b/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/models/_500_real_world_examples._010_uber_atg_safety_case_modularized_visualization.mps new file mode 100644 index 000000000..2beaefc29 --- /dev/null +++ b/code/tutorial-safety/solutions/com.mbeddr.formal.safety.tutorial/models/_500_real_world_examples._010_uber_atg_safety_case_modularized_visualization.mps @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +